⊗jsrtPmHkCxt 8 of 47 menu

Muktadha katika React

Kabla ya kuendelea na usomaji wa hook inayofuata, inatubidi tuchunguze dhana ya muktadha katika React.

Kawaida tulihamisha data kutoka kwa vilengwa vya mzazi hadi vya watoto kwa kutumia props. Njia hii ni nzuri ikiwa una vilengwa vichache na hauitaji kupitisha props kutoka kwa mzazi hadi kwa lengwa unalolitaka kupitia vilengwa vya watoto zaidi ya 2-3 mara.

Njia hii pia inaweza kuwa isiyofaa kabisa na kusababisha matatizo mbalimbali, ikiwa katika vilengwa vya kati hizi props hazitumiki kabisa (tatizo kama hilo linaitwa prop drilling), au unahitaji kuhamisha data ile ile kwa idadi kubwa ya vilengwa.

Katika hali hizi, muktadha unaweza kusaidia, ambao huruhusu data ya lengwa la mzazi iwapatikane kwa lengwa lolote la mtoto, bila kujali mahali palipo kwenye mti wa vilengwa, bila ya kuzipitia props. Kwa hiyo, data zitakubaliwa na vilengwa tu vinavyohitaji data hizo.

Ili kutumia muktadha, inabidi kuunda. Kwanza, tuunde faili MyContext.js na tuimporte ndani yake kitendo createContext:

import { createContext } from 'react';

Sasa tuunde kitu cha muktadha, tukiandika kwenye kutofautisha MyContext, ambacho tusisahau kuexport. Katika kesi yetu, tumeweka katika createContext thamani ya kuanzia null, kwani haina umuhimu kwetu (ingeweza kuachwa mabano tupu). Thamani iliyowekwa chaguomsingi itaonekana wakati wa kusoma muktadha, ikiwa hakuta muktadha mwingine wowote. Thamani hii inaweza kuwa ya aina yoyote:

export const MyContext = createContext(null);

Katika somo linalofuata tutaunda programu kutoka kwa vilengwa kadhaa, vilivyo kwenye faili tofauti. Ikiwa vilengwa vyote vingalikuwa kwenye faili moja, basi kwa ajili ya kuunda muktadha tusingalifanya faili tofauti na tusingaliexport.

Sasa hebu tuimporte MyContext.js ndani ya lengwa tupu App - ndani ya lengwa ambalo tunakusudia kutuma data:

import { MyContext } from './MyContext.js';

Unda faili MyContext.js na uiimporte kwenye lengwa tupu App, kama ilivyoelezwa kwenye somo.

Kiswahili
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Tunatumia kuki kwa ajili ya uendeshaji wa tovuti, uchambuzi na ubinafsishaji. Usindikaji wa data unafanyika kulingana na Sera ya Faragha.
kubali yote sanidi kataa