action
- action是实现组件状态变化的唯一途径
- action对象必须有一个字符串类型的type字段
- 定义action需要两个文件,一个定义acion.type,一个定义action creactor(构造方法)。一般一个构造函数对于一种type
Dispatcher
- Dispatcher依靠type,沟通着store(by resigner)和action(by dispatch)
- Dispatcher会对注册了不同type的store派发不同的action
store
- store负责组件的状态(数据)管理
flux下的react特点
- 组件沦为Store的映射
- 用户操作不再引发state的改变,而是引发action的dispatch
- store只向UI组件暴露可读的接口;而UI组件想改变store内部状态,只能通过派发不同type的action。促使数据只能由store流向UI组件。
flux与MVC
- store对应Model
- UI组件对应View
- Dispatcher对应Controller
- 在MVC架构中,Model与View之间数据可以直接互相流通。而在flux中,数据只能由store流向UI组件,这是flux较MVC的高明之处
flux的不足
- store的设计存在问题。无法在保留store状态的情况下替换store中的逻辑。