fullstack/vuejs3
partie 1 - partie 2 - partie 3
Back-end de développement
Stockage de données sur le navigateur : WebStorage et IndexDB
- l’API WebStorage (localStorage & sessionStorage) permet de stocker de petites quantités de données non structurées dans le navigateur. Le support physique de ce stockage est variable selon les navigateurs
- l’API IndexDB, plus complexe, permet de stocker de grandes quantités de données structurées. Le support physique de ce stockage est une base de données SQLite
- ces données sont visibles dans les DevTools(‘Application’ sur Chrome, ‘Stockage’ sur Firefox)
API WebStorage
- stockage = dictionnaire clé-valeur
- les dictionnaires (localStorage ou sessionStorage) sont associés aux urls des onglets, plus précisément à leur domain-name (sans le path, les query params, le hash)
- deux onglets dont les urls ont le même domain-name, partagent le même dictionnaire localStorage ou sessionStorage
- dans la console d’un onglet, ces dictionnaires sont accessibles sous les noms ‘localStorage’ et ‘sessionStorage’
- les clés et les valeurs sont des chaînes. Pour manipuler des valeurs complexes, il faut utiliser JSON.stringify et JSON.parse
localStorage
- les données persistent même après la fermeture de l’onglet
- la réinitialisation du cache supprime les données
Exemple : https://codesandbox.io/s/nkzjz5yp14
Test : ouvrir 2 onglets avec les urls :
sessionStorage
Les données ont la durée de vie de l’onglet
Exemple : https://codesandbox.io/s/m5vw804jqx
vuex-persist
Ce module permet de persister l’état Vuex d’une application dans localStorage ou sessionStorage (au choix)