Home > Article > Web Front-end > What to do if the data cannot be saved after the vuex page is refreshed
This time I will show you how to deal with the inability to save data after the vuex page is refreshed. What are the precautions for dealing with the inability to save the data after the vuex page is refreshed? The following is a practical case, let's take a look.
1. Reason
##2. Solution
localStorage has no time limit unless it is removed, sessionStorage is the session, and the session is closed when the browser is closed End, there is a time limit, and it has its own BaiduI use sessionStorage here. What needs to be noted here is that the variables in vuex are responsive, but sessionStorage is not. When you change the state in vuex, the component will detect it. Change, but sessionStorage will not. The page must be refreshed to see the change, so the status in vuex should be obtained from sessionStorage, so that the component can change responsively
3. Specific implementation
The application background is to save the state after the user logs in and remove the state after exitingmutations.jsADD_LOGIN_USER (state,data) { //登入,保存状态 sessionStorage.setItem("username", data); //添加到sessionStorage sessionStorage.setItem("isLogin",true); state.username=data, //同步的改变store中的状态 state.isLogin=true }, SIGN_OUT (state) { //退出,删除状态 sessionStorage.removeItem("username"); //移除sessionStorage sessionStorage.removeItem("isLogin"); state.username='' //同步的改变story中的状态 state.isLogin=false }getters.js
isLogin (state) { if (!state.isLogin) { state.isLogin=sessionStorage.getItem('isLogin'); //从sessionStorage中读取状态 state.username=sessionStorage.getItem('username'); } return state.username }The overall implementation idea is to keep the state of the story in vuex consistent with sessionStorage (get the value from sessionStorage)
4. Later words
I stepped on a big pit before, and I didn't notice that vuex can make components change responsively, allowing the components to directly take the value of sessionStorage. I had to refresh to see the effect after exiting.Additional:
Let’s look at the difference between vuex storage and local storage (localstorage, sessionstorage)1. Most Important difference: vuex is stored in memory, while localstorage is stored locally in the form of files2. Application scenarios: vuex is used to transfer values between components, while localstorage is mainly used to transfer values between different pages. value. 3. Permanence: The value stored by vuex will be lost when the page is refreshed, but localstorage will not. Note: Many students think that localstorage can be used instead of vuex. It is indeed possible for unchanged data, but when two components share a data source (object or array), if one of the components changes the data source , when you want another component to respond to the change, localstorage cannot do it, the reason is difference 1. I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the php Chinese website! Recommended reading:How JS converts two-dimensional array rows and columns
redux-thunk practical project case details
The above is the detailed content of What to do if the data cannot be saved after the vuex page is refreshed. For more information, please follow other related articles on the PHP Chinese website!