时间:2021-05-18
上篇文章写到了redux实现组件数据共享的方法,但是在react中,redux作者提供了一个更优雅简便的模块实现react组件之间数据共享。那就是利用react-redux
利用react-redux实现react组件数据之间数据共享
1.安装react-redux
2.从react-redux导入Prodiver组件将store赋予Provider的store属性,
将根组件用Provider包裹起来。
import {Provider,connect} from 'react-redux'ReactDOM.render(<Provider store={store}> <Wrap/></Provider>,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.在根组件引用子组件的位置用 <Show name={this.props.name} pass={this.props.pass}></Show>将store数据传入子组件.
5.在子组件中调用actions中的方法来更新store中的数据
<Input actions={this.props.actions} ></Input>先将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 ( <div> 姓名:<input ref="name" type="text"/> 密码:<input ref="pass" type="text"/> <button onClick={this.sure.bind(this)}>登录</button> </div> ) }}因为我们采用了bindActionCreators函数,创建action后会立即自动调用store.dispatch(action)将数据更新到store.
这样我们就利用react-redux模块完成了react各个组件之间数据共享。
跟上篇文章一样,实现了在一个组件Input中通过actions更新数据到store,然后在另一个组件Show中展示store中的数据
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
自己动手实现一个react-redux之前试过自己动手实现一个redux,这篇blog主要记录动手实现一个react-redux的过程。这个react-redu
使用React-redux实现,待办事项todolist案例。注:以下列出主要页面代码,为说明React-redux实现的过程,所以并没有将案例的完整代码展示!
本文介绍了react、redux、react-redux之间的关系,分享给大家,也给自己留个笔记,具体如下:React一些小型项目,只使用React完全够用了,
react的组件模式可以观看MichaelChan的演讲视频,平时大家常听到的react模式也是HOC,HOC的使用场景很多,譬如react-redux的con
在React项目中,我们经常会通过redux以及react-redux来存储和管理全局数据。但是通过redux存储全局数据时,会有这么一个问题,如果用户刷新了网