-
reaction的使用场景:在没有数据之前,我们不想也没有必要实现写缓存的逻辑,可以使用reaction来实现在数据第一次被填充之后,来实现写缓存的逻辑。
查看全部 -
reaction的参数为两个函数:
第一个函数引用可观察数据,并返回一个值,这个值会作为第二个函数的参数
在初始化的阶段,第一个函数会被先执行一次,这样mobx就知道哪些可观察数据被引用了,并在这些数据被修改后,执行第二个函数。这样不必先执行一遍副作用,就可以建立副作用与可观察数据之间的联系。
查看全部 -
无论是否更改可观察数据,autorun都会先执行一次,因为没有先行执行的话,就不知道哪些可观察数据被引用,就更做不到这些数据被修改时,触发autorun的逻辑了。
但是如果可以单独告知mobx,我们引用了哪些可观察数据,这些副作用的逻辑,就不会先行执行了。
使用reaction解决上述问题
查看全部 -
mobx...
查看全部 -
function(1)console.log(1)
查看全部 -
computed可以将多个可观察数据组合成一个可观察数据
autorun可以自动追踪其引用的可观察数据,并在数据改变的时候重新触发
when提供了条件执行逻辑,是autorun的一种变种
reaction只能通过分离可观察数据声明,以副作用的方式对autorun作出改进
查看全部 -
when函数
第一个参数只能根据可观察数据来计算布尔值,不能只根据普通变量;
第一个参数的函数一开始就返回真,那么第二个参数的函数就会立即执行
查看全部 -
autorun
查看全部 -
computed作为装饰器,computed值可以作为新的可观察数据的
autorun执行的条件是其引用的可观察数据发生了变化
查看全部 -
computed作为普通函数检测其他数据的变化
computed中传入一个无参数的函数,需要return
observe中传入一个具有change参数的函数,change就是foo中被检测数据变化时候的新老值,这个值是obeservableValue,注意无论被检测的哪个值变化的时候,都会触发observe中的函数
查看全部 -
观察数据变化的方式
查看全部 -
修饰器只能用来修饰类或者类成员,
被observable装饰器修饰的都是可观察对象
查看全部 -
observable可以对数组、对象、map类型的属性进行监控,但是对number、字符串、布尔类型等原始类型的数据只能做到对引用的监控,且需要使用observable.box
可以使用get方法返回被observable包裹的原始类型值
set方法会修改原始类型值
查看全部 -
监视新增加的属性,需要使用extendObservale,所以,需要监视的属性,一定要在初始化的时候都添加进去
查看全部 -
observable包裹的数组,已经不是数组了,但是可以使用数组的方法
尽量不要访问越界的数组,比如数组只有两个值,访问了第三个,就会报警告,越界的值不会被监视
查看全部
举报