⊗jsrtPmHkUCt 9 of 47 menu

Hook kontekstu useContext w React

W tej lekcji kontynuujemy pracę z kontekstem. Teraz zbudujemy drzewo komponentów. Na początku w osobnym pliku utwórzmy komponent React BigBox:

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

Zaimportujmy go i umieśćmy w naszym głównym komponencie App:

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

Dla większej przejrzystości nieco ostylujmy divy. W tym celu utwórzmy plik styles.css:

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

Nie zapomnijmy go zaimportować w App.js:

import './styles.css';

Teraz w osobnym pliku utwórzmy komponent MiddleBox:

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

I umieśćmy go w dużym pudełku BigBox:

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

Zróbmy to samo z małym pudełeczkiem SmallBox:

function SmallBox() { return ( <p>Ja jestem ... </p> ); }

Umieśćmy dwa takie pudełeczka w MiddleBox:

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

Drzewo zbudowaliśmy. A teraz chcemy z naszego App przekazać, przypuśćmy, do SmallBox łańcuchową wartość 'small box :)', nie używając propsów, a korzystając z kontekstu (nagle nasza pudełkowa aplikacja rozrośnie się do ogromnych rozmiarów).

Plik z kontekstem MyContext.js my już utworzyliśmy i podłączyliśmy w poprzedniej lekcji.

Następny krok, który zrobimy - opakujemy BigBox w dostawcę kontekstu, który jest właściwością naszego obiektu kontekstu MyContext. Teraz wszystkie komponenty, zawarte w tej konstrukcji (a to i wszystkie pudełeczka, zagnieżdżone w BigBox) będą mogły uzyskać dostęp i subskrybować zmiany kontekstu. Jako wartość kontekstu przekazujemy pożądaną 'small box :)':

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

A teraz pozostało odczytać wartość kontekstu. Chcieliśmy użyć jej w SmallBox, więc zaimportujmy tam plik kontekstu MyContext.js i hook useContext:

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

Odczytywanie za pomocą useContext wartości kontekstu do zmiennej name:

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

Subskrybowaliśmy SmallBox na ten kontekst i, jeśli się zmieni, ten komponent również zostanie zaktualizowany.

I, na koniec, podstawiamy wartość zmiennej name zamiast wielokropka:

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

W pustym komponencie App utwórz komponent Parent, a w nim komponent Daughter, a w Daughter komponent Grandson. Używając kontekstu, przekaż z App wartość wieku 42, a za pomocą useContext wyświetl go w komponencie Daughter.

A teraz w komponencie Grandson wyświetl wartość wieku, ale podzieloną przez 2.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć