Kwa Nini Unahitaji React Key Prop

Unaona onyo hili kwenye console yako: "Each child in a list should have a unique 'key' prop."

Waendelezaji wengi huipuuza. Hili ni kosa. Key prop si onyo tu. Ni chombo cha kuongeza utendaji (performance) na kuzuia hitilafu (bugs).

Key prop hufanya nini?

React hutumia key kutambua vipengele vya orodha. Inaiambia React ni kipengele gani kilichobadilika, kilichohamishwa, au kilichofutwa.

Bila key, React lazima i-re-render orodha nzima. Hii inafanya programu yako iwe nzito na kusababisha hitilafu za data.

Mfano wa Maktaba

Fikiria maktaba yenye vitabu 1,000. Ukiongeza kitabu kipya katikati, lazima usogeze kila kitabu kingine ili kupata nafasi.

Katika React, key hufanya kazi kama ID ya kipekee. Inatoa utambulisho kwa kila kipengele. Wakati wa mchakato wa reconciliation, React inalinganisha orodha mpya na ile ya zamani.

Tatizo la Kukosa Keys

Ukiruka key, React hudhani kila kipengele ni kilekile. Ukiongeza kipengele kimoja mwanzoni, React hudhani orodha nzima imebadilika. Inatengeneza upya kila kipengele kwenye DOM. Hii inapoteza kumbukumbu (memory) na CPU.

Mtego wa Index

Waendelezaji wapya mara nyingi hutumia array index kama key. Mfano: key={index}

Hii ni hatari kwa orodha zinazobadilika (dynamic lists). Ukipanga (sort), kuchuja (filter), au kufuta vipengele, index inabadilika. Hii husababisha hali zisizo sahihi za UI na hitilafu.

Mbinu Bora za Kutumia Keys

  • Tumia ID thabiti kutoka kwenye kanzidata yako (kama user.id).
  • Hakikisha keys ni za kipekee miongoni mwa ndugu (siblings).
  • Epuka kutumia Math.random() kama key. Inabadilika kila wakati inapo-render na kusababisha UI kuwaka-waka (flickering).
  • Ikiwa data yako haina ID, tengeneza moja ukitumia uuid au nanoid unapopata data.

Mwongozo wa Kuchagua Key

Database ID: Bora zaidi. Ni thabiti sana na ya haraka. • Array Index: Tumia tu kwa orodha zisizobadilika (static lists) ambazo hazibadiliki kamwe. • Math.random(): Epuka. Inalazimisha re-mounts zisizo za lazima.

Muhtasari

Key nzuri inafanya programu yako iwe ya haraka zaidi. Inaweza kuokoa hadi 40% ya re-renders zisizo za lazima. Daima vipaumbele viashiria (identifiers) thabiti na vya kipekee.

Chanzo: https://dev.to/banti_kevat_8e2d123bb7994/react-me-key-prop-kyun-zaroori-hai-warning-solve-in-hindi-49dk