Maison >interface Web >js tutoriel >Que faire si les données ne peuvent pas être enregistrées après l'actualisation de la page vuex

Que faire si les données ne peuvent pas être enregistrées après l'actualisation de la page vuex

php中世界最好的语言
php中世界最好的语言original
2018-06-08 13:49:374462parcourir

Cette fois, je vais vous montrer comment gérer l'impossibilité de sauvegarder les données après l'actualisation de la page vuex. Quelles sont les précautions à prendre pour gérer l'impossibilité de sauvegarder les données après l'actualisation de la page vuex ? cas, jetons un coup d'oeil.

1. Raisons

2. Solution

localStorage n'a pas de limite de temps à moins qu'il ne soit supprimé, sessionStorage est la session et la session est lorsque le navigateur est fermé Fin, il y a une limite de temps et il a son propre Baidu

J'utilise sessionStorage ici Ce qui doit être noté ici, c'est que les variables dans vuex sont réactives, mais sessionStorage ne l'est pas lorsque vous changez. l'état dans vuex, le composant le détectera, mais pas sessionStorage. La page doit être actualisée pour voir le changement, donc l'état dans vuex doit être obtenu à partir de sessionStorage, afin que le composant puisse changer de manière réactive

3. Implémentation spécifique

L'arrière-plan de l'application consiste à enregistrer l'état après la connexion de l'utilisateur et à supprimer l'état après la sortie

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 
 }

getters .js

isLogin (state) { 
 if (!state.isLogin) { 
  state.isLogin=sessionStorage.getItem('isLogin'); //从sessionStorage中读取状态 
  state.username=sessionStorage.getItem('username'); 
 } 
 return state.username 
 }

L'idée générale de mise en œuvre est de garder le statut de l'histoire dans vuex cohérent avec sessionStorage (obtenir la valeur de sessionStorage)

4. Mots ultérieurs

J'ai marché sur une grande fosse auparavant, je n'avais pas remarqué que vuex pouvait faire changer les composants de manière réactive, permettant aux composants de le faire directement. prenez la valeur de sessionStorage. Je dois encore actualiser pour voir l'effet après avoir quitté.

Supplément :

Regardons la différence entre le stockage vuex et le stockage local (stockage local, stockage de sessions)

1. Différence la plus importante : vuex est stocké en mémoire, tandis que localstorage est stocké localement sous forme de fichiers

2. Scénarios d'application : vuex est utilisé pour transférer des valeurs entre composants, tandis que localstorage est principalement utilisé pour transférer des valeurs ​​entre différentes pages.

3. Permanence : la valeur stockée dans vuex sera perdue lors de l'actualisation de la page, mais pas le stockage local.

Remarque : De nombreux étudiants pensent que le stockage local peut être utilisé à la place de vuex. C'est effectivement possible pour des données inchangées, mais lorsque deux composants partagent une source de données (objet ou tableau), si l'un des composants modifie les données. source, lorsque vous souhaitez qu'un autre composant réponde au changement, localstorage ne peut pas le faire, la raison est la différence 1.

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Comment JS convertit les lignes et les colonnes d'un tableau bidimensionnel

Explication détaillée de la pratique de redux-thunk cas de projet

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn