Модель Scoped, шаблон BLoC, StreamBuilder и Inherited Widget(или Model), какую из них выбрать и почему?
Я думаю, что теперь у меня есть хотя бы смутное представление о
как использовать BLoC, Stream Builder
и унаследованный виджет(или модель) в моем приложении
(ничего особенного, но для меня это заняло время),
но играть с моделью Scoped
У меня был своего рода экзистенциальный кризис:
Я чувствую, что они в основном могут сделать то же самое или
по крайней мере, я могу добиться таких же очевидных результатов
с любым из них,
но у меня нет компетенции, чтобы понять
когда и почему один лучше другого.
Я намеренно держу вопрос открытым, не ненавидь меня за это,
но я надеюсь лучше понять, что я делаю
и что происходит "под капотом" с использованием того или другого.
Спасибо за ваше терпение. Francesco
PS: я не могу добавить тег 'scoped model', если вы можете сделать
это может быть актуально для новичков, как я
0 ответов
Модели с прицелом и блок
Вкратце: если у вас небольшие приложения, используйте модели с областями действия, поскольку блок имеет тенденцию усложнять его, а если у вас большое приложение, используйте блок.
Смотрите эту статью для подробного объяснения: блок против scoped_model
Stream Builder vs Inherited Widget
Вот хорошее сравнение между построителем потока и унаследованным виджетом, данное Реми Русселетом: /questions/20810070/zachem-ispolzovat-inheritedwidget-a-myi-mozhem-ispolzovat-broadcast-streams-streambuilder-i-staticheskie-peremennyie/20810073#20810073
Streams / Sink определенно отлично подходят для хранения состояния. Существует несколько существующих архитектур, таких как BLoC, которые часто их используют.
Но потоки не полностью заменяют InheritedWidget
или. InheritedWidget
поставляется с классной возможностью переопределить его содержимое только для части экрана. Одно классное приложение это Theme
,
Вообще говоря, Streams
круто хранить бизнес логику. Но когда вам нужно хранить логику пользовательского интерфейса, InheritedWidgets
берет верх