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

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

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

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

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

<Link to='/home?name=dx'>首頁(yè)</Link>

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

因?yàn)閭鲄⒛軌虮挥脩艨匆?jiàn),傳遞獲取比較麻煩,所以不推薦

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

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

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

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

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

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

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

//簡(jiǎn)潔明了,但沒(méi)辦法接收來(lái)自父組件的傳參
<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í),通過(guò)在對(duì)應(yīng)的test子組件中,this.props獲取來(lái)自父組件傳遞的參數(shù)和路由組件自帶的參數(shù)
強(qiáng)烈推薦,傳遞參數(shù)略微有些麻煩,接收參數(shù)十分方便,并且仍然可以接收路由組件自帶的參數(shù),安全,不會(huì)被用戶看見(jiàn)

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

withRouter 何時(shí)使用?

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

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

一般用在返回首頁(yè),返回上一級(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)容
//返回首頁(yè)的按鈕不是通過(guò)route標(biāo)簽渲染的,所以該子組件的this.props中沒(méi)有路由參數(shù)
    <BackHome>返回首頁(yè)</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' //同樣,可以通過(guò)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è)試代碼的小技巧

    在開(kāi)發(fā)React應(yīng)用時(shí),嚴(yán)格模式StrictMode可以幫助開(kāi)發(fā)者捕捉到組件中的錯(cuò)誤和潛在問(wèn)題,安裝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é),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    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)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)React具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)吧。
    2017-07-07
  • React父子組件互相通信的實(shí)現(xiàn)示例

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

    React中是單向數(shù)據(jù)流,數(shù)據(jù)只能從父組件通過(guò)屬性的方式傳給其子組件,本文主要介紹了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)管理器是如何使用的,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • useState?解決文本框無(wú)法輸入的問(wèn)題詳解

    useState?解決文本框無(wú)法輸入的問(wèn)題詳解

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

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

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

最新評(píng)論

望江县| 阿巴嘎旗| 额尔古纳市| 交口县| 沿河| 达拉特旗| 海晏县| 依兰县| 青铜峡市| 嘉祥县| 大新县| 镇江市| 伽师县| 遂昌县| 玉龙| 墨竹工卡县| 新余市| 鄢陵县| 马关县| 宁远县| 德惠市| 松江区| 祁连县| 黄大仙区| 泰兴市| 海宁市| 石泉县| 历史| 五华县| 卢湾区| 宁乡县| 平邑县| 满洲里市| 平安县| 观塘区| 隆昌县| 大荔县| 钟山县| 栖霞市| 甘泉县| 宜黄县|