关闭

react router中页面传值的三种方法

时间: 2018-05-10阅读: 2361标签: react作者: 转载

这篇文章主要介绍react Router定义路由之后如何传值,有关react和React Router   


1、props.params

使用React router定义路由时,我们可以给指定一个path,然后指定通配符可以携带参数到指定的path:

<Route path='/user/:name' component={UserPage}></Route>

跳转UserPage页面时,可以这样写:

//link方法
<Link to="/user/sam">用户</Link>
//push方法
this.props.history.push("/user/sam");

在UserPage页面中通过 this.props.params.name 获取值。

上面的方法可以传递一个或多个值,但是每个值的类型都是字符串,没法传递一个对象,如果要传的话可以将json对象转换为字符串,传递过去之后再将json字符串转换为对象。

 let data = {id:3,name:sam,age:36};
 data = JSON.stringify(data);
 let path = '/user/${data}';

 //在页面中获取值时
 let data = JSON.parse(this.props.params.data);


2、query

query方式可以传递任意类型的值,但是页面的URL也是由query的值拼接的,URL很长且是明文传输。

    //定义路由
    <Route path='/user' component={UserPage}></Route>

    //数据定义
    let data = {id:3,name:sam,age:36};
    let path = {
        pathname: '/user',
        query: data,
    }

    //页面跳转
    <Link to={path}>用户</Link>
    this.props.history.push(path);

    //页面取值
    let data = this.props.location.query;
    let {id,name,age} = data;


3、state

state方式类似于post,依然可以传递任意类型的数据,而且可以不以明文方式传输。

    //定义路由
    <Route path='/user' component={UserPage}></Route>

    //数据定义
    let data = {id:3,name:sam,age:36};
    let path = {
        pathname: '/user',
        state: data,
    }

    //页面跳转
    <Link to={path}>用户</Link>
    this.props.history.push(path);

    //页面取值
    let data = this.props.location.state;
    let {id,name,age} = data;

以上就是react router中页面传值的三种方法。

站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

2.广告联盟: 整理了目前主流的广告联盟平台,如果你有流量,可以作为参考选择适合你的平台点击进入

链接: http://www.fly63.com/article/detial/755

关闭

自定义组件v-model的实质性理解

在React中如果想实现类似于v-model的功能,一个组件上的 v-model 默认会利用名为 value 的 prop 和名为 input 的事件,但是像单选框、复选框等类型的输入控件可能会将 value 特性用于不同的目的

grpc-web与react的集成

使用create-react-app脚手架生成react相关部分,脚手架内部会通过node自动起一个客户端,然后和普通的ajax请求一样,和远端服务器进行通信,只不过这里采用支持rpc通信的grpc-web来发起请求,远端采用docker容器的node服务器,node服务器端使用envoy作为代理

渐进式React

可以说 React 为Web开发者带来了全新的开发模式,而在各类新功能下,如何达到性能最优仍是我们需要关心的。今天做一次精读尝试,原文地址在文末,话不多说,先呈上一份性能清单:

react hook超实用的用法和技巧分析

react hook发布也已经有几个月了,相信有部分人已经开始使用了,还有些人在犹豫要不要用,可能更多人安于现状,没有要用的打算,甚至还有很多公司的react版本是15或以下的,迫于升级的难度没有使用。以我个人的观点,要不要使用react hook呢?

React使用propTypes进行类型检查

注意: React.PropTypes 自 React v15.5 起已弃用。请使用 prop-types 库代替。随着你的应用的开发,你会使用类型检查的方法来捕获很多bug。对于一些应用,你可以使用js扩展就像Flow或者TypeScript去对整个应用进行类型检查

react-redux 的使用

类似于 Vue,React 中组件之间的状态管理 第三方包为:react-redux。react-redux 其实是 Redux的官方React绑定库,它能够使你的React组件从Redux store中读取数据,并且向store分发actions以更新数据。

React 中请求远程数据的四种方法

React 是一个专注的组件库。因此,它对如何请求远程数据没有什么建议。如果要通过 HTTP 请求数据并将其发送到 Web API ,可以考虑下面四种方法。

深入理解 React useLayoutEffect 和 useEffect 的执行时机

我们先看下 React 官方文档对这两个 hook 的介绍,建立个整体认识,该 Hook 接收一个包含命令式、且可能有副作用代码的函数。在函数组件主体内(这里指在 React 渲染阶段)改变 DOM、添加订阅、设置定时器

React中组件逻辑复用的那些事儿

基本每个开发者都需要考虑逻辑复用的问题,否则你的项目中将充斥着大量的重复代码。那么 React 是怎么复用组件逻辑的呢?本文将一一介绍 React 复用组件逻辑的几种方法,希望你读完之后能够有所收获。如果你对这些内容已经非常清楚,那么略过本文即可。

react-router 路由切换动画

因为项目的需求,需要在路由切换的时候,加入一些比较 zb 的视觉效果,所以研究了一下。把这些学习的过程记录下来,以便以后回顾。同时也希望这些内容能够帮助一些跟我一样的菜鸟,让他们少走些坑。可能我对代码的表述不是很到位,希望大家不要介意。机智的你们一定可以看明白。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!