Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jsrtPmHkUCt 9 of 47 menu
◀ ▶

Контекст hook 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 и hook-от 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šuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј