4.通过Vuex的全局传输获取数据的问题(关于登录获取当前登录用户的案例)?
1.在一个js文件中进行vuex的配置
代码示例:
import Vue from "vue";
import Vuex from "vuex";
import app from "./modules/app";
import user from "./modules/user";
import dict from "./modules/dict";
Vue.use(Vuex);
const store = new Vuex.Store({
//使用state统一定义和管理公共数据
state: {
notices: "" ,//通知提示信息
userName:""
},
//使用mutations内部的方法来修改数据
mutations: {
// 登录
setUserInfo(state, userName) {
state.userName = userName;
localStorage.setItem("userName", JSON.stringify(userName));
},
// 退出
logout(state, user) {
state.user = "";
localStorage.setItem("userInfo", "");
},
},
//actions类似于methods,用于发起异步请求,比如axios
actions: {},
//使用modules进行模块拆分
modules: {
app,
user,
dict
},
//getters类似于vue中的计算属性
getters: {
getUserInfo: (state) => {
state.userName = JSON.parse(localStorage.getItem('userName'));
return state.userName;
}
}
});
export default store;
2.在一个main.js文件中进行导入store的配置
import store from './store'
3.在vue文件中的设置与调用
this.$store.commit("setUserInfo",res.result.username);//调用方法输入
console.log("这里是userName"+this.$store.getters.getUserInfo);//调用方法获取