0%
Gerenciamento de estado

Gerenciamento de estado

Decidir onde um dado vive e quem deve ser avisado quando ele muda

15-20 min

Gerenciamento de estado

O assunto tem má reputação, alimentada pela quantidade de soluções concorrentes e pelos debates que elas provocam. É preciso dissipá-la de saída: o problema real não é escolher entre três bibliotecas, mas responder a uma pergunta simples para cada dado da sua aplicação. Quem precisa dele?

Uma caixa de seleção só interessa à linha que a contém: setState basta, e qualquer outra coisa seria uma complicação gratuita. O carrinho de compras, por sua vez, é lido pela lista de produtos, pelo badge da barra superior, pela tela de pedido e pela tela de pagamento — quatro lugares que não compartilham nenhum ancestral comum próximo. Fazer o carrinho descer de construtor em construtor por seis níveis de widgets funciona, mas produz um código em que a menor mudança afeta dez arquivos. Esse fenômeno tem um nome, prop drilling (repasse de propriedades), e é ele, não o setState, que justifica a existência do Provider.

Esta lição segue exatamente essa progressão: setState e o que ele faz bem, o muro que ele encontra, InheritedWidget, que é o mecanismo do framework para atravessá-lo, e depois o Provider, que o empacota de forma utilizável no dia a dia. No final, você terá um critério de decisão, não uma preferência.

Comentários

Os comentários são alimentados pelo GitHub Discussions

Conecte-se com o GitHub para participar da discussão

Link copiado!