记录vuex使用

store-index.js代码如下

import Vue from "vue";
import Vuex from "vuex";
import createPersistedState from "vuex-persistedstate";// vuex 持久化插件

import user from "./modules/auth";
import capacity from "./modules/capacity";
import capacityNew from "./modules/capacityNew";
Vue.use(Vuex);
export default new Vuex.Store({
  modules: {
    user,
    capacity,
    capacityNew,
  },
  // 持久化插件,配置。 todo 可以加入数据加密/解密
  plugins: [
    createPersistedState({
      key: "capacityNewStore", // storage中的key
      storage: window.localStorage, // 选择数据持久化到哪里(即storage对象指向)
      paths: ["capacityNew", "user"], // 选择对哪些模块进行持久化(如果没有这个参数,就是全部数据都保存)
      getState(key, storage, value) {
        // 获取storage中数据放入vuex中
        return (value = storage.getItem(key)) && typeof value == "undefined"
          ? {}
          : JSON.parse(value);
      },
      setState(key, state, storage) {
        // 保存vuex数据,每次mutations被调用时触发
        return storage.setItem(key, JSON.stringify(state));
      },
    }),
  ],
});

store-modules-user.js

import Vue from "vue";

const state = () => ({
  user: '',
});

const getters = {
  getUser(state) {
    return state.user;
  }
};

const mutations = {
  setUser(state, user) {
    state.user = user;
  }
};

const actions = {
  getUapInfo({ commit, dispatch }) {
    return Vue.prototype.$ajax.get(Vue.prototype.$urls.getCurrentUserInfo);
  },
};
export default {
  namespaced: true, //用于在全局引用此文里的方法时标识这一个的文件名
  state,
  mutations,
  actions,
  getters,
};

使用时

import { mapMutations, mapActions, mapGetters } from "vuex";
  computed: {
    ...mapGetters("user", ["getUser"]),
  },
   methods: {
    ...mapMutations("user", ["setUser"]),
   },
    mounted() {
      this.setUser('dd');
      //this.$store.commit("user/setUser", 'dd');
    },


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值