redux-组件状态管理——必要性-大型项目 & View-界面显示 & Store-数据存储 & Action-动作行为信息
状态管理的必要性
- 组件之间的数据传递
- 父组件向子组件传值
- 子组件向父组件传值
- 非父子组件之间传值
- 传统方式状态管理的问题
- 组件多层嵌套数据传递问题
- 非父子组件之间数据传递问题
- 解决方案(独立的状态管理工具)
- vue->vuex
- react->redux/mobx(flux是一种规范)
- flux是规范:redux是其中一种实现(十几种实现)
Flux思想概述
基本概念
- Store负责数据存储和数据的变更
- View负责界面显示,数据来源于Store
- Dispatcher负责分发Action
- Action表示动作行为信息(事件类型;携带数据)
数据交互流程:视图中的事件触发action;action通过dispatch进行分发;action被dispatch分发到store;store中进行数据处理,进而Store中数据的变化会导致view的更新。
Redux基本原则
- 唯一数据源(避免数据冗余)
- 保持状态只读(不可以直接在View中修改Store中的数据)
- 数据改变只能通过纯函数完成:Reducer(Reducer属于Store的一部分)
- reducer(state, action) 根据state和action的值产生一个新的对象