🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 安装 根目录运行 ~~~ npm install vuex -S ~~~ ![](https://box.kancloud.cn/bc8780736ec8e100d96073e4dccc9ed9_411x288.png) # 配置 在src/main.js配置vuex ~~~ import store from './store' new Vue({ el: '#app', router, store, components: { App }, template: '<App/>' }) ~~~ ![](https://box.kancloud.cn/4a06fe789840919524ba4f41fe64ca16_442x406.png) src目录新建store文件夹,新建5个js 此处把vuex分成了5个文件 ![](https://box.kancloud.cn/e175e644802d7164025ea154f7a040f3_334x219.png) store文件夹下的5个js,里面包含了一个user例子 actions.js ~~~ import * as types from './types' // action 存放的是方法 export default { getUser: ({ commit }, user) => { commit(types.GETUSER, user); } } ~~~ getters.js ~~~ // getters 存放的是变量 export default { // 用户个人信息 user: (state) => state.user, } ~~~ index.js ~~~ import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex); import mutations from './mutations' import actions from './actions' export default new Vuex.Store({ modules: { mutations }, actions }); ~~~ mutations.js ~~~ import { GETUSER } from './types' import getters from './getters' import * as types from "./types"; const state = { // 保存在localstorage中一份,处理f5刷新 // (后期可学习更方便的方式,目前还不会只能这样了) user: window.JSON.parse(localStorage.getItem("user")), }; // 用于具体改变数据 const mutations = { [GETUSER](state, user) { state.user = user; localStorage.setItem("user", window.JSON.stringify(user)); } }; export default { state, mutations, getters } ~~~ types.js ~~~ export const GETUSER = 'GETUSER'; ~~~