Persistance des données

La conception d'une application web qui exécute du code coté client nécessite habituellement de prendre en compte la persistance des données. Il faut comprendre que le code JavaScript exécuté coté client est stockée en mémoire dans le navigateur et par onglet. Donc, si l'utilisateur rafraîchit la page ou change d'onglet, alors le code JavaScript est rechargé et donc les données perdues. Exemples classiques de pertes de données s'il n'y a pas de persistance :

Il existe plusieurs possibilités pour stocker localement des données dans un navigateur. Les principales sont les cookies, Local Storage, Session Storage et IndexedDB.

Comparaison des méthodes

Persistance%20des%20donn%C3%A9es

IndexedDB VS Local Storage
Il peut sembler plus avantageux, de par la capacité de stockage, d'utiliser IndexedDB au lieu du Local Storage, mais il faut comprendre qu'au niveau du code il y aura une plus grande complexité à gérer.

Exemple de persistance avec Vue.js

Dans le projet exemple-auth, voir le code dans le fichier authStore.js qui utilise le local storage pour persister le jeton JWT, et ainsi pouvoir conserver l'utilisateur connecté. Voir plus particulièrement :

Déboguer

Dans le navigateur, avec F12, on peut voir et manipuler toutes les données stockées dans le navigateur.

Dans Firefox
storage-firefox

Dans chrome
storage-chrome

Avec Vue.js

Lorsque qu'il est nécessaire de persister plusieurs données du store, il devient intéressant d'utiliser un plugin comme vue-persistedstate qui facilite la tâche.

Les tests unitaires

Voir la section [Les tests : Mocker Local storage]().