1. redux是什么 ?
- redux 是一个专门用于做状态管理的JS库(不是react的插件)。
- redux 可以用在react, angular, vue等项目中, 但基本与react配合使用。
(vue中有vuex,所以一般不用redux) - 集中式管理react应用中多个组件共享的状态。
2. 什么情况下需要使用redux ?
- 某个组件的状态,需要让其他组件可以随时拿到(共享),则考虑放在redux中。
- 一个组件需要改变另一个组件的状态(通信)。
- 总体原则:能不用就不用, 如果不用比较吃力才考虑使用。
3. redux工作流程
流程设想为餐厅情境:
顾客(React Component):相当于顾客点餐,(React组件变化)。
服务员(Action Creators): 相当于将点餐单子记录下来,给到老板,(将React组件变化封装成一个action传给Store)。
老板(Store):接收Action/点餐单,给到厨师/Reduces ,(传递组件action变化)。
厨师(Reduces): 厨师根据点餐单做菜,做好后将菜给到老板,(根据action处理组件的到新的state)
老板(Store): 老板最后将做好的菜给到顾客(传递新的state)。
最难的活在厨师(Reduces)中,reduces做了两件是:
- 用于初始化状态、加工状态。 (previousState = undefined action = 初始化内容),(第一次点餐)
- 加工时,根据旧的state和action, 产生新的state的纯函数。(加菜)