最近在Vue3项目中使用Vuex和axios-mapper,与之前稍有不同,参考了Github的代码,在这里记录一下。
创建一个store目录,创建一个ts文件来封装处理vuex
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
import { createStore } from 'vuex'
const modulesFiles = import.meta.globEager('./modules/*.ts') const modules: any = {} for (const key in modulesFiles) { const moduleName = key.replace(/^\.\/(.*)\.ts$/, '$1').replace('modules', '').replace('/', '') const moduleContent = modulesFiles[key].default modules[moduleName] = moduleContent }
export default createStore({ modules })
|
创建一个modules自动注册模块 -》 在modules中随便创建一个.ts文件
1 2 3 4 5 6
| export default { namespaced: true, state: { aaa: "是的" } }
|
具体使用
1 2 3 4 5 6
| import { useStore } from "vuex"; const dataStore = useStore(); const name = dataStore.state.data.aaa; console.log(name);
|