Список подходов к управлению состоянием
Last updated
Last updated
Управление состояниями - сложная тема. Если вам кажется, что на некоторые из ваших вопросов вы не получили ответа, или что подход, описанный на этих страницах, не подходит для ваших случаев использования, то вы, вероятно, правы.
То, что необходимо изучить перед выбором подхода.
Introduction to state management, который является началом этого самого раздела (для тех из вас, кто попал непосредственно на эту страницу Опций и пропустил предыдущие страницы)
Pragmatic State Management in Flutter, a video from Google I/O 2019
Flutter Architecture Samples, by Brian Egan
Provider – это пакет для управления состояниями, написанный Реми Русле и взятый на вооружение в Google и в сообществе Flutter.
Подробно про Провайдер
Ниже перечислены причины, по которым стоит выбрать Riverpod:
Он не зависит напрямую от Flutter SDK.
Riverpod можно использовать для создания и обеспечения однонаправленного потока данных с классами моделей, которые являются иммутабельными (то есть они не меняются).
Riverpod не зависит напрямую от дерева виджетов; его работа похожа на работу локатора служб. Провайдеры объявляются глобально и могут быть использованы в любом месте приложения
отлавливает ошибки программирования во время компиляции, а не во время исполнения
устраняет вложенность для прослушивания/комбинирования объектов
обеспечивает тестируемость кода
поддержка автоудаления
сравнение предыдущего и нового состояния
реализует механизм отмены-повторения (undo-redo)
отладка состояния приложения
Низкоуровневый подход для эфемерного состояния конкретного виджета.
Добавление интерактивности в ваше приложение Flutter, руководство по Flutter
Базовое управление состоянием в Google Flutter , автор Agung Surya
Низкоуровневый подход, используемый для связи между предками и потомками в дереве виджетов. Это то, что provider
и многие другие подходы используют под капотом.
В следующем видеосеминаре под руководством инструктора рассказывается, как использовать InheritedWidget
:
Другие полезные документы включают в себя:
Наследование виджетов , Мехмет Фиданбойлу
Эффективное использование виджетов, унаследованных Flutter , Эрик Виндмилл
Widget — State — Context — InheritedWidget , Дидье Болеленс
Остальные методы и описания