鍍金池/ 問答/HTML/ vuex在mutations里面操作sessionStorage和localSt

vuex在mutations里面操作sessionStorage和localStorage合理嗎?

以前我是只在mutations里面修改state,然后頁面dispatch調(diào)用action之后,再做sessionStorage(當(dāng)前登錄的用戶信息)和localStorage(token存儲)的一些操作。

最近突然有點(diǎn)偷懶,我把sessionStorage和localStorage的相關(guān)操作都寫到mutations里面去了,比如

mutations: {
    SET_TOKEN: (state, token) => {
      state.token = token;
      localStorage.setItem('token', token);
    },
    SET_USER_INFO: (state, admin) => {
      state.admin_id = admin.admin_id;
      state.admin_name = admin.admin_name;
      state.email = admin.email;
      state.avatar = admin.avatar;
      sessionStorage.setItem('admin', JSON.stringify(admin));
    },
    //……
}

這樣就統(tǒng)一了,調(diào)用之后,就不需要在vue頁面再操作localStorage和sessionStorage了。我想知道的是,這樣符合規(guī)范嗎?

回答
編輯回答
不歸路

只要不做異步操作,都是符合規(guī)范的,js操作storage本就是個同步操作,所以可以這樣做。

2018年1月6日 02:49