前端状态管理

前端状态管理

Diff

redux/vuex: action -> store -> view
mobx:stroe -> view

  • 层面上 redux 和 vuex 都是基于 Flux 思路的产品。
  • 底层上 redux 遵循不可变的数据原则,重新生成 state。vuex 和 mobx 则是 state 依赖是基于运行时,允许直接修改 state,其中 vuex 是通过 getter/setter 实现的双向绑定自动更新对应的视图层上。而 mobx 的 state 是采取可观察的方式,使用装饰器来绑定对应的 state 和视图层。
  • redux 和 vuex 上,从 action -> store 的中间还有一层 reducer 或 mutation 去更新 state 从而改变 stroe -> view,不同于 mobx 的只专注 stroe -> view。在改变视图层上 mobx 成本是最低最快的,然而 redux 和 vuex 在 action 层面上可以做更多的限制或者业务逻辑从而规范代码和安全性方面,mobx 虽然专注点不一样,但其同样也可以在useStrict使用起 action 层,不过这要使用者自己去规范实施。