⊗jsrtPmHkCxt 8 of 47 menu

Konteksti Reactissa

Ennen kuin siirrymme seuraavan koukun opiskeluun, meidän on tarkasteltava kontekstin käsitettä Reactissa.

Yleensä siirsimme tietoja vanhemmista komponenteista lapsikomponenteihin käyttämällä propseja. Tämä menetelmä on hyvä, jos sinulla on vähän komponentteja ja sinun ei tarvitse välittää propseja vanhemmasta haluttuun komponenttiin lapsen kautta enemmän kuin 2-3 kertaa.

Tämä menetelmä voi myös olla erittäin hankala ja johtaa erilaisiin ongelmiin, jos välikomponenteissa näitä propseja ei käytetä ollenkaan (tällaista ongelmaa kutsutaan prop drilling:ksi), tai sinun täytyy välittää samoja tietoja suurelle määrälle komponentteja.

Näissä tapauksissa konteksti voi auttaa meitä, joka mahdollistaa vanhemman komponentin tietojen saatavuuden mille tahansa lapsikomponentille, riippumatta sen sijainnista komponenttipuussa, ilman että niitä välitetään propseilla. Vastaavasti tietoja vastaanottavat vain ne komponentit, jotka tarvitsevat niitä.

Kontekstin käyttämiseksi se on luotava. Aluksi, luodaan tiedosto MyContext.js ja tuodaan siihen funktio createContext:

import { createContext } from 'react';

Luodaan nyt kontekstiolio, kirjoitetaan se muuttujaan MyContext, jonka emme saa unohtaa viedä. Meidän tapauksessamme, asetimme createContext:iin alkuarvon null, koska se ei ole meille periaatteellinen (olisi voinut jättää vain tyhjät sulkeet). Oletusarvo ilmestyy kontekstia luettaessa, jos ei löydy muita arvoja. Tämä arvo voi olla minkä tyyppinen tahansa:

export const MyContext = createContext(null);

Seuraavassa oppitunnissa luomme sovelluksen useista komponenteista, jotka sijaitsevat erillisissä tiedostoissa. Jos kaikki komponentit olisivat yhdessä tiedostossa, emme myöskään kontekstin luomiseksi olisi tehneet erillistä tiedostoa emmekä olisi vientiä sitä.

Tuodaan nyt MyContext.js tyhjään komponenttiin App - siihen komponenttiin, josta aiomme lähettää tietoja:

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

Luo tiedosto MyContext.js ja tuo se tyhjään komponenttiin App, kuten oppitunnissa kuvattu.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää