⊗jsrtPmHkUCt 9 of 47 menu

React-ի useContext կոնտեքստի հուքը

Այս դասում մենք կշարունակենք աշխատել կոնտեքստի հետ: Այժմ կկառուցենք կոմպոնենտների ծառ: Սկսելու համար առանձին ֆայլում կստեղծենք React կոմպոնենտ BigBox:

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

Եկեք այն իմպորտ անենք և տեղադրենք մեր գլխավոր App կոմպոնենտում:

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

Ավելի պարզ դարձնելու համար եկեք մի փոքր ստիլիզացնենք div-երը: Դրա համար կստեղծենք 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हिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել