⊗jsrtPmHkUCt 9 of 47 menu

Контекстуални хук useContext у React-у

У овом лекцији наставићемо са радом са контекстом. Сада ћемо изградити стабло компоненти. За почетак у одвојеној датотеци креирајмо React компоненту BigBox:

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

Импортујмо је и сместимо у нашој главној компоненти App:

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

За већу јасноћу мало ћемо стилизовати див-ове. За то креирајмо датотеку styles.css:

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

Не заборавимо да је импортујемо у App.js:

import './styles.css';

Сада у одвојеној датотеци креирајмо компоненту MiddleBox:

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

И ставимо је у велику кутију BigBox:

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

Поновимо исто и са малом кутијом SmallBox:

function SmallBox() { return ( <p>I am ... </p> ); }

Сместимо две такве кутије у MiddleBox:

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

Стабло смо изградили. А сада желимо да из нашег App проследимо, претпоставимо, у SmallBox стринг вредност 'small box :)', без употребе пропса, већ користећи се контекстом (у случају да се наша апликација са кутијама прошири на огромне размере).

Датотеку са контекстом MyContext.js смо већ креирали и повезали на претходној лекцији.

Следећи корак који ћемо урадити је да обавијемо BigBox у провајдер контекста, који је својство нашег објекта контекста MyContext. Сада све компоненте, затворене у ову конструкцију (а то су све кутије, угнежђене у BigBox) моћи ће да добију приступ и да се претплате на промене контекста. Као вредност контекста прослеђујемо жељену 'small box :)':

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

А сада је остало да прочитамо вредност контекста. Желели смо да га користимо у SmallBox, значи да у њу увозимо датотеку контекста MyContext.js и хук useContext:

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

Прочитајмо помоћу useContext вредност контекста у променљиву name:

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

Претплатили смо SmallBox на овај контекст и, ако се он промени, ова компонента ће такође бити ажурирана.

И, коначно, заменимо вредност променљиве name уместо тачака:

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

У празној компоненти App креирајте компоненту Parent, а у њој компоненту Daughter, а у Daughter компоненту Grandson. Користећи контекст, проследите из App вредност године 42, а помоћу useContext прикажите је у компоненти Daughter.

А сада у компоненти Grandson прикажите вредност године, али подељену са 2.

Српски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј