鍍金池/ 問答/HTML/ 關于vuex保存登錄狀態(tài)刷新清空的問題

關于vuex保存登錄狀態(tài)刷新清空的問題

想在登錄成功后將返回的信息保存到logindata里
clipboard.png
代碼如下定義了一個actions異步請求的方法
clipboard.png
在組件里通過dispatch觸發(fā),登錄成功后我先將登錄狀態(tài)保存到了localstorage里,然后獲取里面的數(shù)據(jù)保存到logindata里,最后再將state里的所有數(shù)據(jù)保存到localstorage里,但是一刷新還是全部清空了,請問這是為何。最后明明都保存到localstorage里了,有沒有什么辦法能讓他刷新不清空vuex

回答
編輯回答
陌如玉

首先一刷新所有JS代碼都重新執(zhí)行了,所以vuex中的state肯定也是重置的,你的想法沒錯,把從遠端獲取到的數(shù)據(jù)存到瀏覽器本地儲存,但是我好像沒看你初始化vuex的一步,就是應用重啟時應該把本地存儲里的數(shù)據(jù)放到vuex中的state里。

很簡單

const localLoginData = localStorage.getItem('data')
const store = new Vuex.Store({
    state: {
        logindata: localLoginData ?  JSON.parse(localLoginData) : {}
    }
})
2017年11月20日 02:43
編輯回答
焚音

首先你可以console下請求接口的data參數(shù)是否有,因為刷新頁面,vuex都會重新置空。其次console下獲取的data是否存到本地來了,然后console下存入到state的action函數(shù)是否有值。自己多找找,一般是可以找到原因的。

2017年2月23日 03:42