index.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import Vuex from "vuex";
  2. import Vue from "vue";
  3. import breadStore from "./breadStore.js"; //引入子模块
  4. import auth from "./auth.js";
  5. import createPersistedState from "vuex-persistedstate";
  6. import settings from "./settings.js";
  7. import themes from "./themes.js";
  8. import menuTag from "./menuTag.js";
  9. import dragChart from "./dragChart.js";
  10. import vuexIndexedDBPlugin from "@/utils/vuexIndexedDBPlugin";
  11. Vue.use(Vuex);
  12. export const store = new Vuex.Store({
  13. state: {
  14. // 存放共有store下子模块数据
  15. //调用 this.$store.state.price
  16. },
  17. getters: {
  18. // state的计算属性,监听state的变化时对state里的数据进行加工
  19. //如果其他组件都需要相同的函数,就可以把函数写到这里面
  20. getterPrice(state) {
  21. return (state.price += 100);
  22. },
  23. permissions: (state) => state.auth.authBtnList,
  24. //调用this.$store.getters.getterPrice
  25. },
  26. mutations: {
  27. // 更改state中状态的逻辑,同步操作
  28. },
  29. actions: {
  30. // 提交mutation,但不直接改变变更数据状态,异步操作
  31. },
  32. // 如果将store分成一个个的模块的话,则需要用到modules。
  33. //然后在每一个module中写state, getters, mutations, actions等(注意在子模块中需要开启命名空间)。
  34. modules: {
  35. //面包屑模块
  36. breadStore,
  37. auth,
  38. settings,
  39. themes,
  40. menuTag,
  41. dragChart,
  42. },
  43. plugins: [
  44. createPersistedState({
  45. storage: window.sessionStorage, // 或者 localStorage
  46. paths: [
  47. "breadStore",
  48. "auth",
  49. "settings",
  50. "themes",
  51. "menuTag", // 指定需要持久化存储的模块,排除 dragChart
  52. ],
  53. }),
  54. vuexIndexedDBPlugin,
  55. ],
  56. });