Home > Web Front-end > JS Tutorial > How to prevent data clearing after vuex page refresh

How to prevent data clearing after vuex page refresh

php中世界最好的语言
Release: 2018-04-28 13:47:37
Original
3850 people have browsed it

This time I will show you how to prevent the data from being cleared after the vuex page is refreshed. What are the precautions to prevent the data from being cleared 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, session

Storage is a session , the session ends when the browser is closed, has a time limit, and has its own Baidu

I use sessionStorage here. What needs to be noted here is that the variable

in vuex is responsive, but sessionStorage is not , when you change the state in vuex, the component will detect the change, but sessionStorage will not. The page must be refreshed to see the change, so the state in vuex should be obtained from sessionStorage, so that the component can be responsive Changes

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. Afterword

I stepped on a big pit before. I didn’t notice that vuex can make components change responsively, allowing the components to directly take the value of sessionStorage. I was still confused. You must 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 immutable data, but when the two components share a data source (

object

or

array ), if one of the components changes the data source and wants the other 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:

Detailed explanation of the steps to implement partial printing of the page in angular


Detailed explanation of the use of common vue components

The above is the detailed content of How to prevent data clearing after vuex page refresh. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
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