Rumah > hujung hadapan web > tutorial js > Adakah React Sentiasa Memaparkan Semula Komponen pada Perubahan Negeri?

Adakah React Sentiasa Memaparkan Semula Komponen pada Perubahan Negeri?

Susan Sarandon
Lepaskan: 2024-11-12 21:41:02
asal
621 orang telah melayarinya

Does React Always Re-render Components on State Change?

ReactJS - React Memaparkan Semula Semua Komponen pada Perubahan Keadaan

Adakah React sentiasa memaparkan semula komponen apabila seruan setState?

Ya, ia berlaku, secara lalai.

React menggunakan kaedah shouldComponentUpdate dalam setiap komponen, bertanggungjawab untuk menentukan sama ada ia perlu dipaparkan semula apabila keadaan atau propnya berubah. Walau bagaimanapun, pelaksanaan lalai kaedah ini sentiasa kembali benar, membawa kepada pemaparan semula setiap kali.

Mengapa React memaparkan semula walaupun keadaan kekal tidak berubah?

Proses pemaparan semula terdiri daripada dua peringkat:

  1. Penyampaian DOM Maya: Selepas penyampaian seruan, React mencipta struktur DOM maya baharu. Ambil perhatian bahawa ini berlaku apabila setState() dipanggil, tanpa mengira perubahan sebenar keadaan.
  2. Rendering DOM Asli: React mengemas kini DOM sebenar hanya apabila perlu, berdasarkan perubahan DOM maya. Di sinilah keupayaan pengoptimuman React dimainkan, meminimumkan mutasi DOM.

Dalam contoh yang diberikan, kedua-dua komponen Utama dan TimeInChild dipaparkan semula apabila butang diklik, walaupun dalam keadaan tidak berubah, kerana pelaksanaan lalai daripada shouldComponentUpdate mengembalikan benar. Untuk mengelakkan ini, anda boleh mengatasi shouldComponentUpdate untuk melakukan perbandingan keadaan atau prop dan mengembalikan palsu apabila tiada perubahan bermakna.

Atas ialah kandungan terperinci Adakah React Sentiasa Memaparkan Semula Komponen pada Perubahan Negeri?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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