1. 程式人生 > 程式設計 >詳解React路由傳參方法彙總記錄

詳解React路由傳參方法彙總記錄

React中傳參方式有很多,通過路由傳參的方式也是必不可少的一種。

本文記錄專案中會用到的路由傳參方式: 路由跳轉傳參API + 目標路由獲取引數的方式。

一、動態路由

跳轉方法

Link

 <Link to={{ pathname: "/user/add/1" }}>跳轉新增頁面</Link>

history.push

 this.props.history.push("/user/add/1");

獲參方法

this.props.match.params

二、路由query顯示引數

Link跳轉

<Link to={{ pathname: "/user/add",query: { id: 1 } }}>
     跳轉新增頁面
 </Link>

history.push

this.props.history.push({
       pathname: "/user/add",//引數
       query: { id: 1 },});

獲參方法

this.props.location.query

三、路由state隱式引數

Link跳轉

<Link to={{ pathname: "/user/add",state: { id: 1 } }}>
     跳轉新增頁面
    </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} />
    //動態路由
    <Route path="/user/add/:id?" component={UserAdd} />
    {/* <Redirect to="/user" /> */}
   </BrowserRouter>
  );
 }
}

動態路由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" }}>跳轉新增頁面</Link> */}
    <button
     onClick={() => {
      // 1.
      // this.props.history.push("/user/add/1");
      // 2.
      this.props.history.push({
       pathname: "/user/add/1",});
     }}
    >
     跳轉新增頁面
    </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>;
 }
}

image-20201127171632005

路由query顯示引數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 } }}>
     跳轉新增頁面
    </Link>
    <button
     onClick={() => {
      this.props.history.push({
       pathname: "/user/add",query: { id: 1 },});
     }}
    >
     跳轉新增頁面
    </button>
   </div>
  );
 }
}

image-20201127173247403

路由state隱式引數Demo

User元件

import React,state: { id: 1 } }}>
     跳轉新增頁面
    </Link>
    <button
     onClick={() => {
      this.props.history.push({
       pathname: "/user/add",});
     }}
    >
     跳轉新增頁面
    </button>
   </div>
  );
 }
}

image-20201127173923810

到此這篇關於詳解React路由傳參方法彙總記錄的文章就介紹到這了,更多相關React路由傳參內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!