Выбор ответа Middle Управление состоянием спрашивают часто обновлено
Riverpod против Provider
Вопрос
Какое ключевое отличие Riverpod от Provider?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Провайдеры глобальные и не зависят от дерева, зависимости проверяет компилятор. В Provider значение ищется вверх по дереву, и если провайдер не выше виджета, ошибка вылезет в рантайме.
Варианты ответа
- Провайдеры глобальные и не зависят от дерева, зависимости проверяет компиляторправильный ответ
- Riverpod работает только вместе с BLoC и не может использоваться отдельно
- Riverpod хранит состояние в
SharedPreferences, поэтому оно переживает перезапуск - Riverpod не поддерживает асинхронные данные, для них по-прежнему нужен
FutureBuilder
Разбор
В Provider значение ищется вверх по дереву, и если провайдер не выше виджета, ошибка вылезет в рантайме. В Riverpod провайдер объявлен глобально, состояние хранится в ProviderContainer (ProviderScope), а другие провайдеры читаются через ref.watch. Асинхронность есть из коробки (FutureProvider, AsyncNotifier, AsyncValue). С BLoC и SharedPreferences это не связано.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Код-ревью: Provider и перестроения
Следующий вопрос
Provider: select для точечной подписки