4-2路由

基于浏览器环境的开发,只需要安装react-router-dom

1,第一种跳转方式(不携带参数)

import {BrowserRouter, Route,Link,Switch} from 'react-router-dom’
function App() {  
  return (    
    <div>      
      <BrowserRouter>        
        <Link to="/form">form</Link> <br/>        
        <Link to="/clock">clock</Link>       
       <Switch>          
        <Route path="/form" component={Form}></Route>        //注意拦截的路径(一旦匹配上,不会再向下匹配了,因此将复杂路径放前面,简易的放后面)        
        <Route path="/clock" component={Clock}></Route>        
       </Switch>      
      </BrowserRouter>    
    </div>      
);}

 2,第二种跳转方式(js方法,携带参数)

API跳转

在组件中通过this.props.history控制路由的改变
this.props.history.push('/content')     将新的路径压入到history中
this.props.history.push({
    pathname:'/studentDetails',   //路径名
    payload:record           //参数
})

这种方式跳转可以通过 this.props.location.payload来获取传递的参数record

this.props.history.go(n)    n为正数或者负数,表示前进或者后退
this.props.history.goBack()     后退
this.props.history.goForward()    前进

 

3,使用路由 (并且携带参数)

HTML方式
    <Link to={{ pathname: ' /user' , query : { day: 'Friday' }}}>

 HTML方式:<Link to={{ pathname : ' /user' , state : { day: 'Friday' }}}> 
同query差不多,只是属性不一样,而且state传的参数是加密的,query传的参数是公开的,在地址栏

 

posted @ 2019-07-18 15:11  千里之外kb  阅读(215)  评论(0编辑  收藏  举报