Elakkan Fungsi Anak Panah dan Ikat dalam JSX Props untuk Prestasi Optimum
Alat lint React bertujuan untuk meningkatkan amalan kod dengan menyerlahkan isu yang berpotensi. Satu mesej ralat biasa ialah "Prop JSX tidak boleh menggunakan fungsi anak panah." Ini menunjukkan kesan buruk menggunakan fungsi anak panah atau mengikat dalam prop JSX.
Mengapa Fungsi Anak Panah dan Prestasi Menghalang Pengikat
Menggabungkan fungsi anak panah atau mengikat ke dalam prop JSX mempunyai implikasi prestasi:
Kesan Pengendali Sebaris terhadap Perenderan Semula
Pertimbangkan contoh berikut:
Contoh 1: PureComponent tanpa Pengendali Sebaris
class Button extends React.PureComponent { render() { const { onClick } = this.props; console.log('render button'); return <button onClick={onClick}>Click</button>; } }
Dalam kod ini, komponen Button hanya dipaparkan semula apabila propnya berubah, seperti yang dijangkakan untuk PureComponent .
Contoh 2: PureComponent dengan Pengendali Sebaris
const Button = (props) => { console.log('render button'); return <button onClick={() => props.onClick()}>Click</button>; };
Disebabkan oleh fungsi anak panah sebaris, Button kini dipaparkan semula setiap kali, walaupun keadaan komponen kekal tidak berubah. Penyampaian semula yang tidak perlu ini boleh memberi kesan ketara kepada prestasi.
Amalan Terbaik
Untuk mengelakkan isu prestasi ini, adalah disyorkan untuk mematuhi amalan terbaik berikut:
Atas ialah kandungan terperinci Mengapa Anak Panah Berfungsi dan Mengikat Menyebabkan Isu Prestasi dalam JSX Props?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!