1.Vuex的生命周期
vuex中,第一次打开页面或者刷新都会进行初始化,因为它是一个响应式数据驱动源。 例如:
state:{
usersInfo:{
isLogin: false
}
}
父级页面改变这个值时,在引用的子级页面同时发生改变,并且改变之后不受路由跳转的影响而进行初始化。
以下三种情况都会使vuex的state重新初始化。
为了使vuex不受页面跳转而影响生命周期状态:如userInfos用户状态,推荐使用本地缓存保存userInfo的状态,浏览器关闭,用户状态也自行消失。
2.vuex最佳实践方案
export default new Vuex.Store({
state: {
usersInfo: JSON.parse(sessionStorage.getItem('UsersInfo')),
},
mutations: {
setUsersInfo(state,value){
state.userInfo= value;
sessionStorage.setItem('UsersInfo',JSON.stringify(value));
}
}
)}
页面commit赋值
//vue 页面 commit 赋值
this.$store.commit('setUsersInfo', usersInfo);