M.
HomeProjectsBlogMarketplaceAbout
ContactGet my CV

Built by Mário Afonso. The source code is available on GitHub.

← Back to Blog
FullStack
February 10, 2026

Contextos em React

Como Funcionam Contextos em React?

Como Funcionam Contextos em React

A biblioteca React se tornou uma das ferramentas mais populares para o desenvolvimento de interfaces de usuário, permitindo que os desenvolvedores construam aplicações web dinâmicas e responsivas. Uma das características mais poderosas do React é seu sistema de gerenciamento de estado, e dentro desse contexto, os Contextos desempenham um papel crucial. Neste post, vamos explorar como funcionam os contextos em React, como utilizá-los e quando são mais apropriados.

Introdução

O sistema de gerenciamento de estado do React pode ser complexo, especialmente quando lidamos com aplicações maiores. Às vezes, o estado precisa ser compartilhado entre múltiplos componentes em diferentes níveis da árvore de componentes, e isso pode levar a uma série de props drilling (o ato de passar propriedades de um componente pai para um componente filho, e assim por diante). É aí que os contextos entram em cena.

Os contextos permitem que você compartilhe valores entre componentes sem a necessidade de passar props manualmente em cada nível. Isso não apenas simplifica o gerenciamento de estado, mas também melhora a legibilidade e a manutenibilidade do seu código.

O Que É o Contexto?

O Contexto em React é uma forma de passar dados através da árvore de componentes sem ter que passar props manualmente em cada nível. Ele é especialmente útil quando você precisa compartilhar dados que podem ser considerados "globais" para uma árvore de componentes, como informações sobre o usuário autenticado, temas ou preferências de linguagem.

Criando um Contexto

Para criar um contexto em React, você pode usar a função createContext() que retorna um objeto com duas propriedades principais: Provider e Consumer.

Aqui está um exemplo básico de como criar e utilizar um contexto:

import React, { createContext, useState, useContext } from 'react'; // 1. Criando o Contexto const ThemeContext = createContext(); // 2. Criando um Provider const ThemeProvider = ({ children }) => { const [theme, setTheme] = useState('light'); const toggleTheme = () => { setTheme((prevTheme) => (prevTheme === 'light' ? 'dark' : 'light')); }; return ( <ThemeContext.Provider value={{ theme, toggleTheme }}> {children} </ThemeContext.Provider> ); }; // 3. Criando um componente que consome o contexto const ThemedComponent = () => { const { theme, toggleTheme } = useContext(ThemeContext); return ( <div style={{ background: theme === 'light' ? '#fff' : '#333', color: theme === 'light' ? '#000' : '#fff' }}> <p>O tema atual é {theme}</p> <button onClick={toggleTheme}>Alternar Tema</button> </div> ); }; // 4. Usando o Provider no aplicativo const App = () => { return ( <ThemeProvider> <ThemedComponent /> </ThemeProvider> ); }; export default App;

Explicação do Código

  1. Criando o Contexto: Utilizamos createContext() para criar um novo contexto chamado ThemeContext.
  2. Provider: O componente ThemeProvider encapsula a lógica de estado. Ele mantém o estado do tema e fornece uma função para alterná-lo.
  3. Consumer: O componente ThemedComponent utiliza o hook useContext para acessar o valor do contexto e renderizar o tema atual.
  4. Usando o Provider: O ThemeProvider é utilizado para envolver o componente principal da aplicação, permitindo que todos os componentes filhos acessem o contexto.

Quando Usar Contextos?

Os contextos são ideais para dados que:

  • Precisam ser acessíveis em muitos níveis da árvore de componentes.
  • São considerados globais, como informações de autenticação ou configurações de tema.
  • Não mudam com frequência, já que atualizações de contexto causam re-renderizações nos componentes que o consomem.

Por outro lado, se você está lidando com dados que mudam frequentemente ou que são específicos de um único componente, pode ser mais eficiente usar o estado local ou uma biblioteca de gerenciamento de estado como Redux ou MobX.

Conclusão

Os contextos em React são uma ferramenta poderosa que permite compartilhar dados entre componentes de forma eficiente e limpa. Ao entender como funcionam e quando utilizá-los, você pode melhorar a arquitetura das suas aplicações e evitar os problemas que surgem com o props drilling. Lembre-se de que, embora os contextos sejam úteis, também é importante considerar o desempenho e a complexidade da sua aplicação ao decidir a melhor maneira de gerenciar o estado.

Se você ainda não experimentou contextos em seus projetos React, agora é um ótimo momento para começar!

Written by

Mário Afonso

View All PostsGet in Touch