前端项目的总结——为什么使用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。
总而言之,我们通过将数据状态和更新操作从组件中抽离单独管理起来,可以更好的分离和解耦数据及控制器和视图。更利于代码维护。而且这样解耦可以很好解决组件间通信的问题。
准确来说,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。
总而言之,我们通过将数据状态和更新操作从组件中抽离单独管理起来,可以更好的分离和解耦数据及控制器和视图。更利于代码维护。而且这样解耦可以很好解决组件间通信的问题。
相关文章推荐
- 前端项目的总结——为什么要使用typescript?
- 前端项目的总结——为什么要这么分层?好处是什么?
- 总结一下公司项目使用各种较新的前端技术和 Api 的一些经验。
- 前端项目的总结——为什么要组件化?
- 项目中使用前端技术总结一(Sea.js)
- 使用 gulp 搭建前端环境之 ionic 项目实践总结
- Flex组件的项目渲染器(ItemRenderer)使用总结 收藏收藏
- JXL转置Excle三角矩阵项目使用总结
- 大型管理类软件项目开发,为什么必须要有代码生成器的深切体会总结
- Flex组件的项目渲染器(ItemRenderer)使用总结
- Flex组件的项目渲染器(ItemRenderer)使用总结
- 使用Spring+Ibatis的项目,关于如何使用事务、如何提升性能的几点总结
- 使用VS的安装项目的总结
- hibernate的二级缓存项目使用经验总结
- 项目开发总结:前端开发部分总结[兼容性、DOM操作、跨域等](持续更新)
- 使用Spring+Ibatis的项目,关于如何使用事务、如何提升性能的几点总结
- Flex组件的项目渲染器(ItemRenderer)使用总结
- Flex组件的项目渲染器(ItemRenderer)使用总结
- 使用VS的安装项目的总结
- asp.net c#.net项目中使用总结,遇到的各个问题的汇总