您的位置:首页 > Web前端

前端项目的总结——为什么使用mobx?

2018-03-19 00:00 253 查看
首先什么是mobx? mobx是一个数据管理库。我们使用mobx可以根据业务的具体需要划分多个store,可以把全局状态和组件内部状态结合起来管理。最关键的是mobx上手比较简单。

准确来说,mobx 是一个库 (library),不是一个框架 (framework)。举个例子,如果我们把redux比喻成 是 cpu + 显示器 + 鼠标 + 键盘等。那么 mobx 就相当于一台完整的笔记本电脑。什么意思呢,最简单粗暴的理解就是,mobx它相对于redux来说,使用起来更方便,上手更快一些。

并且mobx采用观察者模式,会自动响应 Store 的变化,无需手动添加判断的代码。

另外mobx它可以使用多stores,有什么好处呢,好处就是一个 store 只管理一个子 state,我们可以便根据组件的功能 或者 具体的领域实体来划分多个store 。总而言之,mobx 只做一件事,解决 state 到 view 的数据更新问题。

我们在使用MobX的时候会发现,它有三个主要核心的概念:观测状态,计算值和反应。这三个概念分别对应三个mobx的api:observable,computed和autorun

简单来说

observable 用来绑定数据

computed 用来绑定计算方法

autorun 用来注册数据变化时响应的方法,返回的函数用来取消响应。

另外我们为什么提倡要尽量减少使用state呢?

setState是异步的,这会带来的问题就是我们想要使用的state可能还是旧的state。

setState会引起不必要的render,比如我只改变了A子组件的state,render同样会触发B子组件的render。

总而言之,我们通过将数据状态和更新操作从组件中抽离单独管理起来,可以更好的分离和解耦数据及控制器和视图。更利于代码维护。而且这样解耦可以很好解决组件间通信的问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: