Cenário: Context faz meia tela re-renderizar
Pergunta
Você põe o estado de tema e o de usuário num único Context, e agora componentes re-renderizam demais. Por quê, e como resolver?
Resposta esperada
Todo componente que consome um Context re-renderiza sempre que o VALOR do Provider muda por identidade — e se você passa um objeto novo (`value={{ tema, setTema, user, setUser }}`) a cada render do Provider, isso é sempre. Além disso, juntar coisas não relacionadas (tema + user) num Context faz uma mudança de tema re-renderizar quem só usa o user. Soluções: (1) memoizar o `value` do Provider (`useMemo`) pra não trocar identidade à toa; (2) separar em Contexts por preocupação (ThemeContext, UserContext) pra cada consumidor só reagir ao que usa; (3) pra estado que muda muito, considerar uma lib de estado com selectors (Zustand, Redux Toolkit, Jotai) que só re-renderiza quem lê a fatia que mudou; (4) dividir 'state' e 'dispatch' em dois Contexts (quem só faz dispatch não re-renderiza com a mudança de state). Context é bom pra valores que mudam pouco (tema, locale, user), não pra estado de alta frequência.
Por que perguntam isso
Cenário pleno/sênior de React. Sinais de domínio: 'value memoizado', 'Context por preocupação', 'split state/dispatch', e 'Context não é pra estado de alta frequência'.