什么是Redux?
对于前端页面,从数据层面来说,无非就是一系列的状态组合。 在传统的前端开发中,尤其是jQuery横行的年代,状态管理相关的理念一直没有什么起色。 自Flux横空出世以来,各种解决方案层出不穷,百花齐放,Redux也是在这种环境下诞生的。 如何描述Redux呢? 简而言之,它就是一个状态容器,里面存储了整个应用的所有状态。 Redux的核心思想就是要提供可预测的状态管理,这对日益膨胀的大型应用来说尤其重要。
预备知识
Redux中有三个基本概念非常重要:store / reducer / action。
Store顾名思义就是状态容器,Redux使用createStore这个API来创建一个全局的状态容器。这里有一点比较重要的就是: Redux应用只能有一个单一的Store 我们暂时不用深究Redux为何如此设计。
Reducer是一个纯函数,它的职责就是用来更新状态容器中的状态,这也是Redux中更新状态的唯一途径。
Action是一个普通JavaScript对象,它是把数据从应用传递到状态容器的载体。 将action传递到store中很简单,使用store.dispatch(action)就可以了。 为了区分不同的数据来源,我们一般约定每个action都必须要有一个type字段。 这样我们的reducer函数就能根据这个type字段来决定如何修改状态容器。
store.subscribe:不断监听dispatch,有dispatch提交则触发回调
store.dispatch:提交信息到store,触发对应的action并修改store的状态
store.getState:获取store的当前状态