Langsung ke konten utama

Strategi Persistence Pinia

Persistence harus disengaja: tidak semua state perlu bertahan setelah refresh.


1. Fokus wawancara

  1. Opsi persistence di Pinia
  2. Keputusan penyimpanan per field
  3. Batas keamanan

2. Opsi persistence

Opsi A: pinia-plugin-persistedstate

export const usePrefsStore = defineStore('prefs', {
state: () => ({ theme: 'light', locale: 'en' }),
persist: true,
});

Juga dapat mengonfigurasi storage kustom dan path yang dipilih.

Opsi B: composable storage VueUse

const theme = useLocalStorage<'light' | 'dark'>('theme', 'light');
const dismissedTips = useSessionStorage<boolean>('dismissedTips', false);

Berguna saat hanya field tertentu yang perlu persistence.

Opsi C: persistence manual

Memungkinkan, tetapi mudah salah dan lebih sulit dipelihara.

3. Apa yang dipersist vs tidak dipersist

Persist:

  • theme / locale
  • preferensi UI
  • filter non-sensitif

Jangan dipersist:

  • access token mentah pada konteks yang tidak aman
  • field profil pengguna sensitif tanpa kebijakan yang jelas
  • state loading sementara yang berumur pendek

4. Rekomendasi produksi

  • Definisikan matriks persistence per store
  • Gunakan sessionStorage untuk data sesi pendek
  • Gunakan version key eksplisit untuk migrasi
  • Sediakan fallback aman saat skema tersimpan berubah

5. Ringkasan siap wawancara

Saya memilih persistence berdasarkan sensitivitas data dan masa hidupnya. Saya menggunakan plugin atau VueUse untuk persistence yang terprediksi, menghindari penyimpanan nilai sensitif secara buta, dan memelihara key yang aman untuk migrasi.