Добавление маршрутов

Динамическая маршрутизация достигается в основном с помощью двух функций: router.addRoute() и router.removeRoute(). Они регистрируют только новый маршрут, а это означает, что если вновь добавленный маршрут соответствует текущему местоположению, вам потребуется вручную перемещаться по этому новому маршруту router.push() или router.replace() отображать его

Представьте себе, что у вас есть следующий маршрутизатор с одним маршрутом:

Переход на любую страницу, /about, /store или /3-tricks-to-improve-your-routing-code завершается рендерингом Article компонента. Если мы включимся /about и добавим новый маршрут

На странице по-прежнему будет отображаться компонент Article, нам нужно вручную вызвать, router.replace() чтобы изменить текущее местоположение и перезаписать то место, где мы были (вместо того, чтобы вводить новую запись, дважды оказываясь в одном и том же месте в нашей истории):

Помните, что вы можете это сделать await router.replace(), если вам нужно дождаться отображения нового маршрута.

Добавление гвардов

Если вы решите добавить или удалить маршруты внутри навигационной защиты, вам следует не вызывать, router.replace() а запустить перенаправление, вернув новое местоположение

Удаление маршрутов

Есть несколько способов удалить существующие маршруты

Путем добавления маршрута с конфликтующим именем. Если вы добавите маршрут с тем же именем, что и существующий маршрут, сначала он будет удален, а затем добавлен новый маршрут

Вызвав обратный вызов, возвращаемый router.addRoute()

Это полезно, когда у маршрутов нет имени.

Используя router.removeRoute() для удаления маршрута по его имени

Важно
При каждом удалении маршрута вместе с ним удаляются все его псевдонимы и дочерние элементы

Добавление вложенных маршрутов

Чтобы добавить вложенные маршруты к существующему маршруту, вы можете передать имя маршрута в качестве первого параметра в router.addRoute(), это фактически добавит маршрут, как если бы он был добавлен через children

Это эквивалентно: