1. 程式人生 > 程式設計 >react 路由Link配置詳解

react 路由Link配置詳解

1、Link的to屬性

(1)放置路由路徑
(2)放置物件,且為規定格式
{pathname:"/xx",search:'?鍵值對',hash:"#xxxLYqztk",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.';

functLYqztk
ion 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內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!