为什么要用Mobx?
开发中经常会有这么一种场景,不同的用户有不同的权限,而不同的权限需要显示不同的功能项;为了代码的良好封装性,我们会把功能项和权限控制用两个模块(或者说界面)分开开发;
那么问题就出现了?这里两个界面之间,该如何交互?如何传值呢?
- 直接用
props
传吗?如果两个界面之间还隔着其他界面呢?一级一级的传吗?会不会太麻烦?逻辑会不会太乱? - 使用
localStorage
缓存吗?localStorage里面的数据太多了,会不会造成逻辑混淆不清?在权限控制页面中修改了数据,功能项界面怎么自动更新呢? - vue中
vuex
帮我们实现了上面的功能,在React中就用Mobx
;
Mobx核心概念
1. Observable state(可观察的状态)
通过@observable
修饰对象的属性,为该属性添加了可观察的功能;在该属性发生了变化后,使用该属性的地方将会发生更新;
2. Computed values(计算值)
通过@computed
修饰属性的get函数;在该函数内部依赖的其他属性发生变化后,该get函数的值也会发生变化, 同时使用该函数的地方也会发生更新;
3. Actions
我们可以通过定义一些action来修改状态(可观察的属性)的值;而且这也是唯一可以修改状态值的方法;
网友评论