最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談react路由傳參的幾種方式

 更新時(shí)間:2021年03月21日 09:56:57   作者:glorydx  
這篇文章主要介紹了淺談react路由傳參的幾種方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

第一種傳參方式,動(dòng)態(tài)路由傳參

通過設(shè)置link的path屬性,進(jìn)行路由的傳參,當(dāng)點(diǎn)擊link標(biāo)簽的時(shí)候,會(huì)在上方的url地址中顯示傳遞的整個(gè)url

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

如果想真正獲取到傳遞過來的參數(shù),需要在對(duì)應(yīng)的子組件中
this.props.location.search 獲取字符串,再手動(dòng)解析

因?yàn)閭鲄⒛軌虮挥脩艨匆姡瑐鬟f獲取比較麻煩,所以不推薦

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

<Link to={{
     pathname: 'about',
     state: {
      name: 'dx'
     }
    }}>關(guān)于</Link>

所謂隱式路由傳參,就是傳參的信息不回暴露在url中,當(dāng)點(diǎn)擊該link標(biāo)簽,想要獲取到傳遞的參數(shù),就在對(duì)應(yīng)的路由組件中,通過this.props.location.state獲取即可

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

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

何時(shí)使用?
當(dāng)一個(gè)路由組件需要接收來自父組件傳參的時(shí)候

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

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

改造之后

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



當(dāng)點(diǎn)擊link標(biāo)簽時(shí),通過在對(duì)應(yīng)的test子組件中,this.props獲取來自父組件傳遞的參數(shù)和路由組件自帶的參數(shù)
強(qiáng)烈推薦,傳遞參數(shù)略微有些麻煩,接收參數(shù)十分方便,并且仍然可以接收路由組件自帶的參數(shù),安全,不會(huì)被用戶看見

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

withRouter 何時(shí)使用?

想要在某個(gè)子組件中獲取路由的參數(shù),必須得使用路由中的route標(biāo)簽的子組件才能被綁定上路由的參數(shù)。

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

一般用在返回首頁,返回上一級(jí)等按鈕上

import React from 'react';
import BackHome from './backhome';
export default class Test extends React.Component {
 render () {
  console.log(this.props)
  return (
   <div>
    這是測(cè)試的內(nèi)容
//返回首頁的按鈕不是通過route標(biāo)簽渲染的,所以該子組件的this.props中沒有路由參數(shù)
    <BackHome>返回首頁</BackHome> 
   </div>
  )
 }
}

import React from 'react';
//導(dǎo)入withRoute
import {withRouter} from 'react-router-dom';
class BackHome extends React.Component {
 goHome = () => {
  //必須在使用withRouter的情況下,該組件在this.props中才有路由參數(shù)和方法
  //否則,會(huì)報(bào)錯(cuò)
  this.props.history.push({
   pathname: '/home',
   state: {
    name: 'dx' //同樣,可以通過state向home路由對(duì)應(yīng)的組件傳遞參數(shù)
   }
  })
 }
 render () {
  return (
   <button onClick={this.goHome}>this.props.children</button>
  )
 }
}
//導(dǎo)出的時(shí)候,用withRouter標(biāo)簽將backHome組件以參數(shù)形式傳出
export default withRouter(BackHome)

當(dāng)你需要使用的時(shí)候,就很重要,所以還是比較推薦。

到此這篇關(guān)于淺談react路由傳參的幾種方式的文章就介紹到這了,更多相關(guān)react路由傳參內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • react調(diào)試和測(cè)試代碼的小技巧

    react調(diào)試和測(cè)試代碼的小技巧

    在開發(fā)React應(yīng)用時(shí),嚴(yán)格模式StrictMode可以幫助開發(fā)者捕捉到組件中的錯(cuò)誤和潛在問題,安裝React Developer Tools瀏覽器擴(kuò)展檢查組件的props和狀態(tài),直接修改以及分析性能,@testing-library/react和Cypress或Playwright等工具可以有效地測(cè)試React組件和執(zhí)行端到端測(cè)試
    2024-10-10
  • 淺談React多個(gè)setState會(huì)調(diào)用幾次

    淺談React多個(gè)setState會(huì)調(diào)用幾次

    在React的生命周期鉤子和合成事件中,多次執(zhí)行setState,會(huì)被調(diào)用幾次,本文就詳細(xì)的介紹一下,感興趣的可以了解一下
    2021-11-11
  • React-router v4 路由配置方法小結(jié)

    React-router v4 路由配置方法小結(jié)

    本篇文章主要介紹了React-router v4 路由配置方法小結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • React useEffect的理解與使用

    React useEffect的理解與使用

    這篇文章主要介紹了React useEffect的理解與使用,幫助大家更好的理解和學(xué)習(xí)使用React,感興趣的朋友可以了解下
    2021-04-04
  • React學(xué)習(xí)筆記之事件處理(二)

    React學(xué)習(xí)筆記之事件處理(二)

    這篇文章主要跟大家介紹了關(guān)于React中事件處理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)React具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。
    2017-07-07
  • React父子組件互相通信的實(shí)現(xiàn)示例

    React父子組件互相通信的實(shí)現(xiàn)示例

    React中是單向數(shù)據(jù)流,數(shù)據(jù)只能從父組件通過屬性的方式傳給其子組件,本文主要介紹了React父子組件互相通信的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11
  • React中使用Axios發(fā)起POST請(qǐng)求提交文件方式

    React中使用Axios發(fā)起POST請(qǐng)求提交文件方式

    這篇文章主要介紹了React中使用Axios發(fā)起POST請(qǐng)求提交文件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • React各種狀態(tài)管理器的解讀及使用方法

    React各種狀態(tài)管理器的解讀及使用方法

    這篇文章主要介紹了對(duì)于React各種狀態(tài)管理器的解讀,文中給大家提到了狀態(tài)管理器是如何使用的,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • useState?解決文本框無法輸入的問題詳解

    useState?解決文本框無法輸入的問題詳解

    這篇文章主要為大家介紹了useState?解決文本框無法輸入的問題詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 如何在react項(xiàng)目中做公共配置文件

    如何在react項(xiàng)目中做公共配置文件

    這篇文章主要介紹了如何在react項(xiàng)目中做公共配置文件問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10

最新評(píng)論

卢氏县| 集贤县| 自治县| 屏东县| 奉化市| 望城县| 长治县| 江孜县| 莆田市| 阜南县| 徐州市| 杭州市| 元朗区| 犍为县| 南昌县| 阿合奇县| 运城市| 烟台市| 瓮安县| 东辽县| 宁强县| 浑源县| 河北区| 乳山市| 墨竹工卡县| 重庆市| 林周县| 勐海县| 江北区| 灵宝市| 武乡县| 奇台县| 黔东| 万年县| 青田县| 孝昌县| 莱阳市| 灵寿县| 合水县| 富顺县| 襄垣县|