React-router 4.xx 路由傳參的三種方式

react 路由傳參  
   方式 一:
         經過params
        1.路由表中      
              <Route path=' /test/:id '   component={test}></Route>
           
        2.Link處        
            HTML方式
                 <Link to={ ' /test/ ' + ' 2 ' }  activeClassName='active'>XXXX</Link>              
           
          JS方式
                this.props.history.push(  '/user/'+'2'  )
           
        3.user頁面       
               經過  this.props.match.params.id       就能夠接受到傳遞過來的參數(id)
           
   方式 二:
         經過query
                前提:必須由其餘頁面跳過來,參數纔會被傳遞過來
        注:不須要配置路由表。路由表中的內容照常:<Route path='/test' component={test}></Route>
        1.Link處      
         HTML方式
            <Link to={{ pathname: ' /test' , query : {num:'1234' }}}>
          
       JS方式
            this.props.history.push({ pathname : '/test' ,query : { num: '1234'} })react

        2.user頁面     
              this.props.location.query.num//建議不用 刷新頁面時 丟失
     方式 三:
        經過state
            同query差很少,只是屬性不同,並且state傳的參數是加密的,query傳的參數是公開的,在地址欄
        1.Link 處      
          HTML方式:
                <Link to={{ pathname : ' /test' , state : { num: '1234' }}}> 
                                  
         JS方式:
            this.props.history.push({ pathname:'/test',state:{num: '1234' } })
                                  
        2.子組件頁面       
            this.props.location.state.num 能夠拿到傳過來的數據,建議使用該方法,傳過來的數據不會出如今地址欄,刷新頁面數據不會丟失
 this

相關文章
相關標籤/搜索