Langsung ke konten utama

Praktik Terbaik dan Kesalahan Umum Pinia

Cara menjaga store Pinia tetap mudah dipelihara pada aplikasi Vue skala menengah hingga besar.


1. Fokus wawancara​

  1. Batas desain store
  2. Jebakan reaktivitas
  3. Praktik maintainability tingkat tim

2. Prinsip desain store​

Tanggung jawab tunggal per store​

useAuthStore();
useUserStore();
useCatalogStore();

Hindari satu mega store yang mencampur concern yang tidak terkait.

Pertahankan store sebagai container state​

Prioritaskan:

  • state
  • getter deterministik
  • action yang terfokus

Pindahkan workflow bisnis yang berat ke composable/service.

Jika memungkinkan, taruh side effect di luar store​

Daripada menaruh seluruh orkestrasi API langsung di action store, gunakan composable untuk workflow dan jaga action store tetap fokus pada update state.

3. Kesalahan umum​

Kesalahan 1: destructuring langsung state/getter​

// bad: reactivity can be lost
const { token, isLoggedIn } = authStore;

// good
const { token, isLoggedIn } = storeToRefs(authStore);

Kesalahan 2: mengakses store di luar konteks valid​

Panggil store di setup, composable, atau lokasi yang aman terhadap lifecycle aplikasi.

Kesalahan 3: dependensi store melingkar​

Store A mengimpor Store B dan Store B mengimpor Store A menyebabkan perilaku runtime yang rapuh.

Kesalahan 4: memodifikasi salinan non-reaktif​

Selalu lakukan update melalui referensi reaktif atau action.

4. Standar praktis​

  • Gunakan tipe TypeScript untuk state dan payload
  • Jaga nama action tetap eksplisit (setUserProfile, resetSession)
  • Kelompokkan store berdasarkan domain bisnis
  • Tambahkan method reset untuk logout/pergantian akun
  • Jaga kebijakan persistence tetap eksplisit per field

5. Ringkasan siap wawancara​

Saya menjaga store tetap kecil dan fokus domain, menghindari jebakan reaktivitas dengan storeToRefs, memindahkan orkestrasi kompleks ke composable, serta menegakkan typing dan strategi reset yang jelas.