redux使用combineReducers多次初始化reducer

文章讨论了在使用React和Redux时,如何观察到reducer在创建store时被初始化多次,尤其是在使用`combineReducers`和`legacy_createStore`时。作者还提到,`combineReducers`的每个reducer都会增加初始化次数,而单独使用`reducer1`时,`legacy_createStore`仅执行一次初始化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在用react编写项目使用redux的时候发现,redux多次初始化reducer

具体代码如下

//reducer
function reducer1(state  = null,action) {
    console.log('reducer1',action)
    const {data,type} = action
    if (type === 'TEST1') {
        return  state
    }else {
        return  state
    }
}

const reducers = combineReducers({
    reducer1:reducer1
})

//store
const store = legacy_createStore(reducers)

经过测试发现 console.log('reducer1',action)打印三次也就是初始化的时候调用了三次reducer还有就是combineReducers()方法每多一个reducer就会增加三次输出。另一个有趣的现象如下代码

//reducer
function reducer1(state  = null,action) {
    console.log('reducer1',action)
    const {data,type} = action
    if (type === 'TEST1') {
        return  state
    }else {
        return  state
    }
}

//store
const store = legacy_createStore(reducer1)

console.log('reducer1',action)只会打印一次,也就是说除去legacy_createStore做的初始化实际combineReducers()函数会做两次初始化。至于为什么这样做有兴趣的可以看看源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值