index.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import Vue from "vue";
  2. import Vuex from "vuex";
  3. import createPersistedState from 'vuex-persistedstate' // 引入数据持久化插件
  4. Vue.use(Vuex)
  5. // 把modules文件下的 js文件返回出来
  6. // https://webpack.js.org/guides/dependency-management/#requirecontext
  7. const modulesFiles = require.context('./modules', true, /\.js$/)
  8. // you do not need `import app from './modules/app'`
  9. // it will auto require all vuex module from modules file
  10. const modules = modulesFiles.keys().reduce((modules, modulePath) => {
  11. // set './app.js' => 'app'
  12. const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1')
  13. const value = modulesFiles(modulePath)
  14. modules[moduleName] = value.default
  15. return modules
  16. }, {})
  17. const store = new Vuex.Store({
  18. modules,
  19. // plugins 插件配置
  20. plugins: [
  21. createPersistedState({
  22. // paths: ['token', 'userId'],
  23. storage: { // 存储方式定义
  24. getItem: (key) => uni.getStorageSync(key), // 获取
  25. setItem: (key, value) => uni.setStorageSync(key, value), // 存储
  26. removeItem: (key) => uni.removeStorageSync(key) // 删除
  27. }
  28. })
  29. ]
  30. })
  31. export default store