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