返回

庖丁解Redux之createStore的应用

前端

作为Redux的支柱之一,createStore应声而起,分庭抗礼。在探究技术脉络前,有必要理清源流。正如万流归海,Redux的前身正是名声赫赫的Flux。彼时,各大Javascript框架纷呈争妍,为此,Facebook不甘人后,便推出了Flux以御敌,它意在降低框架使用者的学习成本和难度。可惜,事与愿违,人们虽能简单应用,却无法透析深层含义。应时而动, Redux作为Flux的延伸,于2015年横空出世。自此,一发不可收拾,被世人争相效仿。

Redux基本概念

了解Redux之前,必须先理解状态管理。正如盖楼需要架构师,程序也需要状态管理器去管理、维护数据,让业务逻辑得到恰当控制。提及状态管理,不得不提MVC架构模式,它将应用分为视图、模型、控制器三个部分。其中,模型便是用来维护和管理程序状态,而Redux可谓是比MVC更轻量级的框架。说白了,就是更加方便和快捷的状态管理器。

基于Redux,我们得以轻松地维护程序状态。可若要修改状态,仅需调用dispatch函数,将action对象传给Reducer,使其根据action类型和当前状态生成新的状态。如此一来,新型的单向数据流模式Redux便应运而生了。

createStore作用

createStore是Redux的创建者,用于构造Store对象。Store对象的设计宗旨便是用单一数据源管理整个应用状态,从而使数据状态可追踪且易于调试。store对象内部包含state状态、dispatch分发、subscribe订阅三个方法。

state指代整个应用程序的当前状态,是一种可以读的状态;dispatch则是一个可以派发动作的函数,该动作将被分发到各个reducer以生成新的状态;subscribe是Redux用来监听store状态变化并更新UI的, 它返回一个函数,该函数就是注销回调函数unsubscribe。

createStore的应用

知道了createStore作用,我们再来看看实际应用吧!首要工作是创建Store对象,然后通过dispatch方法发送action,Reducer就会根据接收到的action和当前state来派生出新的state。新的state则会被分发给各个subscriber,以实时更新UI。

这么一看,createStore的应用并不复杂。创建store、dispatch action,state变更、更新UI,如此反复循环,层层紧扣,相辅相成。

结语

createStore是Redux的核心之一,主要负责Store对象的创建和管理。有了它,我们可以轻松维护和管理整个应用程序的状态,从而构建出可预测的、易于调试的应用程序。掌握了createStore,你也离Redux高手更进一步了。