数据状态共享管理
2020-08-05 14:09:52 0 举报
前端数据流状态共享管理模式
作者其他创作
大纲/内容
Redux 数据流流动很自然,可以充分利用时间回溯的特征,增强业务的可预测性;MobX 没有那么自然的数据流动,也没有时间回溯的能力,但是 View 更新很精确,粒度控制很细。Redux 通过引入一些中间件来处理副作用;MobX 没有中间件,副作用的处理比较自由,比如依靠 autorunAsync 之类的方法。Redux 比 Mobx 更多的样板代码,是因为特定的设计约束。如果项目比较小的话,使用 MobX 会比较灵活,但是大型项目,像 MobX 这样没有约束,没有最佳实践的方式,会造成代码很难维护,各有利弊。一般来说,小项目建议 MobX 就够了,大项目还是用 Redux 比较合适。
Store
Flux
Redux + redux-saga
数据共享状态
dispatcher分发
中间件
Store依赖多个state
view发出action,Store调用Reducer返回新的State,触发组件渲染viewRedux有三大原则: 单一数据源:Flux 的数据源可以是多个。 State 是只读的:Flux 的 State 可以随便改。 * 使用纯函数来执行修改:Flux 执行修改的不一定是纯函数。Redux 和 Flux 一样都是单向数据流。
Redux-thunkRedux-promiseRedux-saga...
Dva
Redux: view——>actions——>reducer——>state变化——>view变化(同步异步一样)Vuex: view——>commit——>mutations——>state变化——>view变化(同步操作) view——>dispatch——>actions——>mutations——>state变化——>view变化(异步操作)
Mobx
action
Mobx: 任何源自应用状态的东西都应该自动地获得。简单说就是状态只要一变,其他用到状态的地方就都跟着自动变。
参考 https://zhuanlan.zhihu.com/p/53599723
数据单向流动,只能通过action改变store
Vuex
Redux
利用中间件处理异步流,控制dispatch时机参考:https://juejin.im/post/59e6cd68f265da43163c2821
全局变量存储
0 条评论
下一页