redux多文件配置 - Kaiqisan

大家好,都吃晚饭了吗?我是Kaiqisan,是一个已经走出社恐的一般生徒,之前讲了vue的状态管理工具vuex的多文件配置的方法,这次咱来康康react的状态管理工具redux的多文件管理方法把!

前排提示:需要下载相应的依赖包(redux必选)(react-redux, @babel/plugin-proposal-decorators可选)

首先是文件目录(简洁版)

├─components
│  └─Demo1
├─css
├─pages
│  ├─Home
│  ├─Main
├─redux
│  ├─action
│  ├─reducer
│  └─store
├─router
|
└─static
    └─imgs

我们把所有的redux的内容全部写到一个文件夹redux里面便于后期的统一管理

然后开始我们的操作

  • 这个store文件夹不要动它,它没有什么改动,就是一个创建store的文件

  • 重点是这个reducer
    这个是它现在的目录
    在这里插入图片描述

它本来只有一个index.js文件,然后直接输出,由store文件夹下的index.js接收
这个index.js文件的功能有所改变,它现在的功能是接收其他文件的reducer信息(对应上图是app.jsuser.js)然后整合在一起输出

import { combineReducers } from 'redux'
import user from './user'
import app from './app'

export default combineReducers({
    user, app // ES6语法,简写
})

这个combineReducers 就是今天的核心知识点,它能够整合所有的reducer文件信息,然后拼成一块输出到store中,最终形成一个全局的状态

  • action文件也应该相应的改动,以便让开发更加方便
    在这里插入图片描述
    然后开始投入使用

如果有小伙伴使用redux而不是react-redux的话,使用方法如下

  • 获取参数
/* 原先 */
store.getState().num
/* 现在 */
store.getState().user.num
  • 触发动作(action)
/* 原先 */
import { changeNum } from '../../redux/action/index'

send(val) {
    const action = changeNum(val)
    store.dispatch(action)
}
... 

/* 现在 */
import { changeNum } from '../../redux/action/user'

send(val) {
    const action = changeNum(val)
    store.dispatch(action)
}

几乎没什么变化,就是注意要导入相应方法所在的文件

虽然是多文件配置,但它们最终要整合到一个争整体中,只要触发了action,然后这个action就会被传送到reducer中,此时,就会触发所有模块的switch方法直到找到相应的方法(不信的话在每一个switch方法触发前用console打印一下)

总结

学一项东西要学会未雨绸缪,否则,自己怎么死在甲方口里都不知道!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kaiqisan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值