devterview_$ iniciar simulação

`setContext`/`getContext` x stores no Svelte

MédioPlenoEstado

Pergunta

Qual a diferença entre a Context API do Svelte (`setContext`/`getContext`) e uma store, e quando usar cada uma?

Resposta esperada

Store: um objeto reativo global (ou de módulo) — qualquer arquivo que importa a store lê e escreve o mesmo estado. Bom pra estado de app (tema, usuário) que não tem 'dono' numa árvore. Context (`setContext(chave, valor)` num componente pai, `getContext(chave)` nos descendentes): passa algo pela ÁRVORE de componentes, disponível só pra aquele subtree, resolvido na montagem. Bom pra: dar a um grupo de componentes acesso a uma instância que pertence ao pai (um form controller, um estado de tab group, um cliente configurado) sem prop drilling, e pra ter MÚLTIPLAS instâncias independentes na página (dois tab groups não compartilham contexto). Context não é reativo por si só — se o valor precisa mudar e propagar, você põe uma STORE dentro do context. Regra: escopo global sem dono → store; escopo de subárvore, possivelmente múltiplas instâncias → context (com store dentro se precisa reatividade).

Por que perguntam isso

Pergunta pleno de Svelte. Sinal de domínio: 'context não é reativo, ponha store dentro' e 'múltiplas instâncias na página'.

#context-api#stores#escopo
publicidade

Relacionadas