Я хотел бы сделать перенаправление Vue.js
аналогично ванильному javascript
window.location.href = 'some_url'
Как я мог добиться этого в Vue.js?
Я хотел бы сделать перенаправление Vue.js
аналогично ванильному javascript
window.location.href = 'some_url'
Как я мог добиться этого в Vue.js?
Ответы:
Если вы используете vue-router
, вы должны использовать его router.go(path)
для перехода к любому конкретному маршруту. Доступ к маршрутизатору можно получить из компонента с помощью this.$router
.
В противном случае window.location.href = 'some url';
отлично работает для не одностраничных приложений.
РЕДАКТИРОВАТЬ : router.go()
изменено в VueJS 2.0. Вы можете использовать router.push({ name: "yourroutename"})
или прямо router.push("yourroutename")
сейчас перенаправить.
Uncaught ReferenceError: router is not defined
ошибка, как вставить маршрутизатор в компонент?
this.$router.push('routename)
Согласно документам, router.push кажется предпочтительным методом:
Чтобы перейти к другому URL-адресу, используйте router.push. Этот метод помещает новую запись в стек истории, поэтому, когда пользователь нажимает кнопку возврата в браузере, он переходит к предыдущему URL-адресу.
источник: https://router.vuejs.org/en/essentials/navigation.html
К вашему сведению: Webpack и настройка компонентов, одностраничное приложение (где вы импортируете маршрутизатор через Main.js), мне пришлось вызывать функции маршрутизатора, говоря:
this.$router
Пример: если вы хотите перенаправить на маршрут под названием «Дом» после выполнения условия:
this.$router.push('Home')
просто используйте:
window.location.href = "http://siwei.me"
Не используйте vue-router, иначе вы будете перенаправлены на " http://yoursite.com/#!/http://siwei.me "
моя среда: узел 6.2.1, vue 1.0.21, Ubuntu.
Находясь внутри тега сценария компонента, вы можете использовать маршрутизатор и сделать что-то вроде этого
this.$router.push('/url-path')
Просто мертвая простая маршрутизация:
this.$router.push('Home');
тоже можете попробовать ...
router.push({ name: 'myRoute' })
Вы также можете использовать v-bind непосредственно в шаблоне, например ...
<a :href="'/path-to-route/' + IdVariable">
:
это аббревиатура v-bind
.
`/path-to-route/${IdVariable}`
" Или названный маршрут, как здесь указано ( router.vuejs.org/guide/essentials/ named-routes.html ): :href="{ name: 'NamedRouteDeclaredAtRouter' , params: { id: idValue } }"
Если кому-то /a
нужно постоянное перенаправление с одной страницы на другую/b
Мы можем использовать redirect:
опцию, добавленную в router.js
. Например, если мы хотим перенаправлять пользователей всегда на отдельную страницу, когда он вводит корневой или базовый URL /
:
const router = new Router({
mode: "history",
base: process.env.BASE_URL,
routes: [
{
path: "/",
redirect: "/someOtherPage",
name: "home",
component: Home,
// () =>
// import(/* webpackChunkName: "home" */ "./views/pageView/home.vue"),
},
]
Итак, я искал только то, где поставитьwindow.location.href
и я пришел к выводу, что лучший и самый быстрый способ перенаправления - это маршруты (таким образом, мы не ждем загрузки чего-либо перед перенаправлением).
Как это:
routes: [
{
path: "/",
name: "ExampleRoot",
component: exampleComponent,
meta: {
title: "_exampleTitle"
},
beforeEnter: () => {
window.location.href = 'https://www.myurl.io';
}
}]
Может кому поможет ..
Чтобы соответствовать вашему первоначальному запросу:
window.location.href = 'some_url'
Вы можете сделать что-то вроде этого:
<div @click="this.window.location='some_url'">
</div>
Обратите внимание, что это не использует преимущества использования маршрутизатора Vue, но если вы хотите «сделать перенаправление в Vue.js, похожее на ванильный javascript», это сработает.