亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

react路由如何實現傳參

發布時間:2021-03-22 09:23:47 來源:億速云 閱讀:375 作者:小新 欄目:開發技術

這篇文章主要介紹react路由如何實現傳參,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

第一種傳參方式,動態路由傳參

通過設置link的path屬性,進行路由的傳參,當點擊link標簽的時候,會在上方的url地址中顯示傳遞的整個url

<Link to='/home?name=dx'>首頁</Link>

react路由如何實現傳參

如果想真正獲取到傳遞過來的參數,需要在對應的子組件中
this.props.location.search 獲取字符串,再手動解析

因為傳參能夠被用戶看見,傳遞獲取比較麻煩,所以不推薦

第二種傳參方式,隱式路由傳參

<Link to={{
     pathname: 'about',
     state: {
      name: 'dx'
     }
    }}>關于</Link>

所謂隱式路由傳參,就是傳參的信息不回暴露在url中,當點擊該link標簽,想要獲取到傳遞的參數,就在對應的路由組件中,通過this.props.location.state獲取即可

推薦使用,比較安全,獲取傳遞參數都比較方便

第三種傳參方式 組件間傳參

何時使用?
當一個路由組件需要接收來自父組件傳參的時候

改造route標簽通過component屬性激活組件的方式
正常情況下的route標簽在路由中的使用方式

//簡潔明了,但沒辦法接收來自父組件的傳參
<Route path='/test' component={Test}></Route>

改造之后

<Link to='/test'>測試</Link>
<Route path='/test' render={(routeProps) => {
 //routeProps就是路由組件傳遞的參數
     return (
     //在原先路由組件參數的情況,擴展綁定父組件對子組件傳遞的參數
      <Test {...routeProps} name='dx' age={18} />
     )
 }}></Route>

當點擊link標簽時,通過在對應的test子組件中,this.props獲取來自父組件傳遞的參數和路由組件自帶的參數
強烈推薦,傳遞參數略微有些麻煩,接收參數十分方便,并且仍然可以接收路由組件自帶的參數,安全,不會被用戶看見

第四種傳參方式 withRouter 高階組件給子組件綁定路由參數

withRouter 何時使用?

想要在某個子組件中獲取路由的參數,必須得使用路由中的route標簽的子組件才能被綁定上路由的參數。

為了解決不通過route標簽綁定的子組件獲取路由參數的問題,需要使用withRouter

一般用在返回首頁,返回上一級等按鈕上

import React from 'react';
import BackHome from './backhome';
export default class Test extends React.Component {
 render () {
  console.log(this.props)
  return (
   <div>
    這是測試的內容
//返回首頁的按鈕不是通過route標簽渲染的,所以該子組件的this.props中沒有路由參數
    <BackHome>返回首頁</BackHome> 
   </div>
  )
 }
}
import React from 'react';
//導入withRoute
import {withRouter} from 'react-router-dom';
class BackHome extends React.Component {
 goHome = () => {
  //必須在使用withRouter的情況下,該組件在this.props中才有路由參數和方法
  //否則,會報錯
  this.props.history.push({
   pathname: '/home',
   state: {
    name: 'dx' //同樣,可以通過state向home路由對應的組件傳遞參數
   }
  })
 }
 render () {
  return (
   <button onClick={this.goHome}>this.props.children</button>
  )
 }
}
//導出的時候,用withRouter標簽將backHome組件以參數形式傳出
export default withRouter(BackHome)

當你需要使用的時候,就很重要,所以還是比較推薦。

以上是“react路由如何實現傳參”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

衢州市| 合阳县| 栾城县| 赫章县| 镇江市| 漾濞| 谢通门县| 洪湖市| 肥城市| 栾城县| 屏山县| 额济纳旗| 青龙| 依安县| 郧西县| 山东| 嵊泗县| 榕江县| 南投县| 高淳县| 庆云县| 保康县| 菏泽市| 绩溪县| 宁德市| 临沂市| 永丰县| 平定县| 道真| 德昌县| 曲松县| 宜都市| 静安区| 渑池县| 临猗县| 旅游| 芜湖县| 松原市| 旬邑县| 莆田市| 苗栗市|