react基础使用combineReducers完成对数据的拆分

combineReducer将reducer.js拆分为多个小的reducer,便于数据管理

import { combineReducers } from 'redux'

可以在每一个组件下面创建属于自己的store,用来存储自己的数据

在组件的store里面写法和平时一样,只不过index.js可能用于到处文件处理

import reducer from './reducer'

export {
    reducer
}

在调用时

// 使用combineReducers来拆分管理组件数据
import { combineReducers } from 'redux'
import { reducer as TodoLayoutReducer } from "../components/TodoLayout/store";

export default combineReducers({
  header: TodoLayoutReducer
})

在合并的总的store的reducer.js中的写法

// 使用combineReducers来拆分管理组件数据
import { combineReducers } from 'redux'
import TodoLayoutReducer from '../components/TodoLayout/store/reducer'

export default combineReducers({
  header: TodoLayoutReducer
})

inde.js中的写法,和普通写法一样

import { createStore, applyMiddleware, compose  } from 'redux'
import thunk from 'redux-thunk'
import reducer from './reducer'

const composeEnhancers =
  typeof window === 'object' &&
  window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ?  window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({}) : compose;

const enhancer = composeEnhancers(
  applyMiddleware(thunk),
)
const store = createStore(reducer, enhancer);

export default store

在调通后,子组件中使用store中的值要加对应模块的名称

可以这样调用

const mapStateToProps = (state, ownProps) => {
  // 将state映射到props上
  return {
    inputValue: state.header.inputValue, // 添加header模块
    list: state.header.list, // 添加header模块
  };
};

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值