Appearance
mobx6的应用
和mobx5的语法类似,只是去掉所有的装饰器,基于makeObservable、makeAutoObservable进行修饰处理即可!!
jsx
/*TaskStore.js*/
import { observable, action, runInAction, makeObservable, makeAutoObservable } from 'mobx';
import { getTaskList } from '../api';
class TaskStore {
constructor(root) {
this.root = root;
/* // makeObservable函数可以捕获已经存在的对象属性并且使得它们可观察
makeObservable(this, {
taskList: observable,
queryTaskListAction: action.bound,
removeTaskAction: action.bound,
updateTaskAction: action.bound
}); */
/*
makeAutoObservable 就像是加强版的 makeObservable,在默认情况下它将推断所有的属性
推断规则:
所有自有属性都成为 observable
所有getters都成为 computed
所有setters都成为 action
所有prototype中的 functions 都成为 autoAction
所有prototype中的 generator functions 都成为 flow
*/
makeAutoObservable(this);
}
taskList = null;
async queryTaskListAction() {
...
}
removeTaskAction(id) {
...
}
updateTaskAction(id) {
...
}
}
export default TaskStore;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38