Выбор ответа Middle Управление состоянием спрашивают часто обновлено

Riverpod против Provider

Вопрос

Какое ключевое отличие Riverpod от Provider?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Провайдеры глобальные и не зависят от дерева, зависимости проверяет компилятор. В Provider значение ищется вверх по дереву, и если провайдер не выше виджета, ошибка вылезет в рантайме.

Варианты ответа

  1. Провайдеры глобальные и не зависят от дерева, зависимости проверяет компиляторправильный ответ
  2. Riverpod работает только вместе с BLoC и не может использоваться отдельно
  3. Riverpod хранит состояние в SharedPreferences, поэтому оно переживает перезапуск
  4. Riverpod не поддерживает асинхронные данные, для них по-прежнему нужен FutureBuilder

Разбор

В Provider значение ищется вверх по дереву, и если провайдер не выше виджета, ошибка вылезет в рантайме. В Riverpod провайдер объявлен глобально, состояние хранится в ProviderContainer (ProviderScope), а другие провайдеры читаются через ref.watch. Асинхронность есть из коробки (FutureProvider, AsyncNotifier, AsyncValue). С BLoC и SharedPreferences это не связано.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме