12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- 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
- }
- }
- })
- ]
- })
- export default store
|