下面是一个最简单的redux的使用示例:
//定义一个reducer函数,reducer的参数必须是两个,第一个是state对象,第二个参数是action对象。
function aReducerFunction(state = 0, action) {
switch (action.type) {
case 'ADD':
return state + 1
}
}
//新建store。新建store时的参数为reducer函数。
let store = createStore(aReducerFunction);
//定义一个监听到事件发生后将被调用的函数
let listener = () => {
currentValue = store.getState();
store.dispatch({type:"ADD"});
gyp的理解:
对照oc的NotificationCenter:
注册通知:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textChanged:) name:NotiName object:nil];
发送通知:
[[NSNotificationCenter defaultCenter] postNotificationName:NotiName object:nil];
OC的通知思路很清晰也很直观:
1、
注册通知时,申明要监听的通知的名字,并指定收到通知后处理通知的
函数,此函数的参数为通知传过来的对象。
2、
发送通知时,指定要发送通知的名称和通知的参数。
redux的思路比起NSNotificationCenter(NC)则真的是很清奇。
redux的store可以类比为NSNotificationCenter。
关键在于create store的时候,要求传入的参数:reducer函数,
这时,store将增加一个属性,按redux的命名, store增加的这个属性称为state。
取到新的state。
//定义一个reducer函数,reducer的参数必须是两个,第一个是state对象,第二个参数是action对象。
function aReducerFunction(state = 0, action) {
switch (action.type) {
case 'ADD':
return state + 1
}
}
//新建store。新建store时的参数为reducer函数。
let store = createStore(aReducerFunction);
//定义一个监听到事件发生后将被调用的函数
let listener = () => {
currentValue = store.getState();
}
//创建一个监听store.subscribe(listener);
store.dispatch({type:"ADD"});
gyp的理解:
对照oc的NotificationCenter:
注册通知:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textChanged:) name:NotiName object:nil];
发送通知:
[[NSNotificationCenter defaultCenter] postNotificationName:NotiName object:nil];
OC的通知思路很清晰也很直观:
1、
注册通知时,申明要监听的通知的名字,并指定收到通知后处理通知的
函数,此函数的参数为通知传过来的对象。
2、
发送通知时,指定要发送通知的名称和通知的参数。
redux的思路比起NSNotificationCenter(NC)则真的是很清奇。
redux的store可以类比为NSNotificationCenter。
关键在于create store的时候,要求传入的参数:reducer函数,
这时,store将增加一个属性,按redux的命名, store增加的这个属性称为state。
在dispatch一个事件后,reducer首先被掉用,reducer的参数正是dispatch事件时的参数:action。
reducer可以根据action的type属性,生成一个新的state替换store中原来的state。
最后,注册到store中的listener函数被调用,listener可以从store中取到新的state。