以前对于redux只是照着文档用,闲下来想了想为什么redux要这样设计呢?如果自己想实现一个状态管理的方案该会是怎样的呢?

首先,当遇到很多状态需要集中管理的时候,我们很容易能想到通过顶层store来对状态进行集中管理,如果子组件需要此状态,可以通过hoc将store内的数据通过props传进来,与此同时传入一个可以改变顶层store内的数据的方法。这样便实现了一个最简单的状态管理方案。

然而,就这样粗浅的设计肯定会有很多的问题

比如:通常顶层的store通常会非常大,我们很可能不需要所有的store内的数据,这时可以在hoc上传一个参数,来选择性的传入需要的数据

比如:现在我们通过changeStore方法来改变store内的数据,但是,数据如何处理呢?这是一个问题,原来我们只是简单的通过传入一个对象,比如在store内的数据为{data:1},我们通过changeStore({data:2})来将store内的数据进行改变,当我们传入的并不是一个满意的值的时候,我们就需要在changeStore和store中间加一层用来处理数据

没时间先写到这儿,这是我对redux如此设计的原因的理解,以上~