HTML lebih dahulu, interaksi sebagai pengecualian
Astro adalah framework server-first untuk situs web berbasis konten. Astro merender konten halaman sebagai HTML dan secara default tidak mengirim JavaScript sisi klien; pengembang secara eksplisit menambahkan kode browser ke komponen yang memerlukan interaksi.
Komponen interaktif di dalam halaman yang selain itu tetap statis disebut island. Kontrol navigasi, antarmuka pencarian, atau widget lain dapat menjalani hydration secara independen, sementara judul, paragraf, dan tautan di dekatnya tetap berupa HTML biasa.
| Bagian halaman | Penyampaian awal | Perilaku browser |
|---|---|---|
| Konten Astro statis | HTML yang dirender di server | Tidak ada runtime komponen secara default |
| Island yang menjalani hydration | HTML ditambah kode komponen yang dipilih | Aktif secara independen |
| Beberapa island | HTML ditambah kode yang dipilih untuk setiap island | Setiap island dapat menggunakan prioritas pemuatannya sendiri |
Waktu hydration ditetapkan secara eksplisit. client:load memprioritaskan kontrol yang segera diperlukan, client:idle menunda pekerjaan sampai browser menganggur, dan client:visible menunggu sampai komponen mendekati viewport.
Integrasi dan konten terstruktur
Astro dapat menggunakan React, Preact, Svelte, Vue, Solid, HTMX, web components, dan pendekatan UI lainnya untuk bagian interaktif. Hal ini memungkinkan penggunaan kembali sistem komponen yang sudah dikenal secara selektif tanpa mengubah seluruh dokumen menjadi satu aplikasi yang dirender di sisi klien.
Area ekosistem berguna yang diidentifikasi oleh repositori yang dipelihara mencakup:
- Integrasi UI untuk React, Preact, Solid, Svelte, dan Vue.
- Dukungan runtime Node dan adapter deployment.
- Alat penerbitan seperti integrasi MDX, RSS, dan sitemap.
- Integrasi terkait skrip melalui Partytown.
Content collections mengatur dan memvalidasi Markdown serta entri terkait dengan keamanan tipe TypeScript. Secara praktis, tim dapat menentukan struktur yang konsisten untuk artikel atau dokumentasi, menemukan field konten yang tidak valid, dan melakukan kueri terhadap collection yang koheren alih-alih memperlakukan setiap file sebagai sesuatu yang tidak terkait.
Bukti dibandingkan hasil implementasi
Dokumentasi publik dan repositori Astro yang dipelihara mendukung klaim tentang rendering yang mengutamakan HTML, hydration opt-in, pendekatan UI yang didukung, dan content collections. Keduanya menjelaskan kemampuan dan default framework, bukan kualitas setiap situs yang dibangun dengan Astro.
Proyek akhir tetap dapat menyertakan island besar, beberapa runtime framework, gambar berat, font, atau skrip pihak ketiga. Pilihan tersebut dapat memengaruhi performa dan pemeliharaan, sehingga pengunjung harus membedakan model Astro yang didokumentasikan dari hasil yang memerlukan pemeriksaan terhadap implementasi tertentu. Perbedaan yang sama berlaku untuk aksesibilitas dan keandalan: framework menyediakan alat arsitektural, sedangkan pengalaman akhirnya bergantung pada cara tim menggunakannya.
