詳解React路由傳參方法匯總記錄
React中傳參方式有很多,通過(guò)路由傳參的方式也是必不可少的一種。
本文記錄項(xiàng)目中會(huì)用到的路由傳參方式: 路由跳轉(zhuǎn)傳參API + 目標(biāo)路由獲取參數(shù)的方式。
一、動(dòng)態(tài)路由
跳轉(zhuǎn)方法
Link
<Link to={{ pathname: "/user/add/1" }}>跳轉(zhuǎn)新增頁(yè)面</Link>
history.push
this.props.history.push("/user/add/1");
獲參方法
this.props.match.params
二、路由query顯示參數(shù)
Link跳轉(zhuǎn)
<Link to={{ pathname: "/user/add", query: { id: 1 } }}>
跳轉(zhuǎn)新增頁(yè)面
</Link>
history.push
this.props.history.push({
pathname: "/user/add",
//參數(shù)
query: { id: 1 },
});
獲參方法
this.props.location.query
三、路由state隱式參數(shù)
Link跳轉(zhuǎn)
<Link to={{ pathname: "/user/add", state: { id: 1 } }}>
跳轉(zhuǎn)新增頁(yè)面
</Link>
history.push
this.props.history.push({
pathname: "/user/add",
state: { id: 1 },
});
獲參方法
this.props.location.state
代碼DEMO
入口App組件
class App extends React.Component {
render() {
return (
<BrowserRouter>
<Route path="/user" exact component={User} />
//動(dòng)態(tài)路由
<Route path="/user/add/:id?" component={UserAdd} />
{/* <Redirect to="/user" /> */}
</BrowserRouter>
);
}
}
動(dòng)態(tài)路由Demo
User組件
import React, { Component } from "react";
import { Link } from "react-router-dom";
export default class User extends Component {
render() {
return (
<div>
<div className="user">User</div>
{/* <Link to={{ pathname: "/user/add/1" }}>跳轉(zhuǎn)新增頁(yè)面</Link> */}
<button
onClick={() => {
// 1.
// this.props.history.push("/user/add/1");
// 2.
this.props.history.push({
pathname: "/user/add/1",
});
}}
>
跳轉(zhuǎn)新增頁(yè)面
</button>
</div>
);
}
}
UserAdd組件
import React, { Component } from "react";
export default class UserAdd extends Component {
render() {
console.log("this.props.match.params:", this.props.match.params);
return <div>UserAdd</div>;
}
}
路由query顯示參數(shù)Demo
User組件
import React, { Component } from "react";
import { Link } from "react-router-dom";
export default class User extends Component {
render() {
return (
<div>
<div className="user">User</div>
<Link to={{ pathname: "/user/add", query: { id: 1 } }}>
跳轉(zhuǎn)新增頁(yè)面
</Link>
<button
onClick={() => {
this.props.history.push({
pathname: "/user/add",
query: { id: 1 },
});
}}
>
跳轉(zhuǎn)新增頁(yè)面
</button>
</div>
);
}
}
路由state隱式參數(shù)Demo
User組件
import React, { Component } from "react";
import { Link } from "react-router-dom";
export default class User extends Component {
render() {
return (
<div>
<div className="user">User</div>
<Link to={{ pathname: "/user/add", state: { id: 1 } }}>
跳轉(zhuǎn)新增頁(yè)面
</Link>
<button
onClick={() => {
this.props.history.push({
pathname: "/user/add",
state: { id: 1 },
});
}}
>
跳轉(zhuǎn)新增頁(yè)面
</button>
</div>
);
}
}

到此這篇關(guān)于詳解React路由傳參方法匯總記錄的文章就介紹到這了,更多相關(guān)React路由傳參內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解如何給React-Router添加路由頁(yè)面切換時(shí)的過(guò)渡動(dòng)畫(huà)
這篇文章主要介紹了詳解如何給React-Router添加路由頁(yè)面切換時(shí)的過(guò)渡動(dòng)畫(huà),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-04-04
React特征學(xué)習(xí)Form數(shù)據(jù)管理示例詳解
這篇文章主要為大家介紹了React特征學(xué)習(xí)Form數(shù)據(jù)管理示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
關(guān)于react ant 組件 Select下拉框 值回顯的問(wèn)題
這篇文章主要介紹了關(guān)于react ant 組件 Select下拉框 值回顯的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
react native實(shí)現(xiàn)往服務(wù)器上傳網(wǎng)絡(luò)圖片的實(shí)例
下面小編就為大家?guī)?lái)一篇react native實(shí)現(xiàn)往服務(wù)器上傳網(wǎng)絡(luò)圖片的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08
Next.js實(shí)現(xiàn)react服務(wù)器端渲染的方法示例
這篇文章主要介紹了Next.js實(shí)現(xiàn)react服務(wù)器端渲染的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
react路由v6版本NavLink的兩個(gè)小坑及解決
這篇文章主要介紹了react路由v6版本NavLink的兩個(gè)小坑及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10

