Home > Web Front-end > JS Tutorial > body text

What to do if the data cannot be saved after the vuex page is refreshed

php中世界最好的语言
Release: 2018-06-08 13:49:37
Original
4419 people have browsed it

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 Baidu

I 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 exiting

mutations.js

ADD_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 
 }
Copy after login
getters.js

isLogin (state) { 
 if (!state.isLogin) { 
  state.isLogin=sessionStorage.getItem('isLogin'); //从sessionStorage中读取状态 
  state.username=sessionStorage.getItem('username'); 
 } 
 return state.username 
 }
Copy after login
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 files

2. 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!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template