1、原因
因为store里的数据是保存在运行内存中的,当页面刷新时,页面会重新加载vue实例,store里面的数据就会被重新赋值。
2、解决方案
store.js
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
// 默认
const state = {
name: localStorage.getItem("name"), //基本消息--姓名
}
// 事件
const mutations = {
name(state, str) {//姓名
localStorage.setItem("name", str);
state.name = str;
},
}
// 在加减之前 先加10
const getters = {}
// 异步
const actions = {
setName(context,str){
context.commit("name", str);
}
}
export default new Vuex.Store({
state,
mutations,
actions
})
- 调用store
import store from '@store/index.js'
export default {
store,
mounted(){
this.$store.dispatch('setName','张三')
}
}
-
b.vue
获取
import store from '@store/index.js'
export default {
store,
mounted(){
console.log(this.$store.state)
console.log(this.$store.state.name)
}
}