react hooks下封装通用redux

redux我们常用来做全局状态管理,一般我们都会按功能模块来新建相关的action,reducer然后再使用combineReducers来将其组合导出,这样的话就实现了模块的划分,让我们更方便项目的管理。但是在某些情况下,我们想要一个通用的redux管理,比如一些特别小,但是又必须要用到的场景,比如我们现在新建了一个chat模块用来管理聊天相关的redux,新建了一个menu模块来管理我们的菜单模块,新建了一个number模块用来管理我们的数据状态,但是这时候我想要对顶部导航栏的显示与隐藏添加一个reducer用来与其他组件交互,这种情况下还要单独再开一个nav模块吗?肯定是不愿意的,所以针对我们这些比较小的功能模块,我们想封装一个通用的reducer,这个通用的reducer共享一个normal数据,dispatch时接受一组数据key,value用于进行数据的改变,下面就是我们的封装过程

  • 首先我们需要创建一个normalReducer,如下
// store/normal/reducer.js

export const normalReducer = (state = {
   }, action) => {
   
  if(action.type === 'normal') {
    // 用于标识走通用的reducer
    const {
    payload: {
    key, value } } = action
    return {
   
      ...state,
      [key]: value
    }
  } else {
   
    return state
  }
}

// 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值