redux关联react的方法
创始人
2024-11-20 09:26:07
0次

在react中可以react-redux库来关联redux;react-redux提供了一些封装,可以以一种更科学的代码组织方式,让我们更舒服地在React的代码中使用Redux。

  • 该方法适用于所有品牌的电脑。

Redux本身和React并没有之间的关联,它是一个通用Javscript App模块,用做App State的管理。要在React的项目中使用Redux,比较好的方式是借助react-redux这个库来做连接,这里的意思是,并不是没有react-redux,这两个库就不弄一起用了,而是说react-redux提供了一些封装,一种更科学的代码组织方式,让我们更舒服地在React的代码中使用Redux。

redux和react是怎么配合的?

react-redux提供connect和provider两个基友,他们connect将组件和redux关联起来,provider将store传递给组件,组件通过dispatch发出action, store根据action的type属性调用对应的reducer并传入state和这个action,reducer对state进行处理返回一个新的state放入store, connect监听到store的变化,调用setState更新组件,此时组件的props也就跟着发生变化。

Provider:

provider是一个组件,它接受store作为props,然后通过context往下传,这个react中任何组件都可以通过context获取store;

connect:

connect(mapStateToProps, mapDispatchToProps, mergeProps, options)是一个函数,它接受四个参数并且返回一个函数—wrapWithConnect,wrapWithConnect它接受一个组件作为参数wrapWithConnect(component), 它内部定义一个新的组件connect(容器组件)并将传入的组件作为connect的子组件然后return出去。

mapStateToProps(state.[ownPros]):

mapStateToProps接受两个参数,store的state和自定义的props,并返回一个新的对象,这个对象会作为props的一部分传入UI组件。我们可以根据组件所需要的数据自定义返回一个对象,ownProps的变化也会触发mapStateToProps

mapDispatchToProps(dispatch,[ownProps]):

mapDispatchToProps如果是对象,那么会和store绑定作为props的一部分传入UI组件。如果这个函数接受两个参数,bindActionCreators会将action和dispatch绑定并返回一个对象,这个对象会和ownProps一起作为props的一部分传入UI组件,所以不论mapDispatchToProps是对象还是函数,它最终都会返回一个对象,如果是函数,这个对象的key值是可以自定义的。

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...