~/questoes/programacao
ConsumerWidget é o widget fundamental do Riverpod para acessar e reagir a mudanças de providers. Ele recebe um parâmetro especial chamado `ref` que permite ler valores de qualquer provider e automaticamente reconstruir a interface quando esses valores mudam.
ConsumerWidget é a escolha correta porque oferece uma forma simples e type-safe de acessar providers através do parâmetro `ref`. Qualquer dado de um provider fica imediatamente disponível no build method, e o widget se reconstrói automaticamente quando o provider muda.
ValueListenableBuilder é um widget padrão do Flutter que funciona com ValueListenable, não é específico do Riverpod e não oferece suporte integrado para todos os tipos de providers.
ConsumerWidget é exatamente isso: um widget que estende StatelessWidget e adiciona o parâmetro `ref` no build method, permitindo consumir qualquer tipo de provider com uma sintaxe limpa e reativa.
StreamBuilder é um widget padrão do Flutter para trabalhar com streams, não é específico do Riverpod e não oferece suporte nativo automático para providers do framework.
InheritedWidget é um conceito fundamental do Flutter, mas não é a solução padrão do Riverpod. O Riverpod foi criado justamente para oferecer uma abstração melhor e mais flexível que InheritedWidget.