1. 程式人生 > >React路由傳參的三種方式 React中路由傳參及接收引數的三種方式

React路由傳參的三種方式 React中路由傳參及接收引數的三種方式

React中路由傳參及接收引數的三種方式

    方式 一:          通過params         1.路由表中                     <Route path=' /sort/:id '   component={Sort}></Route>                     2.Link處                     HTML方式                  <Link to={ ' /sort/ ' + ' 2 ' }  activeClassName='active'>XXXX</Link>                                     JS方式                 this.props.router.push(  '/sort/'+'2'  )                     3.sort頁面                       通過  this.props.metch.params.id         就可以接受到傳遞過來的引數(id)                 方式 二
:          通過query                 前提:必須由其他頁面跳過來,引數才會被傳遞過來         注:不需要配置路由表。路由表中的內容照常:<Route path='/sort' component={Sort}></Route>         1.Link處                HTML方式             <Link to={{ path : ' /sort ' , query : { name : 'sunny' }}}>                   JS方式             this.props.router.push({ path : '/sort' ,query : { name: ' sunny'} })           2.sort頁面                    this.props.location.query.name                                        方式 三
:         通過state             同query差不多,只是屬性不一樣,而且state傳的引數是加密的,query傳的引數是公開的,在位址列         1.Link 處                 HTML方式:                 <Link to={{ path : ' /sort ' , state : { name : 'sunny' }}}>                                               JS方式:             this.props.router.push({ pathname:'/sort',state:{name : 'sunny' } })                                            2.sort頁面                    this.props.location.state.name                                        方式 一
:          通過params         1.路由表中                     <Route path=' /sort/:id '   component={Sort}></Route>                     2.Link處                     HTML方式                  <Link to={ ' /sort/ ' + ' 2 ' }  activeClassName='active'>XXXX</Link>                                     JS方式                 this.props.router.push(  '/sort/'+'2'  )                     3.sort頁面                       通過  this.props.metch.params.id         就可以接受到傳遞過來的引數(id)                 方式 二:          通過query                 前提:必須由其他頁面跳過來,引數才會被傳遞過來         注:不需要配置路由表。路由表中的內容照常:<Route path='/sort' component={Sort}></Route>         1.Link處                HTML方式             <Link to={{ path : ' /sort ' , query : { name : 'sunny' }}}>                   JS方式             this.props.router.push({ path : '/sort' ,query : { name: ' sunny'} })           2.sort頁面                    this.props.location.query.name                                        方式 三:         通過state             同query差不多,只是屬性不一樣,而且state傳的引數是加密的,query傳的引數是公開的,在位址列         1.Link 處                 HTML方式:                 <Link to={{ path : ' /sort ' , state : { name : 'sunny' }}}>                                               JS方式:             this.props.router.push({ pathname:'/sort',state:{name : 'sunny' } })                                            2.sort頁面                    this.props.location.state.name