Vue Academy · Pelajaran

Pengambilan Data: useFetch dan useAsyncData

useFetch(), useAsyncData(), pengambilan sisi pelayan berbanding sisi klien, refresh(), keadaan menunggu.

Pelajaran 2 daripada 413 langkah

Pengambilan Data: useFetch dan useAsyncData ialah pelajaran Vue Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Vue Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Vue Academy merangkumi sejumlah 4 pelajaran.

Mengambil Data dalam Nuxt

Nuxt menyediakan komposabel pengambilan data yang menyedari SSR. Komposabel ini berjalan pada pelayan semasa perenderan dan menghantar hasil kepada klien, lalu mengelakkan permintaan pendua serta paparan kandungan kosong seketika.

Asas useFetch

useFetch membungkus pengambilan URL. Ia mengembalikan nilai reaktif data, pending dan error yang boleh digunakan terus dalam templat.

<script setup>
const { data, pending, error } = await useFetch('/api/posts')
</script>

Menunjukkan Pemuatan dan Ralat

Gunakan pending untuk keadaan pemuatan dan error untuk kegagalan. data mengandungi JSON yang dihuraikan.

<template>
  <p v-if="pending">Loading...</p>
  <p v-else-if="error">Failed to load</p>
  <ul v-else>
    <li v-for="p in data" :key="p.id">{{ p.title }}</li>
  </ul>
</template>

useAsyncData untuk Logik Tersuai

Apabila Anda memerlukan lebih daripada URL biasa — seperti menggabungkan panggilan atau mengubah bentuk hasil — gunakan useAsyncData. Ia menerima kunci unik dan fungsi pengambil data.

const { data } = await useAsyncData('posts', () => {
  return $fetch('/api/posts')
})

Mengapa Kunci Penting

Kunci tersebut menghapuskan pendua dan menyimpan permintaan dalam cache. Dua komponen yang menggunakan kunci sama akan berkongsi satu hasil dan satu panggilan rangkaian, sekali gus mengelakkan pengambilan data berlebihan.

useFetch ialah Kemudahan Ringkas

Di sebalik tabir, useFetch(url) pada asasnya ialah useAsyncData dengan kunci yang dijana secara automatik dan pengambil data $fetch(url). Gunakan useFetch untuk URL ringkas dan useAsyncData untuk pengambil data tersuai.

Khusus Klien dengan server:false

Tetapkan server: false untuk melangkau pengambilan data semasa SSR dan menjalankannya hanya pada klien — berguna untuk data khusus pengguna yang tidak sepatutnya menyekat pemaparan pada pelayan.

const { data } = await useFetch('/api/me', {
  server: false
})

Pengambilan Data Malas dan Tidak Menyekat

Secara lalai, await menyekat navigasi sehingga data diterima. Pilihan lazy (atau useLazyFetch) membolehkan halaman dipaparkan serta-merta dan diisi dengan data apabila proses selesai.

const { data, pending } = useFetch('/api/posts', {
  lazy: true
})

Mengambil Semula dengan refresh

Komposabel tersebut mengembalikan fungsi refresh untuk menjalankan semula pengambilan data apabila diminta — selepas mutasi atau apabila butang diklik.

const { data, refresh } = await useFetch('/api/posts')
function reload() { refresh() }

Parameter Pertanyaan Reaktif

Berikan query atau pilihan reaktif; apabila ref yang dipantau berubah, pengambilan data akan dijalankan semula secara automatik. Ikat watch untuk mengambil semula data apabila kebergantungan berubah.

const page = ref(1)
const { data } = await useFetch('/api/posts', {
  query: { page },
  watch: [page]
})

Mengubah Bentuk Respons

Pilihan transform mengubah bentuk respons sebelum respons itu sampai ke data — berguna untuk memilih medan yang diperlukan sahaja dan mengurangkan muatan yang dihantar kepada klien.

const { data } = await useFetch('/api/user', {
  transform: (u) => ({ name: u.name, id: u.id })
})

Semakan Ringkas

Uji pengetahuan Anda tentang pengambilan data Nuxt.

Ulang Kaji

Anda telah mempelajari pengambilan data Nuxt:

  • useFetch mengembalikan data reaktif, status pemuatan dan ralat.
  • useAsyncData menerima kunci serta pengambil data untuk logik tersuai.
  • server:false hanya berjalan pada klien; lazy menjadikan pengambilan data tidak menyekat.
  • refresh() mengambil semula data; watch menjalankan semula proses apabila kebergantungan berubah.
Percuma untuk bermula

Pelajari HTML dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
42
Pelajaran
156

Soalan Lazim

Adakah pelajaran “Pengambilan Data: useFetch dan useAsyncData” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Vue Academy, termasuk “Pengambilan Data: useFetch dan useAsyncData”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Vue Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Pengambilan Data: useFetch dan useAsyncData”?

useFetch(), useAsyncData(), pengambilan sisi pelayan berbanding sisi klien, refresh(), keadaan menunggu. Anda berlatih Vue Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Vue Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Vue Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Pengambilan Data: useFetch dan useAsyncData” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Vue Academy ini?

Ya. Setiap pelajaran Vue Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Struktur Projek Nuxt 3 dan Penghalaan Berasaskan Fail
  2. Pengambilan Data: useFetch dan useAsyncData
  3. Laluan Pelayan dan Titik Akhir API Nuxt
  4. Mod SSR berbanding SSG berbanding SPA
← Kembali ke Vue Academy