redux浅谈(1基础)

1:Redux是干什么的?

  文档上是这么说的:Redux 是 JavaScript 状态容器,提供可预测化的状态管理。换个说明其实就是解决React以及其他一些界面库不能解决的问题:代码结构以及组件之间的通信。那么它是怎么工作的?
2:Redux工作基本流程?
  谈它的工作流程,那就要了解它的设计 思想:
    (1)Web 应用是一个状态机,视图与状态是一一对应的。

    (2)所有的状态,保存在一个对象里面。

  那么redux是怎么工作使得View发生变化?
  首先我觉得一定要牢记住几个概念:
Store,State,Action,Action-Creator,Reducer,listener
Store : 就是保存数据的地方,可以把它看成一个容器。整个应用只能有一个 Store。
State:某个时点对于Store生成快照,而构成的数据集合对象。
Action:State变化会导致View变化,但是用户只能对View进行操作,Action就是View发出的消息。
Action Creators:View发出几种消息就会对应几种Action,如果都是手动写,会很麻烦,从而就需要一个纯函数(纯函数原因:View和State是一一对应的)来生成Action。
Reducer:用于处理Action触发的对于状态树的更改。接收curState和Action生成一个新的State。它也是一个纯函数(纯函数原因:View和State是一一对应的)。
listener:监听函数,一旦State发生变化,就自动执行这个函数,若把View的更新放入listener,就会实现View的自动渲染。
store的几个操作:
store.dispatch(Action):发出一个Action。
store. getState():获取当前的State。
Store.subscribe(listener):设置监听函数。
那么Redux基本工作流程:
1:用户要修改状态只能操作View,然后通过Action Creators生成对应的Action。
2:Store将Action发送出去。store.dispatch(Action)。
3:然后Store会自动调用Reducer这个纯函数,输入当前State(通过store.getState()获取)和Action,生成新的State。
4:state发生变化,Store会调用监听函数(需要在之前设置监听函数,store.subscribe(listener)),执行监听函数listener。
5:若把View的更新放入监听函数中,就会实现View的自动渲染。
 
那么最简单的redux工作就结束了。
  由于本人能力有限,如果有理解的错误,还请指出。
参考资料:
http://www.ruanyifeng.com/blog/2016/09/redux_tutorial_part_one_basic_usages.html
https://hulufei.gitbooks.io/react-tutorial/redux-basic.html

本文来自网易实践者社区,经作者王海玲授权发布。