Я думаю, что теперь у меня есть хотя бы смутное представление о том, как использовать BLoC, Stream Builder и Inherited Widget (или Model) в моем приложении (ничего особенного, но для меня это заняло время), но я играл с Scoped Model.
У меня был своего рода экзистенциальный кризис: я чувствую, что они в основном могут делать то же самое, или, по крайней мере, я могу достичь тех же очевидных результатов с любым из них, но у меня нет компетенции, чтобы понять, когда и почему один лучше другого,
Модель Scoped, шаблон BLoC, StreamBuilder и Inherited Widget (или Model), какую из них выбрать и почему?
Ответ 1
Модели с прицелом и блок
Вкратце: если у вас небольшие приложения, используйте модели с областями действия, поскольку блок имеет тенденцию усложнять его, а если у вас большое приложение, используйте блок.
Смотрите эту статью для подробного объяснения: блок против scoped_model
Stream Builder vs Inherited Widget
Вот хорошее сравнение между построителем потока и унаследованным виджетом, данное Реми Русселетом: fooobar.com/questions/15551320/...
Streams/Sink определенно отлично подходят для хранения состояния. Существует несколько существующих архитектур, таких как BLoC, которые часто их используют.
Но Streams также не полностью заменяет InheritedWidget
. InheritedWidget
поставляется с классной возможностью переопределять контент только для части экрана. Одно классное приложение это Theme
.
Вообще говоря, в Streams
здорово хранить бизнес-логику. Но когда вам нужно сохранить логику пользовательского интерфейса, InheritedWidgets
берет верх.
Ответ 2
Вы можете посмотреть в этом блоке библиотеки. Я использовал это для производства приложений.