Langsung ke konten utama

Penggunaan Pinia di Komponen dan Composable

Pola penggunaan yang benar mencegah bug reaktivitas dan menjaga logika bisnis tetap mudah diuji.


1. Fokus wawancara

  1. Pola penggunaan tingkat komponen
  2. storeToRefs dan reaktivitas
  3. Orkestrasi multi-store di composable

2. Penggunaan di komponen

<script setup lang="ts">
import { useAuthStore } from 'stores/auth.store';
import { storeToRefs } from 'pinia';

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

function logout() {
authStore.clearSession();
}
</script>

State/getter sebaiknya diekstrak dengan storeToRefs.

3. Pola orkestrasi composable

export function useCheckoutFlow() {
const cartStore = useCartStore();
const userStore = useUserStore();

async function checkout() {
await checkoutApi({
items: cartStore.items,
userId: userStore.id,
});
cartStore.clear();
}

return { checkout };
}

Taruh alur bisnis lintas store di composable, bukan di dalam satu store.

4. Panduan komunikasi

  • Prioritaskan composable sebagai layer koordinasi
  • Hindari impor store melingkar secara langsung
  • Jaga action store tetap fokus pada satu domain

5. Tips pengujian

  • Mock action store untuk tes composable
  • Verifikasi transisi state, bukan detail implementasi
  • Tambahkan regression test untuk workflow lintas store

6. Ringkasan siap wawancara

Di komponen, saya menggunakan storeToRefs untuk ekstraksi state yang reaktif. Untuk workflow multi-store, saya menyusun store di composable agar dependensi tetap searah dan logika mudah diuji.