123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- 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
|