Выбор ответа Middle Навигация обновлено

go_router: go против push

Вопрос

Чем context.go('/item/42') отличается от context.push('/item/42') в go_router?

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

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

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

Коротко

Правильный ответ: go строит стек по иерархии маршрутов, push кладёт экран поверх. go декларативно переходит на адрес: стек определяется конфигурацией вложенных маршрутов (например, Home, а над ним Item), текущая история заменяется. push императивно добавляет страницу поверх того, что уже есть, и pop вернёт на исходный…

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

  1. go открывает экран модально поверх всего, а push делает обычный переход
  2. Разницы нет: это синонимы, go оставлен для краткости записи
  3. push работает только в вебе, а на мобильных платформах доступен только go
  4. go строит стек по иерархии маршрутов, push кладёт экран поверхправильный ответ

Разбор

go декларативно переходит на адрес: стек определяется конфигурацией вложенных маршрутов (например, Home, а над ним Item), текущая история заменяется. push императивно добавляет страницу поверх того, что уже есть, и pop вернёт на исходный экран. Модальность задаётся типом страницы, а не методом. Оба работают на всех платформах.

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

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

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