⊗jsrtPmHkUCt 9 of 47 menu

Hook del contesto useContext in React

In questa lezione continueremo a lavorare con il contesto. Ora costruiremo un albero di componenti. Per iniziare, in un file separato creeremo il componente React BigBox:

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

Importiamolo e posizioniamolo nel nostro componente principale App:

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

Per maggiore chiarezza, applicheremo un po' di stili ai div. Per fare ciò, creiamo il file styles.css:

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

Non dimentichiamo di importarlo in App.js:

import './styles.css';

Ora in un file separato creiamo il componente MiddleBox:

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

E inseriamolo nella scatola grande BigBox:

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

Ripetiamo la stessa cosa con la scatola piccola SmallBox:

function SmallBox() { return ( <p>Io sono ... </p> ); }

Posizioniamo due di queste scatole in MiddleBox:

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

L'albero è costruito. E ora vogliamo passare dal nostro App, supponiamo, a SmallBox un valore stringa 'small box :)', senza utilizzare le props, ma utilizzando il contesto (nel caso in cui la nostra applicazione a scatole cresca fino a dimensioni enormi).

Il file con il contesto MyContext.js lo abbiamo già creato e collegato nella lezione precedente.

Il prossimo passo che faremo è avvolgere BigBox nel provider del contesto, che è una proprietà del nostro oggetto contesto MyContext. Ora tutti i componenti racchiusi in questa costruzione (e quindi tutte le scatole annidate in BigBox) potranno accedere e sottoscriversi alle modifiche del contesto. Come valore del contesto passiamo il desiderato 'small box :)':

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

E ora non resta che leggere il valore del contesto. Volevamo usarlo in SmallBox, quindi importiamo lì il file contesto MyContext.js e l'hook useContext:

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

Leggiamo usando useContext il valore del contesto nella variabile name:

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

Abbiamo sottoscritto SmallBox a questo contesto e, se cambia, anche questo componente verrà aggiornato.

E, infine, sostituiamo il valore della variabile name ai puntini di sospensione:

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

In un componente vuoto App create il componente Parent, e in esso il componente Daughter, e in Daughter il componente Grandson. Utilizzando il contesto, trasmettete da App il valore dell'età 42, e con l'aiuto di useContext visualizzatelo nel componente Daughter.

E ora nel componente Grandson visualizzate il valore dell'età, ma diviso per 2.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta