Strategie di persistenza in Pinia
La persistenza deve essere intenzionale: non tutto lo stato deve sopravvivere al refresh.
1. Focus da colloquio
- Opzioni di persistenza in Pinia
- Decisioni di storage a livello campo
- Confini di sicurezza
2. Opzioni di persistenza
Option A: pinia-plugin-persistedstate
export const usePrefsStore = defineStore('prefs', {
state: () => ({ theme: 'light', locale: 'en' }),
persist: true,
});
Puoi anche configurare storage personalizzato e path selezionati.
Opzione B: composable storage di VueUse
const theme = useLocalStorage<'light' | 'dark'>('theme', 'light');
const dismissedTips = useSessionStorage<boolean>('dismissedTips', false);
Utile quando solo campi specifici richiedono persistenza.
Opzione C: persistenza manuale
Possibile, ma facile da sbagliare e più difficile da mantenere.
3. Cosa persistere e cosa no
Da persistere:
- tema / locale
- preferenze UI
- filtri non sensibili
Da non persistere:
- access token grezzi in contesti non sicuri
- campi sensibili del profilo utente senza policy chiara
- stato transitorio di loading a vita breve
4. Raccomandazioni per la produzione
- Definisci una matrice di persistenza store-per-store
- Usa
sessionStorageper dati di sessione breve - Usa chiavi di versione esplicite per le migrazioni
- Fornisci fallback sicuri quando cambia lo schema salvato
5. Sintesi pronta per il colloquio
Scelgo la persistenza in base a sensibilità e durata del dato. Uso plugin o VueUse per una persistenza prevedibile, evito di persistere ciecamente valori sensibili e mantengo chiavi sicure per la migrazione.