Memahami Double Render dalam useState
Dalam React, cangkuk useState biasanya digunakan untuk mengurus keadaan komponen. Walau bagaimanapun, dalam keadaan tertentu, anda mungkin mendapati bahawa komponen yang diberikan dengan useState menghasilkan dua kali untuk setiap kemas kini keadaan. Tingkah laku ini telah mengelirukan ramai pembangun yang tidak mendayakan Mod Ketat. Mengapa ini berlaku?
Peranan Mod Ketat
Bertentangan dengan andaian bahawa Mod Ketat tidak didayakan, kod anda sebenarnya berjalan di bawah kekangannya. Secara lalai, versi moden React secara tersirat membalut komponen paling luar dalam
Double Function Invocation dalam Strict Mode
Dokumentasi React secara eksplisit menyatakan bahawa Strict Mode sengaja "menggandakan" fungsi tertentu, termasuk fungsi pengemas kini keadaan yang diluluskan kepada setState dan useState. Ini bermakna setiap kali anda memanggil setNumber dalam kod anda, ia sedang digunakan dua kali.
Akibat Doa Berganda
Seruan berganda ini membawa kepada komponen dipaparkan dua kali. Tingkah laku ini bertujuan untuk membantu pembangun mengesan potensi kesan sampingan dengan menjadikannya lebih deterministik. Secara lalai, React menangguhkan kemas kini apabila menggunakan cangkuk useState. Walau bagaimanapun, Mod Ketat memintas gelagat ini, menyebabkan pemaparan berlaku dua kali.
Kesimpulan
Ringkasnya, pemaparan berganda komponen menggunakan useState adalah akibat daripada menjalankan anda kod di bawah Mod Ketat React. Walaupun ia mungkin kelihatan tidak dijangka, tingkah laku ini disengajakan dan direka untuk meningkatkan keupayaan penyahpepijatan dengan menjadikan kesan sampingan lebih jelas.
Atas ialah kandungan terperinci Mengapa Menggunakan Komponen Render Negeri Dua Kali dalam Mod Ketat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!