import Vue from 'vue' import Vuex from 'vuex' import createPersistedState from 'vuex-persistedstate' Vue.use(Vuex) // 自动导入 modules 目录下的所有模块 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 }, {}) // 根据环境选择存储方式 let storage = null; // #ifdef H5 storage = window.localStorage; // #endif // #ifndef H5 storage = { getItem: (key) => uni.getStorageSync(key), setItem: (key, value) => uni.setStorageSync(key, value), removeItem: (key) => uni.removeStorageSync(key) }; // #endif const store = new Vuex.Store({ modules, // 全局状态 state: { // 可以在这里添加全局状态 }, // 全局 mutations mutations: { // 可以在这里添加全局 mutations }, // 全局 actions actions: { // 可以在这里添加全局 actions }, // 全局 getters getters: { // 可以在这里添加全局 getters }, plugins: [ createPersistedState({ key: 'vuex', // 存储的key storage: storage, // 存储方式 reducer(val) { return { // 只持久化指定的模块 switchingModule: val.switchingModule, rightsManagement: val.rightsManagement, starSpiritImage: val.starSpiritImage } } }) ] }) export default store