react-redux

react-redux

介绍

facebook  自家的 redux

  • react–redux 让 redux 的使用更加灵活;
  • 更加的像 vuex.虽然 vuex 也是基于 redux 得

npm i react-redux



流程

容器组件

只是一个连接 UI 组件和 redux 的桥梁,不是通常的组件写法。

传递 store

根组件中通过 props 向容器组件中传递 store

传参

容器组件向 UI 组件传值

  • 传递的 props 写到 connect 的第参数中。
  • connect 第一个参数   中有两个参数,需要传两个函数,且这两个函数的返回值都必须是一个对象,就是 props 状态
  • 第一个函数(<font style="color:#61AFEF;">mapStateToProps</font>)的参数是 state映射状态
  • 第二个函数(<font style="color:#61AFEF;">mapDispatchToProps</font>)的参数是 dispatch  –映射操作状态的方法
  • 总结
  • 语法上简写  connect ,  就直接把的传两函数 写到参数体里面
  • 第二个   函数mapDispatchToProps 的简写为一个对象。react-redux 可以自动帮你 dispatch,只用写事件名:action 即可。

与 redux 的差异

>>使用了 react-redux  就不需要   手动配置   状态更新了。容器组件自己配备响应式更新状态的功能。

>>使用 react-redux 的 api –**Provider**。  就不用在根组件中 向每个容器组件 一个一个的传递 store 了。Provider 帮你都安排上了。

>>真实开发 合并 ui 和容器   组件为   一个 jsx。巴巴适适的


实践

1. 目录建议

  • 目录就该如此的写   容器组件和 ui 写到一起,一般都写到 container 目录,component 也可以
  • 分离 actions 和 reducers 为两个文件夹,存放不同容器的 actions 和 reducers.
  • constant 常量.js  和 store.js 都写在 redux 根中。

–redux 核心状态 state  合并为一个对象。就像 vuex 那样。

**2. combinReducers **

  • 引入 combinReducers  整合   所有的 reducers 状态

  • 合并 reducers 状态

  • 然后就能实现真正的数据共享了,所有的容器组件中的 reducer 初始化还是后期更新的数据,都可以愉快的交叉使用啦。
  • 还有就是把   所有 reducers 写到一个 index.js  统一暴露出来。
  • store 中引入哈就 ok 了

>总结<


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!