Arsitektur Islands: Hidrasi Selektif
Pelajari cara islands mengisolasi komponen interaktif sehingga hanya komponen tersebut yang mengirimkan JavaScript, sementara bagian lainnya tetap berupa HTML statis.
Arsitektur Islands: Hidrasi Selektif adalah pelajaran React Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar React Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus React Academy mencakup 4 pelajaran total.
Konsep Pulau
Arsitektur Pulau, yang dicetuskan oleh Jason Miller pada 2020, memperlakukan halaman web sebagai HTML yang sebagian besar statis dengan "pulau" interaktivitas yang terisolasi dan disisipkan di dalamnya. Lautan HTML statis dikirim ke peramban apa adanya. Hanya pulau interaktif yang mengunduh dan menjalankan JavaScript, sehingga muatan JavaScript sebanding dengan interaktivitas sebenarnya.
Cara Kerja Pulau
Setiap pulau adalah komponen yang dihidrasi secara independen. Server merender HTML awal pulau bersama bagian halaman lainnya. Ketika JavaScript pulau dimuat, JavaScript tersebut hanya menghidrasi subpohon komponen itu. HTML di sekitar pulau tidak pernah disentuh oleh JavaScript — HTML tersebut benar-benar statis.
Perbedaan Muatan JavaScript
Pada halaman kiriman blog dengan Arsitektur Pulau, muatan JavaScript mungkin hanya 5kb untuk satu pulau tombol suka. Halaman yang sama jika dibuat sebagai SPA React mungkin mengirimkan lebih dari 200kb JavaScript untuk menghidrasi seluruh halaman. Pendekatan pulau membuat muatan sebanding dengan interaktivitas, bukan ukuran halaman.
Pulau Lintas Kerangka Kerja
Astro, kerangka kerja Arsitektur Pulau terkemuka, mendukung pulau yang dibuat dengan kerangka kerja berbeda pada halaman yang sama. Anda dapat memiliki pulau React di sebelah pulau Vue, lalu pulau JavaScript murni di sebelahnya. Setiap pulau dibundel secara independen, sehingga pengguna hanya mengunduh kode kerangka kerja yang digunakan oleh pulau yang terlihat.
client:load — Hidrasi Segera
Direktif client:load menghidrasi pulau segera saat halaman dimuat. Gunakan direktif ini untuk pulau yang langsung terlihat dan interaktif, seperti menu navigasi atau bagian utama dengan kolom masukan pencarian. Ini adalah strategi hidrasi dengan prioritas tertinggi.
client:idle — Hidrasi Ditangguhkan
Direktif client:idle menunggu sampai utas utama peramban senggang (setelah konten penting dimuat) sebelum menghidrasi pulau. Direktif ini ideal untuk widget di bawah tampilan awal atau interaksi sekunder yang tidak segera diperlukan, seperti bilah berbagi sosial.
client:visible — Hidrasi Malas
Direktif client:visible menggunakan Pengamat Persimpangan untuk menghidrasi pulau hanya ketika pulau tersebut bergulir masuk ke area pandang. Direktif ini ideal untuk pulau yang berada jauh di halaman — bagian komentar atau karusel produk terkait — yang mungkin tidak pernah dicapai oleh sebagian besar pengguna. JavaScript bahkan belum dimuat sampai diperlukan.
client:only — Lewati SSR
Direktif client:only sepenuhnya melewati perenderan sisi server dan hanya merender pulau di peramban. Direktif ini diperlukan untuk komponen yang menggunakan API khusus peramban (window, document) atau yang bergantung pada status sisi klien saat dipasang. Konsekuensinya adalah tidak ada HTML yang dirender server untuk pulau tersebut.
Mengatasi Masalah Hidrasi
Arsitektur Pulau mengatasi masalah hidrasi penuh dengan memastikan JavaScript hanya dimuat dan dijalankan untuk komponen yang benar-benar interaktif. Kiriman blog dengan tombol suka hanya menghidrasi pulau tombol suka — teks artikel sepanjang 1.200 kata, tajuk, dan kaki halaman tidak menghasilkan eksekusi JavaScript sama sekali di klien.
Isolasi Status Antar-Pulau
Setiap pulau memiliki statusnya sendiri yang terisolasi. Pulau tidak dapat berbagi status React secara langsung karena pulau-pulau tersebut merupakan pohon React yang terpisah. Ini memang dirancang demikian: jika dua komponen perlu berbagi status, keduanya sebaiknya digabungkan menjadi satu pulau. Komunikasi antar-pulau menggunakan parameter URL, peristiwa DOM, atau pustaka status ringan.
Hasil di Dunia Nyata
Situs yang bermigrasi dari SPA React ke Arsitektur Pulau (seperti situs dokumentasi Astro) melaporkan peningkatan dramatis: muatan JavaScript berkurang 70–90%, TTI meningkat 2–4 detik pada perangkat seluler, dan nilai performa Lighthouse melonjak dari 60-an menjadi 90-an atau lebih. Peningkatan ini paling terasa pada halaman yang kaya konten.
Strategi Hidrasi Pulau
Direktif hidrasi Astro manakah yang hanya menghidrasi komponen ketika komponen tersebut menggulir masuk ke area pandang?
Ringkasan Pelajaran
Arsitektur Pulau mempertahankan sebagian besar halaman sebagai HTML statis dan hanya menghidrasi komponen interaktif yang terisolasi. Astro menyediakan direktif hidrasi: client:load (segera), client:idle (setelah tidak ada aktivitas), client:visible (saat menggulir), dan client:only (render khusus klien). Setiap pulau dihidrasi secara independen, sehingga jumlah JavaScript sebanding dengan tingkat interaktivitas, bukan ukuran halaman.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Arsitektur Islands: Hidrasi Selektif” gratis?
Ya — teks lengkap “Arsitektur Islands: Hidrasi Selektif” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus React Academy, upgrade ke CoddyKit PRO. Kursus React Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Arsitektur Islands: Hidrasi Selektif”?
Pelajari cara islands mengisolasi komponen interaktif sehingga hanya komponen tersebut yang mengirimkan JavaScript, sementara bagian lainnya tetap berupa HTML statis. Kamu berlatih React Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai React Academy?
Tidak diperlukan pengalaman sebelumnya. React Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Arsitektur Islands: Hidrasi Selektif” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran React Academy ini?
Ya. Setiap pelajaran React Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Masalah Hydration Penuh
- Arsitektur Islands: Hidrasi Selektif
- Penyiapan Astro dan React Islands
- Mengukur Performa: Lighthouse dan Core Web Vitals