对RN中的redux的理解

下面是一个最简单的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.subscribe(listener);


//分发任务,分发任务的参数就是一个Action对象。
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。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值