博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
redux和mobx比较(一)
阅读量:6933 次
发布时间:2019-06-27

本文共 778 字,大约阅读时间需要 2 分钟。

Redux vs Mobx

那么具体到这两种模型,又有一些特定的优缺点呈现出来,先谈谈 Redux 的优势:

  1. 数据流流动很自然,因为任何 dispatch 都会导致广播,需要依据对象引用是否变化来控制更新粒度。
  2. 如果充分利用时间回溯的特征,可以增强业务的可预测性与错误定位能力。
  3. 时间回溯代价很高,因为每次都要更新引用,除非增加代码复杂度,或使用 immutable。
  4. 时间回溯的另一个代价是 action 与 reducer 完全脱节,数据流过程需要自行脑补。原因是可回溯必然不能保证引用关系。
  5. 引入中间件,其实主要为了解决异步带来的副作用,业务逻辑或多或少参杂着 magic。
  6. 但是灵活利用中间件,可以通过约定完成许多复杂的工作。
  7. 对 typescript 支持困难。

Mobx:

  1. 数据流流动不自然,只有用到的数据才会引发绑定,局部精确更新,但免去了粒度控制烦恼。
  2. 没有时间回溯能力,因为数据只有一份引用。
  3. 自始至终一份引用,不需要 immutable,也没有复制对象的额外开销。
  4. 没有这样的烦恼,数据流动由函数调用一气呵成,便于调试。
  5. 业务开发不是脑力活,而是体力活,少一些 magic,多一些效率。
  6. 由于没有 magic,所以没有中间件机制,没法通过 magic 加快工作效率(这里 magic 是指 action 分发到 reducer 的过程)。
  7. 完美支持 typescript。

到底如何选择

 

从目前经验来看,我建议前端数据流不太复杂的情况,使用 Mobx,因为更加清晰,也便于维护;如果前端数据流极度复杂,建议谨慎使用 Redux,通过中间件减缓巨大业务复杂度,但还是要做到对开发人员尽量透明,如果可以建议使用 typescript 辅助。

转载于:https://www.cnblogs.com/cosyer/p/9103134.html

你可能感兴趣的文章
Permutations I & II leetcode
查看>>
[LeetCode/LintCode] Factorial Trailing Zeros
查看>>
iOS病毒XcodeGhost批量检测工具,开源Github(检测ipa文件)
查看>>
npm 加入 TC39 委员会,参与定制 JavaScript 标准
查看>>
centos7.2安装mysql
查看>>
关于 Python
查看>>
AVFoundation学习Demo--拍摄视频
查看>>
阿里云账号注册流程方法(图文教程)
查看>>
亮道智能发布自动驾驶环境感知系统测试验证服务|2019 上海车展 ...
查看>>
ROS_机器人urdf建模仿真实践
查看>>
一碗鸡汤
查看>>
平台篇-58 HBase 平台实践和应用
查看>>
史上最大的实体关系抽取数据集!清华大学自然语言处理团队发布 FewRel ...
查看>>
K8s 1.14 发布了,Release Note 该怎么读?
查看>>
购买阿里云服务器,先试试主机免费试用能抢到不
查看>>
2018-01-11 Antlr4实现数学四则运算
查看>>
Docker 和 Kubernetes 从听过到略懂:给程序员的旋风教程
查看>>
ES6 模块加载export 、import、export default 、import() 语法与区别,笔记总结
查看>>
8Manage:如何变革性的加强企业采购管理?
查看>>
【Python3爬虫】常见反爬虫措施及解决办法(三)
查看>>