react 路由Link配置詳解
1、Link的to屬性
(1)放置路由路徑
(2)放置對象,且為規定格式
{pathname:”/xx”,search:’?鍵值對’,hash:”#xxx”,state:{鍵值對}}
會自動將pathname、search、hash拼接在url路徑上,state為傳入的參數
可通過輸出props查看對象內的信息
this.props.location.state.鍵名獲取state內的數據
2、Link的replace屬性
添加replace將跳轉前的上一個頁面替換成當前頁面,隻將當前頁面入棧
3、Link傳參
在to路徑後添加”/鍵值”
在路由route,path路徑後添加”/:鍵名”
在組件中,函數式組件:先傳入props形參,然後props.match.params.鍵名
類組件:this.props.match.params.鍵名
代碼示例:
import React,{Component} from 'react' //import {Route,BrowserRouter,Link} from 'react-router-dom' //將BrowserRouter重命名為Router import {BrowserRouter as Router,Link,Route} from 'react-router-dom' import { Button } from 'antd'; import './App.css'; function Home() { return( <div>admin首頁</div> ) } function Me(props) { console.log(props) return( <div>admin我的</div> ) } function Product(props) { return( <div>admin產品頁面:{props.match.params.id}</div> ) } export default class App extends Component{ constructor() { super(); } render() { {/*若將路徑寫成對象形式,且和下面相同,會自動將pathname、search、hash自動拼接在url路徑上,state為傳入組件的數據*/} let obj={pathname:"/me",search:'?username=admin',hash:"#abc",state:{msg:'hello'}} return( <div id='app'> {/*BrowserRouter可以放多個*/} <Router> {/*因為組件也是返回html內容,故可以直接通過函數返回html內容充當組件,但不能直接寫html內容*/} <div> <Route path="/" exact component={()=><div>首頁</div>}></Route> <Route path="/product" component={()=><div>product</div>}></Route> <Route path="/me" component={()=><div>me</div>}></Route> </div> {/*<Route path="/" component={function(){return <div>首頁2</div>}}></Route>*/} </Router> {/*BrowserRouter內部隻能有一個根容器,包裹其他內容*/} {/*添加basename='/xx'後,點擊Link跳轉其他路由時,url會將/xx添加到路由名前,所以使用路由路徑和加瞭admin的路由路徑都能匹配該路由*/} <Router basename='/admin'> <div> <div className='nav'> <Link to='/'>Home</Link> <Link to='/product/123'>Product</Link> {/*可在對應的組件中輸出props查看傳入的對象的信息,添加replace將跳轉前的上一個頁面替換成當前頁面,隻將當前頁面入棧*/} <Link to={obj} replace>個人中心</Link> </div> <Route path="/" exact component={Home}></Route> <Route path="/product/:id" component={Product}></Route> <Route path="/me" exact component={Me}></Route> </div> </Router> </div> ) } }
到此這篇關於react 路由Link配置詳解的文章就介紹到這瞭,更多相關react 路由Link內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- React中路由參數如何改變頁面不刷新數據的情況
- React組件通信之路由傳參(react-router-dom)
- react-router-dom v6 使用詳細示例
- 五分鐘教你瞭解一下react路由知識
- React-Router6版本的更新引起的路由用法變化