Rumah > hujung hadapan web > tutorial js > Adakah React Re-render Komponen Selepas Setiap Panggilan `setState()`?

Adakah React Re-render Komponen Selepas Setiap Panggilan `setState()`?

Mary-Kate Olsen
Lepaskan: 2024-11-29 00:20:11
asal
551 orang telah melayarinya

Does React Re-render Components After Every `setState()` Call?

ReactJS: React Rendering Selepas Panggilan "setState"

Pertanyaan: React Re-rendering dengan "setState"

Adakah React memaparkan semula semua komponen dan subkomponennya apabila "setState()" adalah digunakan?

Penjelasan:

Ya, React mencetuskan pemaparan semula secara lalai selepas "setState()" dipanggil.

Sebab untuk Gelagat Lalai:

Walaupun React bertujuan untuk mengoptimumkan pemaparan, ia menghalang pepijat halus yang disebabkan oleh mutasi keadaan dengan sentiasa jalankan semula kaedah "render" apabila keadaan berubah.

Kaedah ShouldComponentUpdate:

Setiap komponen mempunyai kaedah yang dipanggil "shouldComponentUpdate(nextProps, nextState)". Kaedah ini menentukan sama ada untuk menjalankan semula "render" berdasarkan perubahan pada prop dan keadaan.

Pelaksanaan Lalai ShouldComponentUpdate:

Secara lalai, "shouldComponentUpdate" mengembalikan benar, memastikan pemaparan semula berlaku setiap kali keadaan atau props tukar.

Contoh:

Dalam coretan kod yang disediakan, komponen Utama menetapkan keadaannya kepada nilai yang sama ('saya') apabila teks diklik. Walaupun keadaan tidak berubah, React masih memaparkan semula kedua-dua komponen Utama dan TimeInChild kerana "shouldComponentUpdate" mengembalikan benar secara lalai.

Pelaksanaan ShouldComponentUpdate Tersuai:

Anda boleh mengoptimumkan pemaparan dengan menulis pelaksanaan tersuai "shouldComponentUpdate" yang membandingkan prop dan keadaan lama dan baharu untuk menentukan sama ada paparan semula sebenar adalah perlu.

Atas ialah kandungan terperinci Adakah React Re-render Komponen Selepas Setiap Panggilan `setState()`?. 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