Redux简介

来源:互联网 发布:文件恢复软件下载 编辑:程序博客网 时间:2024/06/06 06:46
Redux
Redux是 JavaScript 状态容器,提供可预测化的状态管理。
Redux是应用状态管理服务。虽然本身受到了Flux很深的影响,但是其核心概念却非常简单,就是 Map/Reduce中的Reduce。
redux的三大原则:
1.state是只读的
惟一改变state的方法就是触发action,action是一个用于描述已发生事件的普通对象。action是把数据从应用传到store的有效载荷。它是store数据的唯一来源。一般来说你会通过 store.dispatch() 将 action传到store。在redux中,改变state只能通过action。并且,每一个action都必须是Javascript Plain Object
2.使用纯函数来执行修改
为了描述action如何改变 state,你需要编写reducers。action只是描述了有事情发生了这一事实,并没有指明应用如何更新state。而这reducer要做的事情。reducer就是一个纯函数,接收旧的state和 action,返回新的state。之所以称作 reducer 是因为它将被传递array.prototype.reduce(reducer, ?initialValue) 方法。保持reducer纯净非常重要。永远不要在 reducer 里做这些操作:修改传入参数;执行有副作用的操作,如API请求和路由跳转;调用非纯函数,如 Date.now() 或 Math.random()。
3.单一数据源
整个应用的state被储存在一棵object tree中,并且这个object tree只存在于唯一一个store中。Store是把action、reducer联系到一起的对象,维持应用的state;提供getState()方法获取state;提供 dispatch(action) 方法更新 state;通过 subscribe(listener) 注册监听器;通过 subscribe(listener) 返回的函数注销监听器。redux 应用只有一个单一的 store。当需要拆分数据处理逻辑时,你应该使用reducer组合而不是创建多个 store。