美文网首页
React router(路由传参)

React router(路由传参)

作者: zhenghongmo | 来源:发表于2020-06-23 15:29 被阅读0次
  • vue里面指向地址的属性叫path,看到网上很多文章,react路由传参指向的属性也叫path,但是:目前react-router-dom:5.1.2指向地址的属性叫做pathname
1、 pathname + search
  • 优点:刷新也在........
  • 缺点:只能传字符串,显式传参,不能传过大的数据,传递数据过多会让地址变的很丑
A页面
<Link to={{pathname: '/setting', search:'id=1'}}>jump --- search</Link>

this.props.history.push({
  pathname: '/setting',
  search: 'a=1'
})
// 取参
B页面
this.props.history.location.search
2、pathname + state
  • 这种形式的传参式隐式的,刷新页面就没有了
  • 和任意属性一致,但是官方应该指定的是这个,因为刷新后location中会存在state: undefined,任意属性则不会
A页面
<Link to={{pathname: '/setting', state:{id:1}}}>jump --- state</Link>
// 取参
B页面
this.props.history.location.state.id
3、pathname + params
  • 配合动态路由传参
  • 优缺点同第一种pathname + search的方式
// 动态路由后面加?表示可选,不加表示必选
<Route path="/setting/:id?" component={Setting}></Route>
A页面
let id = 1;
<Link to={{pathname: `/setting/${id}`}}>jump --- params</Link>
// 取参
B页面
this.props.history.match.params.id
4、replace
<Link to="/setting" replace/>

this.props.history.replace('/setting')
5、react withRouter
  • 高阶组件中的withRouter, 作用是将一个组件包裹进Route里面, 然后react-router的三个对象history, location, match就会被放进这个组件的props属性中.
import React from 'react'
import {
    NavLink,
    withRouter
} from "react-router-dom"

class Nav extends React.Component{
    handleClick = () => {
        // Route 的 三个对象将会被放进来, 对象里面的方法可以被调用
        console.log(this.props);
    }
    render() {
        return (
            <div >
             llaala
            </div>
        );
    }
}

// 导出的是 withRouter(Nav) 函数执行
export default withRouter(Nav)

相关文章

  • React router(路由传参)

    vue里面指向地址的属性叫path,看到网上很多文章,react路由传参指向的属性也叫path,但是:目前reac...

  • React路由

    React-Router的基本配置 基本案例 路由传参 动态路由 首先在app.jsx中添加路由(分别是新闻列表页...

  • vue-router传参

    1.params params传参 2.router-link query传参 3.路由传参

  • vue 路由传参

    路由传参:六种方法 1,router-link to = '/' 字符串传参 通过router-link to传值...

  • Vue-Router

    1. 路由配置 默认路由跳转 在 new Router时可用的配置参数: 2.路由传参 Vue路由传参的几种方式 ...

  • 2018-09-24 第九天

    1.路由的传参 首页

  • 路由的传参

    路由的传参 下载:npm install vue-router路由的传参:1.查询字符串:/user/regist...

  • 路由的传参 axios

    1,路由的传参:案例: 2,axios下载:npm install vue-router路由的传参:1.查询字符串...

  • vue 路由的传参 vue中的ajax (axios)

    1.路由的传参 下载:npm install vue-router路由的传参:1.查询字符串:/user/regi...

  • 动态路由

    路由动态传参 方法一 步骤1:在进行传参 分析:格式是定义一个对象,传路由的名称name...

网友评论

      本文标题:React router(路由传参)

      本文链接:https://www.haomeiwen.com/subject/lmdhfktx.html