Reducer Patterns Padrões de Redutor
Última atualização: 2026-11-03
Reducer Patterns Padrões de Redutor
Alguns padrões idiomáticos mantêm os redutores organizados: inicialização preguiçosa pelo terceiro argumento, atualizações imutáveis de estado de objeto e array, cálculo de valores derivados durante a renderização em vez de armazená-los, e reinício de toda uma árvore de estado com uma action reset ou uma key alterada. Dominar esses pontos mantém limpa até uma máquina de estado complexa. O princípio compartilhado é que o redutor permanece uma função pura, enquanto tudo o que não é puro — chamadas de rede, temporizadores, armazenamento — acontece nos manipuladores de eventos ou efeitos ao redor dele.
| Grupo | Efeitos e Desempenho |
|---|---|
| Tipo | Padrão |
ℹ️ Informação O editor transpila JSX para JavaScript e renderiza a UI real na sandbox; os componentes são montados automaticamente — sem render manual.
📝 Sintaxe
// lazy initialization: the initial state is computed from an argument
const [state, dispatch] = useReducer(reducer, props, init)
// reset the whole state tree
case 'reset': return init(props)
// the immutable update templates for arrays
[...state, item] // add
state.filter(i => i.id !== id) // remove
state.map(i => i.id === id ? { ...i, done: true } : i) // edit
Retorna:Sem valor de retorno; esta entrada descreve um padrão de codificação e não uma função.
▶ Exemplo
O exemplo roda direto: renderiza automaticamente ao expandir e edições valem na hora.
Saída:
"Next" acumula a trilha, "Back" recua um passo e "Reset" retorna ao início de uma vez — o exemplo demonstra a inicialização preguiçosa e o padrão reset.