Flutter
Flutter-интеграция
Контейнеры Ark DI в дереве виджетов с явным владением и типизированным BuildContext API.
v1.1.0Начальный уровеньark_di_flutter
Flutter-интеграция
ark_di_flutter адаптирует существующий DiContainer к Flutter. Пакет не добавляет регистрации во время выполнения и не переносит создание объектов в виджеты.
Модель владения
text
Bootstrap создаёт DiContainer приложения
↓
DiRootScope предоставляет контейнер дереву Widget
↓
DiScope создаёт дочерний контейнер ограниченного поддерева
↓
BuildContext разрешает ближайший Scope
↓
удаление поддерева закрывает принадлежащие дочерние зависимости
Дерево виджетов задаёт границы времени жизни; базовый контейнер по-прежнему отвечает за регистрацию, разрешение, обнаружение циклов и порядок завершения.
DiRootScopeпредоставляет контейнер приложения.DiScopeсоздаёт дочерний контейнер и управляет им.DiBuildContextExtensionдаёт подписанный и разовый доступ.service_locator.dart— отдельная opt-in библиотека совместимости.
Выберите точку входа
| Задача | Материал |
|---|---|
| Один контейнер приложения и один Scope функции | Руководство «Scope Flutter-приложения» |
| Правила владения и замены | «Корневой и дочерний Scope» |
| Перестроение при замене ближайшего контейнера | context.di в «Доступ через BuildContext» |
| Разовое чтение в обратном вызове | context.readDi в «Доступ через BuildContext» |
| Legacy API требует Service Locator | «Opt-in Service Locator» после изучения ограничений |
Не используйте BuildContext в доменных объектах и не сохраняйте дочерний DiContainer глобально. Разрешите зависимости на границе Widget или композиции функции, а ниже передавайте обычные аргументы конструкторов.