codecamp

Redux 生态

生态

Redux 是一个体小精悍的库,但它相关的内容和 API 都是精挑细选的,足以衍生出丰富的工具集和可扩展的生态系统。

如果需要关于 Redux 所有内容的列表,推荐移步至 Awesome Redux。它包含了示例、样板代码、中间件、工具库,还有很多其它相关内容。

本页将只列出其中由 Redux 维护者亲自维护的一部分内容。不要因此打消尝试其它工具的信心!整个生态发展得太快,我们没有足够的时间去关注所有内容。建议只把这些当作“内部推荐”,如果你使用 Redux 创建了很酷的内容,不要犹豫,马上发个 PR 吧。

不同框架绑定

中间件

组件

  • redux-form —— 在 Redux 中时时持有 React 表格的 state

Store 增效器

Reducer 增效器

  • redux-optimist —— 乐观使用将被提交或还原的 action
  • redux-undo ——使 reducer 具有便捷的重做/撤销,以及 action 记录功能

工具集

  • reselect —— 受 NuclearJS 启发,有效派生数据的选择器
  • normalizr —— 通过内嵌 API 响应标准化,使 reducer 的处理更简便
  • redux-actions —— 在初始化 reducer 和 action 构造器时减少样板代码 (boilerplate)
  • redux-transducers —— Redux 的编译器工具
  • redux-immutablejs —— Redux 和 Immutable 的交互工具
  • redux-tcomb —— 在 Redux 中使用具有不可变特性、并经过类型检查的 state 和 action

开发者工具

教程与文章

演讲

社区公约

更多

Awesome Redux 是一个展示丰富 Redux 相关信息的列表。

Redux 先前技术
Redux 示例
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }