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

首先什么是mobx? mobx是一个数据管理库。咱们使用mobx能够根据业务的具体须要划分多个store,能够把全局状态和组件内部状态结合起来管理。最关键的是mobx上手比较简单。redux

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

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

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

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

简单来讲mobx

  • observable 用来绑定数据
  • computed 用来绑定计算方法
  • autorun  用来注册数据变化时响应的方法,返回的函数用来取消响应。

另外咱们为何提倡要尽可能减小使用state呢?方法

  • setState是异步的,这会带来的问题就是咱们想要使用的state可能仍是旧的state。
  • setState会引发没必要要的render,好比我只改变了A子组件的state,render一样会触发B子组件的render。

总而言之,咱们经过将数据状态和更新操做从组件中抽离单独管理起来,能够更好的分离和解耦数据及控制器和视图。更利于代码维护。并且这样解耦能够很好解决组件间通讯的问题。cpu

相关文章
相关标签/搜索