博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Mobx的7个技巧
阅读量:7223 次
发布时间:2019-06-29

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

one more time one more chance. 一歩重头学前端, MobX。

是个简单且实用的 JS 库,可以用于 React 项目管理组件间的状态。下面7个技巧是中总结出来的。

1*Cz3gdvUyYpkdjM0qkwQAHw.png

MobX: Simple, scalable state management

Tip#1 正确理解概念

MobX 大部分概念非常好理解,在深入理解每一个之前,大概在脑子里画个蓝图有助于掌握MobX。下面四个概念是 Mobx 的基石:

  1. observable: 可被追踪变化的数据
  2. observer: 响应observable 数据更新的组件
  3. computed values: 可根据observable 数据计算返回值(此处的值也可理解为是observable)的函数
  4. reactions: 监听observable 数据变化被触发执行的不同类型的函数

%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7%202018-06-27%2019.34.27.png

Tip#2 使用正确的reactions

MobX提供了多种reactions供我们 响应数据变化,不同的方式具有不同的特点,根据业务场景,我们应该选出最优的方式。

1*OR_JyMQK4oTBTedxzHhJeQ.png

  1. autorun: 提供的函数总是立即被触发一次, 依赖关系改变时会再次被触发。依赖关系指的是在autorun函数中出现过的observable数据。
  2. autorunAsync: same as autorun but you can specify how much time after it should run after the data changes in observables没看到 API 中有该函数
  3. when: 你可以设置断言,当断言生效时响应函数会执行,响应仅会被触发一次
  4. reaction: 与 autorun 类似,函数不会立即执行

Tip#3 为reactions命名

为reactions命名的好处是当程序出错时,可以快速定位出错位置。

%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7%202018-06-27%2019.54.50.png

Tip#4 使用严格模式

默认情况下,MobX允许你随便的更新observable数据。在大型应用中,若随意的变更数据会使程序状态无法追踪,不可预测。

图片描述

为此,MobX 提供了严格模式,强迫我们只可以在 action 中更新observable数据。

Tip#5 使用装饰器

在使用 MobX 的使用我们不必须使用ES2015的写法,但是如果可以,请使用修饰器写法。使用修饰器我们的代码会变得更加的简洁,并且很容易区分哪些数据是observable的、哪些不是。

图片描述

原文还推荐大家使用TypeScript,但是我不会就不瞎说了。

Tip#6 使用多个 store

使用多个 store对观测数据进行逻辑分组。

  1. 一个用于 UI 状态
  2. 一个或多个用于领域状态

图片描述

Tip#7 Don’t use it

原文太长,我不想翻译了。MobX 不是必须的,React 本身就可以完成某些数据管理的任务,如果为了用而用会导致程序的混乱。同时 MobX 和 Redux 各有利弊,也可以适当的考虑使用 Redux。

引用

翻译中,掺杂了个人愚见,请大家参考原文。

前端学习QQ群: 538631558

【开发环境推荐】 是基于浏览器的集成式开发环境,支持绝大部分编程语言,包括 HTML5、PHP、Python、Java、Ruby、C/C++、.NET 小程序等等,无需下载安装程序,一键切换开发环境。 Cloud Studio提供了完整的 Linux 环境,并且支持自定义域名指向,动态计算资源调整,可以完成各种应用的开发编译与部署。

转载地址:http://jikfm.baihongyu.com/

你可能感兴趣的文章
Oracle 函数返回表实例2种写法实例
查看>>
mysql数据库主从复制
查看>>
Shell标准输出、标准错误 >/dev/null 2>&1
查看>>
Android自定义对话框(Dialog)位置,大小
查看>>
设置python的默认编码为utf8
查看>>
简易sqlhelper-java
查看>>
通过案例对SparkStreaming 透彻理解三板斧之一:解密SparkStreaming运行机制
查看>>
HBuilder 学习笔记
查看>>
利用OpenStreetMap(OSM)数据搭建一个地图服务
查看>>
TopN算法与排行榜
查看>>
lucene排序算法之向量空间模型(一)
查看>>
新浪微博数据Json格式解析
查看>>
WLAN 802.11 wifl区别
查看>>
oracle授权动态视图权限给用户
查看>>
Debian – 出现-bash: pip: command not found错误解决办法
查看>>
Zxing扫描二维码
查看>>
我的友情链接
查看>>
aspcms后台拿shell漏洞(非添加模块)及修复方法
查看>>
C语言冒泡排序法
查看>>
B2B行业门户网站群发邮件时间及发送频率
查看>>