一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - 詳解React路由傳參方法匯總記錄

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

2021-11-25 16:13樂聞x JavaScript

這篇文章主要介紹了詳解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>;
 }
}

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

路由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>
  );
 }
}

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

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

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

到此這篇關于詳解React路由傳參方法匯總記錄的文章就介紹到這了,更多相關React路由傳參內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/m0_37890289/article/details/110238928

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 免费视频 久久久 | 麻豆在线观看 | 91短视频在线观看2019 | 91在线精品老司机免费播放 | 久久无码AV亚洲精品色午夜麻豆 | 全色黄大色黄大片爽一次 | 美味情缘韩国在线观看视频 | 884aa草莓视频| 国产不卡视频一区二区在线观看 | 99精品观看 | 91久久线看在观草草青青 | 欧美一二区 | 小辣椒精品福利视频导航 | 丰腴尤物贵妇浪荡小说 | 日本一二线不卡在线观看 | 热久久亚洲 | 国产免费一区二区三区免费视频 | 欧美一区二区三区高清不卡tv | 国内精品久久久久影院中国 | 成年人免费看的视频 | 波多野结衣作品在线观看 | 国产自拍专区 | 男女车车好快的车车免费网站 | 欧美灰丝袜丝交nylons | 肉蒲在线观看 | 欧美同性猛男videos | 欧美影院天天5g天天爽 | 出轨同学会免费观看 | 999导航| 爆操俄罗斯美女 | 欧美极品brazzers 高清 | 国产成人免费观看在线视频 | 91麻豆精品激情在线观看最新 | 特黄特色大片免费视频大全 | 婷婷综合在线 | 青青草精品 | 91久久偷偷做嫩草影院免费 | 91精品国产在线 | 99久久国产综合精品网成人影院 | h片免费网站 | 免费视频片在线观看 |