react中页面如何传值

react中页面传值的方法:1、使用【props.params】方法,代码为【】;2、使用query方式使用很简单,类似于表单中的get方法,传递参数为明文。

react中页面如何传值

react中页面传值的方法:

一、props.params

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

首先定义路由到UserPage页面:

import { Router,Route,hashHistory} from 'react-router';class App extends React.Component {  render() {    return (                                )  }}

登录后复制

上面指定参数一个参数name

使用:

import {Link,hashHistory} from 'react-router';

登录后复制

1、Link组件实现跳转:

用户

登录后复制

2、history跳转:

hashHistory.push("/user/sam");

登录后复制

当页面跳转到UserPage页面之后,取出传过来的值:

export default class UserPage extends React.Component{    constructor(props){        super(props);    }    render(){        return(
this.props.params.name
)    }}

登录后复制

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

如:定义路由:


登录后复制登录后复制登录后复制

使用:

var data = {id:3,name:sam,age:36};data = JSON.stringify(data);var path = `/user/${data}`;用户hashHistory.push(path);

登录后复制

获取数据:

var data = JSON.parse(this.props.params.data);var {id,name,age} = data;

登录后复制

通过这种方式跳转到UserPage页面时只能通过传递字符串来传递参数,那么是否有其他方法来优雅地直接传递对象而不仅仅是字符串呢?

二、query

query方式使用很简单,类似于表单中的get方法,传递参数为明文:

首先定义路由:


登录后复制登录后复制登录后复制

使用:

var data = {id:3,name:sam,age:36};var path = {  pathname:'/user',  query:data,}用户hashHistory.push(path);

登录后复制

获取数据:

var data = this.props.location.query;var {id,name,age} = data;

登录后复制

query方式可以传递任意类型的值,但是页面的URL也是由query的值拼接的,URL很长,那么有没有办法类似于表单post方式传递数据使得传递的数据不以明文传输呢?

三、state

state方式类似于post方式,使用方式和query类似,

首先定义路由:


登录后复制登录后复制登录后复制

使用:

var data = {id:3,name:sam,age:36};var path = {  pathname:'/user',  state:data,}用户hashHistory.push(path);

登录后复制

获取数据:

var data = this.props.location.state;var {id,name,age} = data;

登录后复制

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

可以在实现后对比地址栏的URL来观察三种传值方式URL的区别

相关学习推荐:javascript学习教程

以上就是react中页面如何传值的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2723125.html

(0)
上一篇 2025年3月7日 23:01:27
下一篇 2025年2月28日 17:34:19

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • react组件几种声明方式是什么

    react组件的声明方式:1、函数式定义的无状态组件;2、es5原生方式【React.createClass】定义的组件;3、es6形式的【extends React.Component】定义的组件。 react组件的声明方式: 1、无状态…

    2025年3月7日
    200
  • react中fragment是什么?

    fragment是react中的一个组件,作用是代替div作为外层,可做不可见的包裹元素。定义组件的时,return返回需要唯一根元素,所以经常会写一个div来包裹,但如果不想渲染这个div,减少dom渲染,就可以引用Fragment组件。…

    2025年3月7日
    200
  • react组件添加样式的方法

    react组件添加样式的方法:1、通过表达式传入样式对象的方式来实现;2、通过使用行内样式;3、通过第三方包定义类名;4、通过样式组件“styled-components”添加样式。 本教程操作环境:windows7系统、React16版,…

    2025年3月7日
    200
  • 使用react native的好处是什么?

    使用react native的好处是:使用React Native能够以经济高效的方式构建和维护跨平台的app,可以减少质量保证的费用;而一个跨平台APP,可以同时定位iOS和Android受众市场,可有更广泛的受众群体,具有更大的影响力。…

    2025年3月7日
    200
  • redux如何关联react?

    在react中可以react-redux库来关联redux;react-redux提供了一些封装,可以以一种更科学的代码组织方式,让我们更舒服地在React的代码中使用Redux。 本教程操作环境:windows7系统、React17版,该…

    2025年3月7日
    200
  • 什么编辑器支持react?

    支持react的编辑器:Nuclide、Atom、Sublime Text、Visual Studio Code、WebStorm、Vim编辑器、GNU Emacs编辑器、Spacemacs编辑器、Deco IDE、TextMate编辑器等…

    2025年3月7日 编程技术
    200
  • react子组件怎么向父组件传值?

    react子组件向父组件传值的方法:在父组件中设定state的初始值以及处理该state的函数,同时将函数名通过以props属性值的形式传入子组件,子组件通过调用父组件的函数,进而引起state变化,达到在父组件中展示子组件产生的变化。 本…

    2025年3月7日
    200
  • react中monent如何获取日期?

    方法:1、使用“npm install moment –save”安装moment;2、在组件中使用import语句引入moment;3、使用monent提供的方法来获取日期,例“moment().format();”获取当前时…

    2025年3月7日
    200
  • 什么是react dva?

    在react中,dva是一个基于redux和redux-saga的数据流方案,然后为了简化开发体验,dva还额外内置了react-router和fetch,所以也可以理解为一个轻量级的应用框架。 该方法适用于所有品牌的电脑。 dva介绍 d…

    2025年3月7日 编程技术
    200
  • 可以用什么编辑react native?

    编辑react native的工具有:Atom、Sublime Text、Visual Studio Code、WebStorm、Nuclide、Deco IDE(专为React Native打造的IDE)、GNU Emacs编辑器等等。 …

    2025年3月7日 编程技术
    200

发表回复

登录后才能评论