Provider >

Provider > 使组件层级中的 方法都能够获得 Redux store。正常情况下,你的根组件应该嵌套在 Provider 中才能使用 方法。

如果你真的不想把根组件嵌套在 <Provider> 中,你可以把 store 作为 props 传递到每一个被 connect() 包装的组件,但是我们只推荐您在单元测试中对 store 进行伪造 (stub) 或者在非完全基于 React 的代码中才这样做。正常情况下,你应该使用 <Provider>。

属性

  • store (Redux Store): 应用程序中唯一的 Redux store 对象
  • children (ReactElement) 组件层级的根组件。

https://www.redux.org.cn/docs/react-redux/api.html#provider-store

https://www.redux.org.cn

Redux 中文文档

https://www.ctolib.com/yiransheng-redux-free-flow.html

https://segmentfault.com/a/1190000019056045

Rematch: Redux 的重新设计

https://segmentfault.com/a/1190000019056045

  • Redux 应用只有一个单一的 store。当需要拆分数据处理逻辑时,你应该使用 reducer 组合 而不是创建多个 store;
  • redux一个特点是:状态共享,所有的状态都放在一个store中,任何component都可以订阅store中的数据;
  • 并不是所有的state都适合放在store中,这样会让store变得非常庞大,如某个状态只被一个组件使用,不存在状态共享,可以不放在store中;

视图层绑定引入了几个概念:

  • <Provider> 组件: 这个组件需要包裹在整个组件树的最外层。这个组件让根组件的所有子孙组件能够轻松的使用 connect() 方法绑定 store。
  • connect():这是 react-redux 提供的一个方法。如果一个组件想要响应状态的变化,就把自己作为参数传给 connect() 的结果,connect() 方法会处理与 store 绑定的细节,并通过 selector 确定该绑定 store 中哪一部分的数据。
  • selector:这是你自己编写的一个函数。这个函数声明了你的组件需要整个 store 中的哪一部分数据作为自己的 props。
  • dispatch :每当你想要改变应用中的状态时,你就要 dispatch 一个 action,这也是唯一改变状态的方法。

http://www.devio.org/2019/03/13/react-native-redux/

action和reducer只用于修改state的状态;

副作用

准备工作

根据需要安装以下组件。

  • redux(必选)
  • react-redux(必选):redux作者为方便在react上使用redux开发的一个用户react上的redux库;
  • redux-devtools(可选):Redux开发者工具支持热加载、action 重放、自定义UI等功能;
  • redux-thunk:实现action异步的middleware;
  • redux-persist(可选):支持store本地持久化;
  • redux-observable(可选):实现可取消的action;

http://www.devio.org/2019/03/13/react-native-redux/

React Native+Redux开发实用教程

connect是一个高阶函数,首先传入mapStateToProps、mapDispatchToProps,然后返回一个生产 Component 的函数(wrapWithConnect),然后再将真正的Component作为参数传入wrapWithConnect(MyComponent),这样就生产出一个经过包裹的Connect组件

https://my.oschina.net/shuaihong/blog/3026278

最新文章

  1. form表单提交路径action=&quot;&quot; 时的一种特殊情况
  2. [转]HTTP协议及其请求头分析
  3. 实现TabView(页签)效果
  4. OpenCV Open Camera 打开摄像头
  5. c语言中float、double、long double在内存中存储方式
  6. linux文章(11)---umask和chmod
  7. POJ 2240 Arbitrage Bellman_ford 判读是否存在正环
  8. Web压力测试小工具:webbench、http_load、Siege、ab
  9. Codeforces Round #402 (Div. 2)
  10. 在线激活win10、win8/8.1和office2019、2016、2013等的kms激活工具
  11. java中编写增删改查
  12. 复杂的字符串数组解析:{&quot;setting&quot;:&quot;简单:10:5,一般:5:10,困难:2:20&quot;},使用split多次截取
  13. RabbitMQ疑惑释义
  14. ASP.NET MVC案例教程(二)
  15. 判断是否存在某个字段hasOwnProperty
  16. u-boot移植(十二)---代码修改---支持DM9000网卡
  17. 7.6 C++基本序列式容器效率比较
  18. 谷歌开发的draco格式文件将obj文件压缩成drc文件后将大大减小文件大小(threejs加载有mtl文件的drc文件)
  19. Java对象序列化给分布式计算带来的方便
  20. 逆向路由器固件之解包 Part1

热门文章

  1. BBC micro:bit引脚介绍
  2. linux -------- 使用xshell ,winscp 连接linux 以及一些问题解决
  3. Windows设置国内源阿里云镜像加速与离线安装pip包的方法
  4. [转帖]How long does it take to make a context switch?
  5. 【Appium + Python + WebviewH5】之微信小程序自动化测试
  6. c++中如何判断sqlite表是否存在
  7. Linux学习笔记之grep命令和使用正则表达式
  8. Eclipse中js文件修改后浏览器不能及时更新的解决办法
  9. 什么是B+树
  10. Vue学习之生命周期钩子小结(四)