资讯专栏INFORMATION COLUMN

用react-redux实现react组件之间数据共享

smallStone / 2742人阅读

摘要:上篇文章写到了实现组件数据共享的方法,但是在中,作者提供了一个更优雅简便的模块实现组件之间数据共享。那就是利用利用实现组件数据之间数据共享安装从导入组件将赋予的属性将根组件用包裹起来。

上篇文章写到了redux实现组件数据共享的方法,但是在react中,redux作者提供了一个更优雅简便的模块实现react组件之间数据共享。那就是利用react-redux

利用react-redux实现react组件数据之间数据共享

1.安装react-redux
$ npm i --save react-redux
2.从react-redux导入Prodiver组件将store赋予Provider的store属性,
将根组件用Provider包裹起来。

import {Provider,connect} from "react-redux"
ReactDOM.render(

  
,document.getElementById("example"))

这样根组件中所有的子组件都可以获得store中的值
3.connect二次封装根组件

export default connect(mapStateToProps,mapDispatchToProps)(Wrap)

connect接收两个函数作为参数,一个mapStateToProps定义哪些store属性会被映射到根组件上的属性(把store传入react组件),一个mapDispatchToProps定义哪些行为action可以作为根组件属性(把数据从react组件传入store)
3.定义这两个映射函数

function mapStateToProps(state){
  return {
    name:state.name,
    pass:state.pass
  }
}
function mapDispatchToProps(dispatch){
 
  return {actions:bindActionCreators(actions,dispatch)
  }
}

把store中的name,pass映射到根组件的name,pass属性。
actions是一个包含了action构建函数的对象,用bindActionCreators把对象actions绑定到根组件actions属性上。
4.在根组件引用子组件的位置用 将store数据传入子组件.

5.在子组件中调用actions中的方法来更新store中的数据

先将actions作为属性传入子组件

子组件调用actions中的方法创建action

//Input组件
export default class Input extends React.Component{
sure(){
this.props.actions.add({name:this.refs.name.value,pass:this.refs.pass.value})
}
  render(){ 
    return (
        
姓名: 密码:
) } }

因为我们采用了bindActionCreators函数,创建action后会立即自动调用store.dispatch(action)将数据更新到store.

这样我们就利用react-redux模块完成了react各个组件之间数据共享。
跟上篇文章一样,实现了在一个组件Input中通过actions更新数据到store,然后在另一个组件Show中展示store中的数据

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/82974.html

相关文章

  • 详解react、redux、react-redux之间的关系

    摘要:或者兄弟组件之间想要共享某些数据,也不是很方便传递获取等。后面要讲到的就是通过让各个子组件拿到中的数据的。所以,确实和没有什么本质关系,可以结合其他库正常使用。 本文介绍了react、redux、react-redux之间的关系,分享给大家,也给自己留个笔记,具体如下: React 一些小型项目,只使用 React 完全够用了,数据管理使用props、state即可,那什么时候需要引入...

    xioqua 评论0 收藏0
  • 实现React-redux的基本功能

    摘要:要实现先搞清楚的就是这么一个东西,某个组件只要往自己的里面放了某些状态,这个组件之下的所有子组件都直接访问这个状态而不需要通过中间组件的传递。 1.要实现redux,先搞清楚context React.js 的 context 就是这么一个东西,某个组件只要往自己的 context 里面放了某些状态,这个组件之下的所有子组件都直接访问这个状态而不需要通过中间组件的传递。一个组件的 co...

    dmlllll 评论0 收藏0
  • 实现React-redux的基本功能

    摘要:要实现先搞清楚的就是这么一个东西,某个组件只要往自己的里面放了某些状态,这个组件之下的所有子组件都直接访问这个状态而不需要通过中间组件的传递。 1.要实现redux,先搞清楚context React.js 的 context 就是这么一个东西,某个组件只要往自己的 context 里面放了某些状态,这个组件之下的所有子组件都直接访问这个状态而不需要通过中间组件的传递。一个组件的 co...

    dreamans 评论0 收藏0
  • React Hooks 越来越火了,它会取代传统的 Redux 吗?

    摘要:前言自推出之后,收到了不少追捧,很多问题也随之而来。在出现之前,可以使用保存状态和更新状态用以应对这种情况。为了在这个用例上追赶的脚步,的需要提供副作用隔离功能。提供了一个,可以用它接入你的风格的。 showImg(https://segmentfault.com/img/remote/1460000019913697?w=1280&h=853); 前言 React Hooks 自推出...

    Scliang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<