Je pense que j'ai maintenant au moins une vague idée de la façon d'utiliser un BLoC , Stream Builder et Widget hérité (ou - Modèle ) dans mon application (rien de spécial, mais pour moi cela a pris du temps), mais jouer avec le Modèle de portée
J'ai eu une sorte de crise existentielle: je pense qu'ils peuvent faire la même chose ou du moins je peux obtenir les mêmes résultats apparents avec l'un d'eux, mais je n'ai pas la compétence pour comprendre quand et pourquoi l'un est meilleur qu'un autre.
En bref: si vous avez de petites applications, utilisez des modèles de portée car le bloc a tendance à compliquer les choses, et si vous avez une grande application, utilisez bloc .
Voir cet article pour une explication détaillée: bloc vs scoped_model
Voici une belle comparaison entre stream builder et widget hérité donné par Remi Rousselet: https://stackoverflow.com/a/49958864/1047148
Streams/Sink sont certainement excellents pour stocker un état. Il existe des architectures existantes, telles que BLoC qui les utilise beaucoup.
Mais , les flux ne remplacent pas entièrement InheritedWidget
non plus. InheritedWidget
est livré avec la possibilité intéressante de remplacer son contenu pour seulement une partie de l'écran. Une application intéressante de ceci est Theme
.
De manière générale, Streams
est pratique pour stocker la logique métier. Mais lorsque vous devez stocker la logique de l'interface utilisateur, InheritedWidgets
prend le dessus.