⊗jsrtPmHkUCt 9 of 47 menu

O Hook de Contexto useContext no React

Nesta lição, continuaremos trabalhando com contexto. Agora vamos construir uma árvore de componentes. Para começar, crie um componente React BigBox em um arquivo separado:

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

Vamos importá-lo e colocá-lo em nosso componente principal App:

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

Para maior clareza, vamos aplicar alguns estilos aos divs. Para isso, crie um arquivo styles.css:

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

Vamos lembrar de importá-lo em App.js:

import './styles.css';

Agora, crie um componente MiddleBox em um arquivo separado:

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

E vamos colocá-lo na grande caixa BigBox:

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

Vamos fazer a mesma coisa com a pequena caixinha SmallBox:

function SmallBox() { return ( <p>Eu sou ... </p> ); }

Vamos colocar duas dessas caixinhas no MiddleBox:

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

A árvore está construída. E agora nós queremos passar do nosso App, digamos, para o SmallBox um valor de string 'small box :)', sem usar props, mas usando contexto (caso nosso aplicativo de caixas cresça para um tamanho enorme).

Já criamos e conectamos o arquivo de contexto MyContext.js na lição anterior.

O próximo passo que daremos - é envolver BigBox no provedor de contexto, que é uma propriedade do nosso objeto de contexto MyContext. Agora todos os componentes envolvidos por esta construção (e isso inclui todas as caixas aninhadas dentro de BigBox) poderão acessar e se inscrever para mudanças no contexto. Como valor do contexto, passamos o desejado 'small box :)':

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

E agora só falta ler o valor do contexto. Queríamos usá-lo no SmallBox, então vamos importar o arquivo de contexto MyContext.js e o hook useContext para lá:

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

Vamos ler usando useContext o valor do contexto na variável name:

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

Nós inscrevemos o SmallBox neste contexto e, se ele mudar, este componente também será atualizado.

E, finalmente, substituímos o valor da variável name no lugar das reticências:

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

No componente vazio App, crie um componente Parent, e dentro dele um componente Daughter, e em Daughter um componente Grandson. Usando contexto, passe de App o valor de idade 42, e com useContext exiba-o no componente Daughter.

E agora, no componente Grandson, exiba o valor da idade, mas dividido por 2.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar