Aplikasi Praktikal: Carian, Tatal, Ubah Saiz
Gunakan nyahpantulan pada input carian dan pendikitan pada pendengar tatal serta ubah saiz dalam contoh komponen sebenar.
Aplikasi Praktikal: Carian, Tatal, Ubah Saiz ialah pelajaran React Academy percuma di CoddyKit. Ini ialah pelajaran 4 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.
Carian Langsung dengan useDebounce
Dalam komponen carian langsung, kekalkan dua pemboleh ubah keadaan yang berasingan: inputValue untuk masukan mentah (dikemas kini pada setiap ketikan, lalu memastikan medan masukan responsif) dan debouncedQuery daripada useDebounce(inputValue, 300) (dikemas kini 300ms selepas pengguna berhenti menaip, lalu mencetuskan panggilan ke pelayan). Pengasingan ini memberikan maklum balas visual serta-merta tanpa permintaan yang berlebihan.
Keadaan Pemuatan Semasa Carian
Paparkan pemutar pemuatan sebaik sahaja pengguna mula menaip, bukan hanya apabila panggilan ke pelayan bermula. Tetapkan isLoading: true setiap kali inputValue !== debouncedQuery — kedua-duanya tidak segerak sementara nyah lantun masih menunggu. Setelah pertanyaan stabil dan pengambilan selesai, tetapkan nilainya kembali kepada false. Pengguna akan melihat penunjuk pemuatan yang responsif sepanjang proses.
Pengendali Tatal dengan useThrottle
Kesan paralaks atau bar kemajuan bacaan dikemas kini berdasarkan kedudukan tatal. Hadkan pengendali tatal kepada maksimum 60 bingkai sesaat menggunakan kelewatan 16ms: const throttledScrollY = useThrottle(scrollY, 16). Antara muka pengguna dikemas kini dengan lancar tanpa kos pengiraan semula kedudukan bagi setiap piksel tatal.
Perubahan Saiz Tetingkap dengan useDebounce
Mendengar perubahan saiz tetingkap untuk mengira semula reka letak sebaiknya dilakukan dengan nyah lantun, bukan pendikitan. Pengiraan reka letak hanya perlu dijalankan sekali selepas pengguna selesai mengubah saiz. Gunakan nyah lantun 200ms pada dimensi tetingkap. Semasa pengguna menyeret untuk mengubah saiz, antara muka pengguna boleh memaparkan keadaan yang dipermudah; reka letak yang dikira semula akan muncul apabila perubahan saiz berhenti.
Menggabungkan Nyah Lantun dengan AbortController
Apabila debouncedQuery berubah, cipta AbortController baharu dan hantarkan signalnya kepada fetch(url, { signal }). Kembalikan fungsi pembersihan yang memanggil controller.abort(). Tindakan ini membatalkan sebarang permintaan yang sedang berjalan daripada pertanyaan terdahulu apabila pertanyaan yang dinyah lantun tiba, lalu mengelakkan keadaan perlumbaan apabila respons terdahulu yang perlahan menimpa respons kemudian yang lebih pantas.
Keadaan Perlumbaan Tanpa Abort
Tanpa AbortController, jika pengguna menaip "re", menunggu, kemudian menaip "react", pertanyaan kedua mungkin kembali sebelum pertanyaan pertama (disebabkan oleh pencachean). Hasil carian akan memaparkan hasil React buat sementara waktu, kemudian ditimpa dengan hasil lapuk untuk "re". AbortController menghalang keadaan ini dengan membatalkan permintaan terdahulu sepenuhnya.
Corak Menu Lungsur Autolengkap
Menu lungsur ini menggabungkan nyah lantun untuk panggilan ke pelayan dengan keadaan serta-merta untuk paparan masukan. inputValue mengawal perkara yang muncul dalam medan teks. useDebounce(inputValue, 250) mengawal masa pengambilan cadangan dicetuskan. Senarai cadangan dipaparkan daripada keadaan hasil yang telah diambil, yang berasingan daripada kedua-dua keadaan masukan.
Pengesahan Tak Segerak dengan Had Kadar
Pengesahan borang tak segerak, seperti menyemak sama ada alamat e-mel telah wujud, hendaklah dinyah lantun bagi mengelakkan pelayan dibebankan pada setiap ketikan. Gunakan nyah lantun 400ms pada nilai medan dan hantar permintaan pengesahan dalam useEffect yang bergantung pada nilai yang dinyah lantun. Paparkan pemutar pemuatan dalam medan sementara pengesahan masih menunggu.
Simpan Automatik Borang dengan Nyah Lantun
Nyah lantun amat sesuai untuk menyimpan kandungan borang secara automatik semasa pengguna menaip. Tetapkan nyah lantun 1000ms pada objek nilai borang. Apabila nilai yang dinyah lantun berubah, cetuskan penyimpanan ke localStorage atau titik akhir pelayan. Pengguna akan melihat penunjuk "Menyimpan..." sementara nyah lantun masih menunggu dan "Disimpan" selepas permintaan selesai.
Memilih Kelewatan yang Betul
Nilai kelewatan ialah keputusan pengalaman pengguna. Untuk carian: 200-300ms mengimbangi responsif dengan pengurangan permintaan. Untuk perubahan saiz: 150-200ms boleh diterima kerana pengguna menjangka reka letak menjadi stabil selepas perubahan saiz. Untuk simpan automatik: 1000ms memberikan masa kepada pengguna untuk menaip satu ayat sebelum penyimpanan. Laraskan nilai berdasarkan kelajuan interaksi yang dijangka.
Menggabungkan Pelbagai Teknik
Aplikasi sebenar sering memerlukan beberapa pengoptimuman secara serentak. Penyunting dokumen mungkin menggunakan nyah lantun untuk simpan automatik (1s), pendikitan untuk pengiraan jumlah perkataan (500ms), dan IntersectionObserver untuk analitik. Teknik ini boleh digabungkan dengan baik kerana setiap satunya beroperasi secara berasingan menggunakan pemasa dan skopnya sendiri.
Menggabungkan Nyah Lantun dengan AbortController
Mengapakah anda perlu menggunakan AbortController bersama pertanyaan carian yang dinyah lantun?
Ringkasan Pelajaran: Nyah Lantun dan Pendikitan Praktikal
Gunakan useDebounce untuk masukan carian, pengendali perubahan saiz dan simpan automatik borang. Gunakan useThrottle untuk tatal dan pergerakan tetikus. Sentiasa gabungkan panggilan ke pelayan yang dinyah lantun dengan AbortController bagi mengelakkan keadaan perlumbaan. Paparkan keadaan pemuatan setiap kali inputValue !== debouncedQuery supaya antara muka pengguna kekal responsif dan informatif.
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 “Aplikasi Praktikal: Carian, Tatal, Ubah Saiz” percuma?
Ya — teks penuh “Aplikasi Praktikal: Carian, Tatal, Ubah Saiz” 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 “Aplikasi Praktikal: Carian, Tatal, Ubah Saiz”?
Gunakan nyahpantulan pada input carian dan pendikitan pada pendengar tatal serta ubah saiz dalam contoh komponen sebenar. 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 4 daripada 4.
Berapa lamakah pelajaran “Aplikasi Praktikal: Carian, Tatal, Ubah Saiz” 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
- Mengapa Nyah Denyar dan Pendikit Penting dalam UI
- Melaksanakan Hook Tersuai useDebounce
- Melaksanakan Hook Tersuai useThrottle
- Aplikasi Praktikal: Carian, Tatal, Ubah Saiz