Dalam React.js, setiap elemen anak dalam tatasusunan mesti mempunyai prop kunci unik. Kunci ini membantu React mengenal pasti elemen dan menjejaki perubahannya dengan cekap.
Apabila membina komponen dinamik yang menerima sumber data dan memaparkan jadual, adalah penting untuk memberikan kunci unik kepada setiap kanak-kanak. Kegagalan berbuat demikian akan mengakibatkan mesej ralat yang menunjukkan bahawa setiap kanak-kanak memerlukan prop kunci yang unik.
Pertimbangkan komponen React berikut yang menjana jadual boleh diisih:
<table key="thead"> <TableHeader columns={columnNames} /> <tbody key="tbody"> { rows } </tbody> </table>
Setiap baris dalam baris dibina menggunakan komponen dengan kunci:
<TableRowItem key={item.id} data={item} columns={columnNames} />
Ralat kunci berlaku kerana setiap
<TableRowItem key={item.id} data={item} columns={columnNames}> {this.props.columns.map(function(c) { // Add a key here: key={item.id} return <td {this.props.data[c]}></td>; }, this);} </TableRowItem>
Kunci unik adalah penting untuk strategi pengoptimuman React. Dengan menyediakan kunci untuk setiap kanak-kanak, React boleh menjejaki perubahan dengan lebih cekap. Tanpa kekunci, React akan menganggap setiap perubahan seolah-olah ia mempengaruhi keseluruhan tatasusunan, mengakibatkan pemaparan semula keseluruhan senarai yang tidak perlu, yang boleh menjejaskan prestasi.
Dalam contoh yang diberikan sebelum ini, setiap baris harus mempunyai kunci , serta setiap
<TableRowItem key={item.id} data={item} columns={columnNames}> {this.props.columns.map(function(c) { // Add a key to each <td> element: key={item.id} return <td key={item.id}>{this.props.data[c]}</td>; }, this);} </TableRowItem>
Dengan memberikan kunci unik kepada kedua-dua baris dan sel individu, React boleh mengendalikan kemas kini dengan lebih cekap, memastikan prestasi optimum komponen jadual.
Atas ialah kandungan terperinci Mengapa Kunci Unik Penting untuk Penyampaian Cekap Kanak-Kanak Susunan dalam Reaksi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!