Memahami Kemas Kini Negeri dan Rendering Komponen
Walaupun tidak mendayakan mod ketat secara eksplisit, isu pemaparan komponen dua kali pada setiap kemas kini negeri berpunca daripada penggunaan Mod Ketat React.
Dalam React, komponen Apl dibalut dalam React.Mod Ketat:
ReactDOM.render( <React.StrictMode> <App /> </React.StrictMode>, rootElement );
Menurut dokumentasi React:
Strict Mod tidak dapat mengesan kesan sampingan secara automatik untuk anda, tetapi ia boleh membantu anda mengesannya dengan menjadikannya lebih deterministik. Ini dilakukan dengan menggunakan dua kali fungsi berikut dengan sengaja:
- Nyatakan fungsi pengemas kini (argumen pertama untuk setState)
- Fungsi yang diluluskan kepada useState, useMemo, atau useReducer
Dalam contoh anda, fungsi chaneNumber yang diserahkan kepada pengendali onClick mencetuskan kemas kini keadaan menggunakan useState. Akibatnya, React sengaja menggunakan dua kali fungsi ini dalam mod pembangunan. Inilah yang menyebabkan komponen dipaparkan dua kali pada setiap kemas kini keadaan.
Tingkah laku ini bertujuan untuk membantu pembangun mengenal pasti kesan sampingan atau isu prestasi yang mungkin disebabkan oleh kemas kini negeri. Dengan menjalankan fungsi dua kali, React memastikan bahawa sebarang kesan sampingan 발생 dua kali, menjadikannya lebih mudah untuk nyahpepijat dan menangani sebarang masalah yang mungkin berlaku.
Atas ialah kandungan terperinci Mengapa Komponen Memaparkan Dua Kali pada Setiap Kemas Kini Negeri dalam Mod Ketat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!