store.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import Vue from 'vue'
  2. import Vuex from 'vuex';
  3. import createPersistedState from 'vuex-persistedstate';
  4. Vue.use(Vuex)
  5. const state = {
  6. username: "",
  7. password: "",
  8. selectedEnv: 1,
  9. userInfo: {},
  10. locale: "",
  11. }
  12. const store = new Vuex.Store({
  13. state, /// 仓库数据本身
  14. plugins: [
  15. // 可以有多个持久化实例
  16. createPersistedState({
  17. key: 'app_config_data', // 状态保存到本地的 key
  18. storage: { // 存储方式定义
  19. getItem: (key) => uni.getStorageSync(key), // 获取
  20. setItem: (key, value) => uni.setStorageSync(key, value), // 存储
  21. removeItem: (key) => uni.removeStorageSync(key) // 删除
  22. }
  23. })
  24. ],
  25. /// 修改仓库数据的唯一方式 改变状态
  26. mutations: {
  27. selecteEnv: (state, value) => state.selectedEnv = value,
  28. setUserName: (state, value) => state.username = value,
  29. setPassword: (state, value) => state.password = value,
  30. setUserInfo: (state, value) => state.userInfo = value,
  31. setLocale: (state, value) => state.locale = value,
  32. clearUserInfo: (state) => state.userInfo = {}
  33. },
  34. /// 仓库中的计算属性
  35. getters: {},
  36. /// 异步修改仓库数据 最终只能还是mutations修改仓库数据
  37. actions: {},
  38. /// 模块化
  39. modules: {},
  40. });
  41. export default store