1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function stateStorage (initState= {}) {
var state = initState;//这里可以防止一些默认值?
console.log(state);
var list = [];
function getState () {
return state;
}
function disPatch (action) {
state[action.type] = action.value;
list.forEach(function (item,index) {
item();//传不了参数?
});
}
function subCribe (handle) {//订阅?
list.push(handle);
}
return {
getState : getState,
disPatch : disPatch,
subCribe : subCribe
}
}
这是初次接触. 理解不是很好,觉得最大意义在于, 数据更新的时候,会触发相应的函数? 如果按照原来的思路, 我每次处理得到一些数据,每个数据都调用一堆函数. 实际上就不如这种方式.
也许真正应用时我们可以为不同的数据,设立不同的storage?
也就是说,其实可以看成是以数据为中心? 把关于这个数据相关的函数都集合在一起?
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
function stateStorage (initState) {
var state = initState;//这里可以防止一些默认值?
console.log(state);
var list = [];
//返回状态 //返回数据
function getState () {
return state;
}
//修改状态 //修改数据
function disPatch (action) {
state = action;
list.forEach(function (item,index) {// 也许这里可以修改一下,
//控制执行顺序? 用回调的方式?
item(state);//也许这里可以传state?
});
}
//订阅
function subCribe (handle) {
list.push(handle);
}
return {
getState : getState,
disPatch : disPatch,
subCribe : subCribe
}
}
或者我们思路上可以想成, 设置变量的正确方式其实是这种? 下面是老师发的图