redux三大原则
- 单一数据源,只有唯一一个store
- state是只读的,唯一改变state的方法就是触发action
- 使用纯函数来执行修改
先前技术
- flux
- Redux并没有dispatcher的概念,原因是它依赖纯函数来替代事件处理器
- Redux设想你永远不会变动你的数据。
- Elm
- Elm是一种函数式变成语言
- 它执行一种
model view update
的架构 - Elm的
updater
与Redux里的reducer
服务于相同的目的 - 不同于Redux,Elm是一门语言,因此在执行纯度,静态类型,不可变动,action和模式匹配等方面更具优势
- Immutable
- 它是一个可实现持久数据结构的javascript库
- 它性能很好,并且命名符合javascript API的语言习惯
- Baobab
- 它实现了数据不可变特性的API,用以更新纯javascript对象
- 所提供的大部分功能都与使用cursors更新数据相关,而Redux更新数据的唯一方法是分发一个action
- 但是它还不能实现任何特别有效的数据结构
- Rx
- 它是管理复杂异步应用非常优秀的方案,可以与redux配合得很好
探索: Cycle