observable被当作是装饰器使用的时候,就算是原始类型值,也是使用observable装饰,他会自动判别数据类型,自动转换是用observable.box还是observable
修饰器只能用来修饰类或者类成员,
被observable装饰器修饰的都是可观察对象
observable可以对数组、对象、map类型的属性进行监控,但是对number、字符串、布尔类型等原始类型的数据只能做到对引用的监控,且需要使用observable.box
可以使用get方法返回被observable包裹的原始类型值
set方法会修改原始类型值
监视新增加的属性,需要使用extendObservale,所以,需要监视的属性,一定要在初始化的时候都添加进去
observable包裹的数组,已经不是数组了,但是可以使用数组的方法
尽量不要访问越界的数组,比如数组只有两个值,访问了第三个,就会报警告,越界的值不会被监视
observable是一种让数据的变化可以被观察的方法
npm i mobx -S
可被观察的数据类型
observable
1. observable . array object map
2. observable.box bool string number
get() set()
3. @observable
对于数组,对象和es6中的map,直接用observable 转换为可观察的对象;除此之外要用observable.box
可被观察的数据类型
observable:
// arr obj map
const arr = observable([1, 2, 3])
const obj = observable({a: 1, b: 2});
// str num boole
const age = observable.box(20);
const name = observable.box("Alex");
const alive = observable.box(true);
age.set() //21
age.get() //21
//
class Store {
@observable array = [];
@observable num = 20;
}
笔记2笔记2笔记2笔记2笔记2
笔记1笔记1笔记1笔记1