Redux 与设计模式

379 阅读1分钟

Redux 与发布订阅模式

Redux 只有一个主题,就是 Store,发生改变后,调用 subscribe 里面的 listener(观察者),Redux 属于 pull model,因为调用 listener 时并不会传递信息,这样 Redux 就不需要知道观察者需要什么信息

Redux 与命令模式

相同点:将命令封装为一个对象

差异点:

  1. redux 的命令对象没有接受者,而是通过中间件和 reducer 处理命令
  2. redux 的命令对象没有太大的可扩展性,不支持撤销或重做 好处:但是具有命令模式的灵活性,提交请求的对象不需要知道处理命令的对象,可以在任何地方提交请求

Redux 与 pipe filter 模式

例如 koa 的中间件,axios 的拦截器,都是这种模式,本质上就是组合函数,而组合函数的本质是高阶函数,利用了 javascript 中函数既可以是参数又可以是返回值的特性