devterview_$ iniciar simulação

Escolher uma abordagem de gerência de estado

DifícilSêniorGerência de estado

Pergunta

Como você escolhe entre `setState`, Provider/Riverpod e BLoC pra gerenciar estado num app Flutter?

Resposta esperada

`setState` (estado local): estado que pertence a um widget e não é compartilhado — animação, campo de formulário, se um accordion está aberto. Simples e suficiente pra maior parte da UI. Provider/Riverpod (estado compartilhado com injeção): quando várias telas precisam do mesmo dado (usuário logado, carrinho, tema) — você expõe o estado acima na árvore e os widgets escutam só o que usam; Riverpod resolve limitações do Provider (compilação segura, sem depender de BuildContext, testável). BLoC/Cubit: quando o fluxo tem lógica de negócio e transições de estado complexas que valem ser modeladas como eventos → estados explícitos e testáveis isoladamente, geralmente em apps maiores ou com times que querem um padrão rígido. Regra: comece local, suba pra Provider/Riverpod quando compartilhar, adote BLoC quando a complexidade de fluxo justificar o boilerplate.

Por que perguntam isso

Pergunta pleno/sênior. O bom sinal é o critério progressivo (local → compartilhado → complexo), não 'use sempre BLoC'.

#state-management#provider#riverpod#bloc
publicidade

Relacionadas