React Academy · Pelajaran

Penghidratan Berperingkat dengan Penghidratan Terpilih

Gunakan penghidratan terpilih React 18 untuk mengutamakan penghidratan komponen yang mula-mula berinteraksi dengan pengguna.

Pelajaran 3 daripada 413 langkah

Penghidratan Berperingkat dengan Penghidratan Terpilih ialah pelajaran React Academy percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran React Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus React Academy merangkumi sejumlah 4 pelajaran.

Apakah Penghidratan Terpilih?

Penghidratan terpilih ialah ciri React 18 yang membolehkan React mula menghidratkan komponen sebaik sahaja kod JavaScriptnya tiba, tanpa menunggu JavaScript untuk seluruh halaman selesai dimuat turun. Setiap bahagian yang kodnya dipecahkan secara berasingan dihidratkan apabila himpunannya dimuatkan, bukannya semuanya serentak.

React 18: Tiada Penghidratan Sekaligus

Sebelum React 18, penghidratan bersifat "semua atau tiada" — React perlu memuat turun semua JavaScript dan menghidratkan seluruh pokok sebelum mana-mana bahagian halaman menjadi interaktif. React 18 menghapuskan kekangan ini: bahagian pokok dihidratkan secara berasingan apabila kod dan datanya tersedia.

Interaksi Pengguna Mengutamakan Penghidratan

Jika pengguna mengklik atau berinteraksi dengan sempadan Suspense yang belum dihidratkan, React serta-merta mengutamakan penghidratan subpokok itu sebelum sebarang kerja penghidratan tertangguh yang lain. Ini bermakna perkara yang cuba digunakan oleh pengguna menjadi interaktif terlebih dahulu, walaupun perkara itu bukan yang pertama dalam urutan dokumen.

React.lazy dan Suspense untuk Pemisahan Kod

Menggabungkan React.lazy dengan import dinamik dan sempadan Suspense membolehkan penghidratan terpilih untuk komponen yang kodnya dipecahkan. Pelayar memuat turun himpunan JS utama terlebih dahulu dan menghidratkan rangka halaman dengan serta-merta. Setiap komponen yang dimuatkan secara malas dihidratkan apabila bahagiannya dimuat turun — secara berperingkat, apabila pelayar mengambilnya.

Kesan terhadap Pengalaman Pengguna

Hasilnya, kandungan di atas paparan menjadi interaktif sebelum JavaScript di bawah paparan sempat dimuat turun. Pengguna boleh berinteraksi dengan navigasi dan CTA bahagian utama sementara suapan komen dan komponen cadangan masih memuatkan bahagian JavaScriptnya.

Mengukur Kesan

Penghidratan terpilih mengurangkan Jumlah Masa Menyekat (TBT) — metrik utama untuk prestasi penghidratan. Dalam tab Performance Chrome DevTools, tugas panjang (tugas melebihi 50ms) diserlahkan dengan warna merah. Sebelum penghidratan terpilih, anda mungkin melihat satu tugas panjang selama 300ms untuk penghidratan penuh; selepas itu, anda akan melihat beberapa tugas kecil yang tersebar mengikut masa.

Mengelakkan Import Peringkat Atas yang Terus

Corak anti yang menjejaskan penghidratan terpilih ialah mengimport semua komponen pada peringkat atas aplikasi anda: import Footer from './Footer'. Ini memaksa pelayar memuat turun, menghuraikan dan melaksanakan kod Footer sebelum sebarang penghidratan bermula. Gantikan import peringkat atas bagi komponen di bawah paparan dengan React.lazy dan import dinamik.

Import Dinamik untuk Kandungan Bawah Paparan

Gunakan const Footer = React.lazy(() => import('./Footer')) untuk komponen yang muncul di bawah paparan awal. Bungkus komponen tersebut dalam Suspense dengan kandungan sandaran yang ringkas. Pelayar akan mengurangkan keutamaan pengambilan himpunan Footer sehingga penghidratan bahagian atas paparan selesai, sekali gus meningkatkan TBT secara semula jadi.

Interaksi antara Penstriman dan Penghidratan Terpilih

Penstriman dan penghidratan terpilih saling melengkapi: penstriman menghantar bahagian HTML untuk meningkatkan FCP dan LCP, manakala penghidratan terpilih memproses bahagian JavaScript untuk meningkatkan TTI dan TBT. Bersama-sama, kedua-duanya menangani aspek prestasi "memaparkan kandungan dengan pantas" dan "menjadikannya interaktif dengan pantas".

Penghidratan Terpilih dan Komponen Pelayan React

Komponen Pelayan React membawa penghidratan terpilih lebih jauh: komponen pelayan tidak menghasilkan sebarang JavaScript untuk klien. Hanya komponen klien (ditandai dengan "use client") perlu dihidratkan. Ini mengurangkan jumlah JavaScript yang perlu dihidratkan, lalu menjadikan penghidratan terpilih lebih berkesan.

Seni Bina Praktikal Penghidratan Terpilih

Corak praktikal: gunakan renderToPipeableStream untuk menstrim HTML, bungkus halaman dengan panggilan hydrateRoot pada akar halaman (bukannya createRoot) untuk mendayakan mod penghidratan, gunakan React.lazy untuk semua bahagian di bawah paparan dan bungkus setiap bahagian dalam sempadan Suspense. React mengendalikan selebihnya secara automatik.

Interaksi Pengguna dan Penghidratan Terpilih

Bagaimanakah interaksi pengguna mempengaruhi keutamaan penghidratan terpilih dalam React 18?

Rumusan Pelajaran

Penghidratan terpilih membolehkan React menghidratkan subpokok komponen secara berperingkat apabila JavaScriptnya tiba, dan bukannya menunggu himpunan penuh. Interaksi pengguna mengutamakan penghidratan subpokok yang disasarkan. React.lazy dan import dinamik untuk kandungan di bawah paparan, yang digabungkan dengan sempadan Suspense, membolehkan corak berperingkat ini. Penghidratan terpilih dan SSR penstriman ialah teknik yang saling melengkapi, yang bersama-sama menangani prestasi penghantaran kandungan dan interaktiviti.

Percuma untuk bermula

Pelajari React 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
88
Pelajaran
324

Soalan Lazim

Adakah pelajaran “Penghidratan Berperingkat dengan Penghidratan Terpilih” percuma?

Ya — teks penuh “Penghidratan Berperingkat dengan Penghidratan Terpilih” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus React Academy, tingkat taraf kepada CoddyKit PRO. Kursus React Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Penghidratan Berperingkat dengan Penghidratan Terpilih”?

Gunakan penghidratan terpilih React 18 untuk mengutamakan penghidratan komponen yang mula-mula berinteraksi dengan pengguna. Anda berlatih React 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 React Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran React 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 3 daripada 4.

Berapa lamakah pelajaran “Penghidratan Berperingkat dengan Penghidratan Terpilih” 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 React Academy ini?

Ya. Setiap pelajaran React 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. Penstriman React 18: Cara renderToPipeableStream Berfungsi
  2. Sempadan Suspense dan Keutamaan Penstriman
  3. Penghidratan Berperingkat dengan Penghidratan Terpilih
  4. Mengukur Kesan Penstriman: FCP, TTI dan LCP
← Kembali ke React Academy