从 Redux 学习系统设计
Redux 中的核心是 state(状态,数据),Redux 就是管理 state 的工具。我们在设计系统的时候,会有如下两种常见场景。
- 全局 state 逐层注入到子组件中。
- 子组件可能会有 state 回馈回父组件。
由于系统组件像树一样组织,这个数据流向会扩散到到各个组件。想象一下,一旦这个流程超过三五级,系统中存在几十上百种这样的流程,那简直就是没法维护。那怎么解决呢?Redux 的方案是引入一个 message bus 和一个小数据库。引入这两个组件以后,系统的数据流只有一条,稍微好维护了一些。
衍生思考:对数据流进行抽象,是简化系统设计的一个方法。