Bikin Composable useFetch Sederhana di Vue 3
Daftar Isi
Salah satu hal yang saya suka dari Vue 3 Composition API adalah kemudahan membuat composable — logika reusable yang bisa dipakai di banyak komponen. Mari buat useFetch.
Composable-nya
import { ref } from 'vue'
export function useFetch(url) {
const data = ref(null)
const error = ref(null)
const loading = ref(true)
fetch(url)
.then((res) => res.json())
.then((json) => (data.value = json))
.catch((err) => (error.value = err))
.finally(() => (loading.value = false))
return { data, error, loading }
}Cara Pakai di Komponen
<script setup>
import { useFetch } from '@/composables/useFetch'
const { data, error, loading } = useFetch('/api/v1/posts')
</script>
<template>
<p v-if="loading">Memuat...</p>
<p v-else-if="error">Gagal memuat data 😢</p>
<ul v-else>
<li v-for="post in data" :key="post.id">{{ post.title }}</li>
</ul>
</template>Penutup
Composable membuat kode lebih DRY dan mudah diuji. Kamu bisa kembangkan useFetch ini dengan dukungan refetch(), abort controller, atau caching sesuai kebutuhan project.
Komentar
Belum ada komentar. Jadilah yang pertama! 👋