欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

详解React路由传参方法汇总记录

程序员文章站 2022-06-24 12:28:44
react中传参方式有很多,通过路由传参的方式也是必不可少的一种。本文记录项目中会用到的路由传参方式: 路由跳转传参api + 目标路由获取参数的方式。一、动态路由跳转方法link

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路由传参内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

相关标签: React 路由传参