"/", redirect: "/green" },
{ path: "/:color", name: "App", component: App } ]
И формально редирект происходит, так как следующий код:
router.beforeEach((to, from, next) => {
console.log(`beforeEach ${from.path} ${to.params.color}`);
next();
})
— выводит в консоль beforeEach / green
Но изменения URL не происходит, и у следующего переключения (по таймеру) при помощи next({ name: "App", params: { color: "yellow" }}) источником — from.path — также является корень сайта: в консоль выводится beforeEach / yellow
Подскажите, пожалуйста, что я делаю не так? Vue3
https://codesandbox.io/s/green-yellow-kkx94?file=/src/router/index.js
И вдогонку ещё такой вопрос. Можно ли делать вот так: 1. В template корневого компонента App.vue вывести представление роута при помощи <router-view></router-view> 2. Но при этом привязать к (любому) роуту компонент App.vue вот так: { path: "/:color", name: "App", component: App } Получается вроде как циклическая зависимость? Есть ли способ использовать в качестве router-view корневой компонент или это принципиально невозможно?
Насколько я знаю префиксный слеш не нужен. А в редиректе можно написать имя роута и параметр, тогда точно должно сработать.
Можно, тут нет циклической зависимости, роутер вью в данном случае будет реедерить дочерние ноуты у app
Обсуждают сегодня