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

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

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免费精品国自产拍在线不卡 | 好大好硬好湿好紧h | 欧美日韩国产最新一区二区 | 男人插曲女人下面 | 亚洲 欧美 清纯 校园 另类 | 欧美va在线观看 | 思久久 | chinesespanking网站 | 久久草福利自拍视频在线观看 | 特黄视频免费看 | 爱情岛论坛亚洲一号路线 | 亚洲va在线va天堂va偷拍 | 亚洲九九爱| 日韩中文字幕在线不卡 | 国产精品久久香蕉免费播放 | 国内外精品免费视频 | 久久免费国产视频 | 精品牛牛影视久久精品 | 成人精品 | 性一交一无一伦一精一品 | 亚洲不卡视频在线 | 桥本有菜在线四虎福利网 | 超级乱淫伦小说全集np | 99热er| 亚洲成人视屏 | 毛片在线网址 | 99精品视频在线观看免费播放 | 色多多视频在线 | 91精品天美精东蜜桃传媒免费 | xxx95日本老师xxx学生 | 亚洲国产欧美在线人网站 | 草草视频免费看 | a级毛片毛片免费很很综合 a级黄色视屏 | xxxxxx性受| 日本黄色网页 | 精品欧美一区二区三区在线观看 | 动漫精品一区二区三区3d | 日本精品久久久久久久久免费 | 欧美图片另类小说综合 | chinese男性厕所撒尿合集 |