mobx 学习笔记
Mobx 笔记
Mobx 三板斧,observable、observer、action。
- observable: 通过 observable(state) 定义组件的状态,包装后的状态是一个可观察数据(Observable Data)。
- observer: 通过 observer(ReactComponent) 定义组件。
- action: 通过 action 来修改状态。

逻辑简图
1、Mobx 知道什么时候应该渲染页面,因此基本不需要手动设置 shouldComponentUpdate 来提高应用性能。
2、mobx.observable([1,2])返回一个 observable 类型的参数,可以用isObservable判断
mobx.isObservable(mobx.observable([1,2,3])) // true
3、(@)computed 计算值:
计算值(computed values)是可以根据现有的状态或其它计算值的衍生值。
computed 和 autorun对比:
相同:它们都是响应式调用的表达式
不同:如果你想响应式的产生一个可以被其它 observer 使用的值,请使用 @computed,如果你不想产生一个新值,而想要达到一个效果,请使用 autorun
computed性能很佳:计算值在大多数情况下可以被 MobX 优化的,如果computed长期不被触发,或者使用它的UI卸载,MobX 会自动地将其垃圾回收(autorun 中的值必须要手动清理),可以使用 observe 或 keepAlive 来强制保持计算值总是处于唤醒状态。
自我理解:
好基友的携手改变世界,React+mobx的完美结合:
React 提供了优化UI渲染的机制, 这种机制就是通过使用虚拟DOM来减少昂贵的DOM变化的数量。
MobX 提供了优化应用状态与 React 组件同步的机制,这种机制就是使用响应式虚拟依赖状态图表,它只有在真正需要的时候才更新(这就又极大的提高了效率)。
还有特别棒的一点:
React+mobx = 类MVVM , 可以实现像vue一样的双向数据绑定,这点相当赞,而且效率感人。
mobx 学习笔记的更多相关文章
- mobx学习笔记01——什么是mobx?
mobx是什么? js框架 官方定义:Simple,scalable state management(简单.可扩展的状态管理) mobx与redux相比: 语义丰富.响应式编程,开发难度低.学习成本 ...
- mobx学习笔记04——mobx常用api
1 可观察的数据(observable) observable是一种让数据的变化可以被观察的方法. 那些数据可被观察? -原始类型 String.Number.Boolean.Symbol -对象 - ...
- mobx学习笔记03——mobx基础语法(decorator修饰器)
在声明阶段实现类与类成员注解的一种语法. function log(target){ const desc = Object.getOwnPropertyDescriotors(target.prot ...
- mobx学习笔记02——mobx基础语法(class)
新的语法可能不被浏览器支持,可以使用babel转换为浏览器支持的代码格式: 为什么要定义class? js是一门面向对象的编程语言.需要利用类来复用代码,提高编程效率. 需要什么样的class能力? ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- PHP-会员登录与注册例子解析-学习笔记
1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...
- 2014年暑假c#学习笔记目录
2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...
- JAVA GUI编程学习笔记目录
2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...
随机推荐
- 多线程下的HashMap竟然绕环了
导读:早就听说过HashMap不是线程安全的,在多线程情况下可能会出问题,自己一直是一知半解,正好五一有时间就抽时间来研究一下. 关键词:线程安全,HashMap 直接上图 总结 看过的知识点不一定属 ...
- Servlet的Listener介绍
当Web应用在Web容器中运行时,Web应用内部会不断地发生各种事件:如Web应用被启动.Web应用被停止.用户session开始.用户session结束等.通常这些Web操作对开发者是透明的.但Se ...
- Windwos Server 2016 远程桌面授权
https://blog.csdn.net/hanzheng260561728/article/details/80443135 第二步激活客户的的时候,注意事项
- Loj #2479. 「九省联考 2018」制胡窜
Loj #2479. 「九省联考 2018」制胡窜 题目描述 对于一个字符串 \(S\),我们定义 \(|S|\) 表示 \(S\) 的长度. 接着,我们定义 \(S_i\) 表示 \(S\) 中第 ...
- 关于i7 8700以上系列主机,安装虚拟机Win7下连接U盘,故障处理的补充说明
正如前文“虚拟机下怎么连接U盘,如何使用U盘?一策书(湘岳阳万江波)的随笔”所言,我在win10下的虚拟机win7(i7 9700),而且听说了是不支持Win7的,其原因是不支持USB的驱动问题. 我 ...
- js对数组去重的方法总结-(2019-1)
最近待业在家,系统地学习了一套js的课程.虽然工作时间真的比较长了,但有些东西只局限在知其然而不知其所以然的程度上,有些知识点通过“血和泪”的经验积累下来,也只是记了结果并没有深究,所以每次听完课都有 ...
- python--unittest测试框架
unittest中最核心的四个概念是:test case, test suite, test runner, test fixture
- ASP.NET MVC IOC 之 Autofac(三)-webform中应用
在webform中应用autofac,只有global中的写法不一样,其他使用方式都一样 nuget上引用: global中的写法: private void AutoFacRegister() { ...
- MySQL语言分类——DDL
DDL的全称Data Definition Language,即数据定义语言 DDL的语法有:create.alter.drop.rename.truncate.对此做一个详细的解释: create ...
- 【转载】C#的ArrayList使用IndexOf方法查找第一个符合条件的元素位置
在C#的编程开发中,ArrayList集合是一个常用的非泛型类集合,在ArrayList集合中如果需要查找第一个符合条件的元素所在的位置,可以使用ArrayList集合的IndexOf方法,Index ...