⊗jsrtPmHkUCt 9 of 47 menu

Reactда useContext контекст хуки

Бу дарсда биз контекст билан ишлашни давом эттирурмиз. Энди компонентлар дарахтини курамиз. Бошлаш учун алохида файлда 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>Men ... </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>Men ... </p> </div> ); }

Биз SmallBoxни бу контекстга обуна қилдик ва, агар у ўзгарса, бу компонент ҳам янгиланади.

Ва, ниҳоят, ўзгарувчи қийматини name учнуқ нуқталар ўрнига қўямиз:

function SmallBox() { const name = useContext(MyContext); return ( <div> <p>Men {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ščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeOʻzbekTiếng Việt
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш