Rumah > hujung hadapan web > tutorial js > Bagaimana untuk membina pemuat koleksi Astro

Bagaimana untuk membina pemuat koleksi Astro

Mary-Kate Olsen
Lepaskan: 2025-01-17 08:35:09
asal
218 orang telah melayarinya

How to build an Astro collection loader

Keluaran Astro 1.14 memperkenalkan API Lapisan Kandungan, memperluaskan koleksi kandungan melangkaui fail tempatan. Walaupun Astro menyediakan pemuat untuk sumber data biasa (RSS, CSV, dll.), membuat pemuat tersuai adalah mudah. Panduan ini menunjukkan membina pemuat untuk API jenaka ayah.

Persediaan Projek

Mulakan dengan mencipta projek Astro baharu:

npm create astro@latest
Salin selepas log masuk

Ikuti gesaan CLI. Kemudian mulakan pelayan pembangunan:

npm run dev
Salin selepas log masuk

Akses projek anda di http://localhost:4321.

Mendayakan API Eksperimen

API Lapisan Kandungan adalah percubaan. Dayakannya dengan mengubah suai astro.config.mjs:

// astro.config.mjs
import { defineConfig } from 'astro/config';

export default defineConfig({
    experimental: {
        contentLayer: true,
    },
});
Salin selepas log masuk

Mencipta Pemuat

Buat fail baharu (cth., src/loaders/jokes.ts) untuk menempatkan pemuat anda. Contoh ini menggunakan TypeScript, walaupun ia tidak wajib.

// src/loaders/jokes.ts
import type { Loader } from 'astro/loaders';

export const jokesLoader: Loader = {
    name: 'jokes',
    load: async (context) => {
        const response = await fetch('https://icanhazdadjoke.com/', {
            headers: {
                Accept: 'application/json',
            },
        });

        const json = await response.json();

        context.store.set({
            id: json.id,
            data: json,
        });
    },
};
Salin selepas log masuk

Pemuat terdiri daripada:

  • name (diperlukan): Pengecam pemuat.
  • load (diperlukan): Fungsi tak segerak mengambil dan memproses data. Ia menerima objek context yang menyediakan akses kepada stor data dan pembalak.
  • schema (pilihan): Skema Zod untuk pengesahan data.

Menyambungkan Pemuat ke Koleksi

Buat fail konfigurasi (cth., src/content/config.ts) untuk menentukan koleksi anda:

// src/content/config.ts
import { defineCollection } from 'astro:content';
import { jokesLoader } from '../loaders/jokes';

const jokes = defineCollection({
    loader: jokesLoader,
});

export const collections = {
    jokes,
};
Salin selepas log masuk

Mengakses Data

Dalam komponen Astro, akses data menggunakan getCollection:

---
import { getCollection } from 'astro:content';

const jokes = await getCollection('jokes');
---

<ul>
  {jokes.map(joke => <li>{joke.data.joke}</li>)}
</ul>
Salin selepas log masuk

Membina dan Berlari

Lari npm run build. Pemuat akan melaksanakan, mengambil dan menyimpan data jenaka. Komponen Astro kemudiannya akan memaparkan jenaka yang diambil.

Kesimpulan

Ini menggambarkan membina pemuat koleksi Astro asas. Pendekatan ini boleh diperluaskan untuk mengendalikan sumber data yang lebih kompleks dan menggabungkan ciri seperti pengendalian ralat dan penomboran. Reka bentuk modular membolehkan untuk mencipta pemuat boleh guna semula, yang berpotensi membungkusnya untuk kegunaan yang lebih luas.

Atas ialah kandungan terperinci Bagaimana untuk membina pemuat koleksi Astro. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan