Vue маршрутизатор предоставляет несколько функций для программирования c навигация .
this.$router.go(n)
Функция go(n)
ожидает n
быть number
и является количеством шагов вперед или назад в истории для путешествия. Я думаю, что это причина того, что вы не получаете ожидаемый результат.
this.$router.push(path|route)
Если вы хотите указать фактический путь к функции, вы должны использовать push()
вместо go()
. Например, для go на «домашней» странице вы можете использовать this.$router.push('/')
или go для страницы профиля this.$router.push('/profile')
. Важно отметить, что при использовании push()
указанный вами путь добавляется в стек истории.
this.$router.replace(path|route)
Если вы НЕ хотите добавлять запись в стек истории, вы должны использовать replace()
вместо push()
. В противном случае использование replace()
такое же, как push()
, то есть this.$router.replace('/')
или this.$router.replace('/profile')
.
Использование path
против использования route
объекта
Когда при навигации по push(path|route)
и replace(path|route)
у вас есть возможность использовать path
, который представляет собой просто строку с URL-адресом места, куда вы хотите go, или используя объект route
. объект маршрута дает вам гораздо больше контроля и позволяет отправлять параметры маршрута или запроса компоненту назначения.
Например, если вы хотите перейти на страницу профиля для пользователя с id
из 3
вы можете сделать что-то вроде this.$router.push({ path: '/profile', params: { id: 3 } })
. В качестве альтернативы, если вы используете с именем route , вы можете заменить имя маршрута на путь, то есть this.$router.push({ name: 'profile', params: { id: 3 } })
. name
должно соответствовать имени, назначенному маршруту, где бы вы ни настраивали свой основной Router
экземпляр.
Использование компонента v-btn
Vuetify
Если вы используете Компонент кнопки Vuetify НЕ существует атрибута router
. Вместо этого вы просто указываете атрибут to
, и Vuetify должен автоматически интерпретировать его, как если бы это был router-link
, например <v-btn to="/profile">My Profile</v-btn>
. Кроме того, вы можете использовать объект route
, например, <v-btn :to="{ path: '/profile', params: { id: 3 } }">Profile</v-btn>
. Важно отметить двоеточие (:
), предшествующее to
во втором случае. Это говорит Vue интерпретировать значение атрибута как JavaScript вместо простого текста.