⊗jsrtPmHkUCt 9 of 47 menu

useContext Hook i React

I denne lektion fortsætter vi arbejdet med kontekst. Nu vil vi bygge et træ af komponenter. Til at starte med, i en separat fil, opretter vi React komponenten BigBox:

function BigBox() { return ( <p>bigbox</p> ); }

Vi importerer den og placerer den i vores hovedkomponent App:

import BigBox from './BigBox'; function App() { return ( <BigBox /> ); }

For mere klarhed vil vi style div'ene lidt. For at gøre dette opretter vi filen styles.css:

div { border: 1px solid blue; margin: 10px; text-align: center; max-width: 300px; }

Husk at importere den i App.js:

import './styles.css';

Nu i en separat fil opretter vi komponenten MiddleBox:

function MiddleBox() { return ( <p>middlebox</p> ); }

Og lægger den i den store kasse BigBox:

import MiddleBox from './MiddleBox'; function BigBox() { return ( <div> <MiddleBox /> </div> ); }

Vi gør det samme med den lille kasse SmallBox:

function SmallBox() { return ( <p>Jeg er ... </p> ); }

Vi placerer to sådanne kasser i MiddleBox:

import SmallBox from './SmallBox'; function MiddleBox() { return ( <div> <SmallBox /> <SmallBox /> </div> ); }

Træet har vi bygget. Og nu vil vi fra vores App sende, for eksempel, til SmallBox en streng værdi 'small box :)', uden at bruge props, men ved at bruge kontekst (hvad nu hvis vores kasse applikation vokser sig enorm stor).

Filen med konteksten MyContext.js har vi allerede oprettet og tilsluttet i den forrige lektion.

Næste skridt, som vi vil tage - er at indpakke BigBox i en kontekst provider, som er en egenskab ved vores kontekst objekt MyContext. Nu kan alle komponenter, der er indeholdt i denne konstruktion (og det er alle kasser, nestede i BigBox) få adgang og abonnere på ændringer i konteksten. Som værdi for konteksten sender vi den ønskede 'small box :)':

function App() { return ( <MyContext.Provider value="small box :)"> <BigBox /> </MyContext.Provider> ); }

Og nu er der kun tilbage at læse værdien af konteksten. Vi ville bruge den i SmallBox, så vi importerer kontekstfilen MyContext.js og hook useContext derind:

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

Vi læser med useContext kontekstværdien i variablen name:

function SmallBox() { const name = useContext(MyContext); return ( <div> <p>Jeg er ... </p> </div> ); }

Vi har abonneret SmallBox på denne kontekst og, hvis den ændres, vil dette komponent også blive opdateret.

Og endelig indsætter vi værdien af variablen name i stedet for ellipsen:

function SmallBox() { const name = useContext(MyContext); return ( <div> <p>Jeg er {name} </p> </div> ); }

I den tomme komponent App, opret komponenten Parent, og i den komponenten Daughter, og i Daughter komponenten Grandson. Brug kontekst til at sende fra App værdien alder 42, og brug useContext til at vise den i komponenten Daughter.

Og nu i komponenten Grandson vis værdien af alderen, men divideret med 2.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis