⊗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>Мен ... </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>Мен ... </p> </div> ); }

Біз SmallBox-ті осы контекстке жазылдық және егер ол өзгерсе, бұл компонент де жаңартылады.

Соңында, үш нүктенің орнына name айнымалысының мәнін қоямыз:

function SmallBox() { const name = useContext(MyContext); return ( <div> <p>Мен {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çeЎзбекOʻzbekTiếng Việt
Біз сайттың жұмысы, аналитика және персонализация үшін cookie файлдарын қолданамыз. Деректерді өңдеу Құпиялылық саясаты бойынша жүреді.
барлығын қабылдау баптау қабылдамау