vuex的模块化使用
2024-09-07 15:39:41
store文件如下
1.modules下文件是模块化的划分,里面的js有state,action,mutations.然后通过
export default {
namespaced: true,
state,
mutations,
actions
}
方式导出。
2.index.js中导出的格式如下
new Vuex.Store({
modules:{
app:{
namespaced:true,
state:{},
mutations:{},
actions:{}
},
...
},
getters:{
sidebar: state => state.app.sidebar,
size: state => state.app.size,
device: state => state.app.device,
sjhnum: state => state.shangjinhui.num,
...
}
})
所以index.js中需要先对modules进行处理,通过require.context获取modules下所有js文件,如下
const modulesFiles = require.context('./modules', true, /\.js$/)
const modules = modulesFiles.keys().reduce((modules, modulePath) => {
const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1')
const value = modulesFiles(modulePath)
modules[moduleName] = value.default
return modules
}, {})
然后对getters的处理可以摘出来放到单独js里。
因为modules的处理,下面相对于普通的使用方式多了个命名空间
3.获取store里的数据
1 this.$store.state.命名空间.
2 import { mapState } from 'vuex';
computed:{
...mapGetters({
'getters里定义的key(其实对应的state值)'
})
}
4修改store值
this.$store.dispatch('命名空间/actions里的函数名',参数数据),
this.$store.commit('命名空间/mutations里的函数名',参数数据)
最新文章
- python面向对象一
- 如何全面解决ECSHOP的jquery冲突
- C#交互功能的演化
- (spring-第17回【AOP基础篇】) 创建增强类
- 在Html中使用Requirejs进行模块化开发
- 使用layout_weight设置控件占屏幕百分比
- python-抓取图片
- spark分片个数的确定及Spark内存错误(GC error)的迂回解决方式
- 提高VS2010/VS2012编译速度
- 【CSS3】transform-origin原点旋转
- 【Excel】Excel筛选迟点时间的公式
- AspxGridView控件的使用
- 目标检测之YOLO V1
- 源码浅谈(二):java中的 Integer.parseInt(String str)方法
- Retrieving archetypes
- 安装PHP ImageMagick笔记
- [Oracle]In-Memory的Join Group 位于内存的何处?
- 配置ArcGIS Server使用Windows AD Windows集成身份认证
- 解决:fatal: authentication failed for https
- HDU 1564 简单博弈 水