Segundo a documentação do React, Context provê uma forma de passar dados através da árvore de componentes sem a necessidade de passar esses dados através das props por cada nível desejado.
O que isto significa? Significa que usando o context, você tem um ponto focal de acesso a informação. Se você quiser acessar determinada informação, basta apontar diretamente para o context!
Com ele, conseguimos facilitar em muito nosso desenvolvimento!
Vamos imaginar que queremos criar um context de informação do usuário logado.
Essa informação usaremos através de toda a aplicação, então queremos mante-la em um ponto.
Aqui está a grande sacada do context! Não necessariamente precisamos passar APENAS valores dentro dele, podemos passar também FUNÇÕES!
Então, no nosso caso, vamos passar duas funções que queremos que sejam lidadas dentro de App.js, a função de logout e a função para lidar com login, chamada handleUserContext
Dessa maneira, nosso context tem acesso a essas funções e ao estado do usuário!
Agora que temos isso, conseguimos fazer a chamada de login em nosso componente de login e atualizar o nosso estado, que nos retorna o usuário logado! Vamos então nesse componente importar nosso context:
try { // Realizamos o login no back-end const loggedUser = await api.post("/session", formValues); const usarData = await api.get(`/users/${loggedUser.data.user.id}`);
// Acessamos a função criada previamente // e usamos o context para atualizar o valor currentlyUser.handleUserContext(usarData.data); } catch (err) { toast.error(err?.response?.data?.error); } }; }
Viu como é fácil usar o context? Além de ajudar muito nosso desenvolvimento, é muito prático!
Victor Jordan
Engenheiro Front-end no Mercado Livre e pós-graduado em Engenharia de Software pela PUC-MG e formado em Banco de Dados pela Fatec, apaixonado por usabilidade, performance e UX!