redux
仅仅是用来管理组件的状态,需要满足以下条件:
- 用户使用方式复杂
- 不同的用户、不同使用方式(普通用户和管理员);
- 多个用户之间的协作;
- 与服务器有大量的交互;
- View有多个数据源。
其他场景下,能不用redux就不用,否则增加项目的复杂度。
三大特征:
- 单一的数据源,整个应用的state都存储与store对象中;
- state只读,只有触发Action(用于描述发生的事件)才能改变state;
- 使用纯函数(函数的返回值只能依赖于它的参数,相同的输入,只能得到相同的结果)执行修改。
由三个部分构成:
1. Action,描述事件,是信息的载体
2. Reducer,定义事件,规定整个应用的状态如何改变,根据Action更新Store中的状态
3. Store,存储整个应用的状态
createStore(reducer,[preloadedState],[enhancer])
创建一个store来存放应用中所有的state,并且应用中只能有一个store。