← 返回首页
Vue-cli3基础教程(十六)
发表时间:2021-09-29 20:57:31
Vuex的生命周期

1.Vuex的生命周期

vuex中,第一次打开页面或者刷新都会进行初始化,因为它是一个响应式数据驱动源。 例如:

state:{
    usersInfo:{
       isLogin: false
    }
}

父级页面改变这个值时,在引用的子级页面同时发生改变,并且改变之后不受路由跳转的影响而进行初始化。

以下三种情况都会使vuex的state重新初始化。

  1. 页面第一次加载时,
  2. 刷新页面
  3. 使用windows.location.href跳转路由

为了使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);