2016-02-27 12 views

ответ

35

Если вы используете vue-router, для перехода на любой конкретный маршрут вы должны использовать router.go(path). К маршрутизатору можно получить доступ из одного компонента с помощью this.$router.

В противном случае window.location.href = 'some url'; отлично работает для одностраничных приложений.

EDIT: router.go() изменен в VueJS 2.0. Вы можете использовать router.push({ name: "yourroutename"}) или просто router.push("yourroutename") сейчас для перенаправления.

https://router.vuejs.org/en/essentials/navigation.html

+1

В моем случае использование направить на другой, не одностраничный –

+0

Yea просто использовать 'window.location' – Jeff

+3

я получаю:' Uncaught ReferenceError: маршрутизатор not defined', Как ввести маршрутизатор в компонент? – Saurabh

10

просто использовать:

window.location.href = "http://siwei.me" 

Не используйте VUE-маршрутизатор, в противном случае вы будете перенаправлены на "http://yoursite.com/#!/http://siwei.me"

мое окружение: узел 6.2.1, вю 1.0.21, Ubuntu.

+0

Я не вижу причин, почему это должно быть в двойных кавычках ..? – Moritz

+0

Фактически [standardjs] (http://standardjs.com/) говорит: «Используйте одинарные кавычки для строк, кроме как избежать экранирования». – Moritz

+0

это было какое-то время назад, но на самом деле я решил это, используя одинарные кавычки, но я думаю, что двойные кавычки также должны работать и могут быть полезны в сложных ссылках. –

23

Согласно документации, router.push кажется, предпочтительным способом:

To navigate to a different URL, use router.push. This method pushes a new entry into the history stack, so when the user clicks the browser back button they will be taken to the previous URL.

источник: https://router.vuejs.org/en/essentials/navigation.html

FYI: WebPack установки & компонентов, одно приложение страницы (где вы импортировать маршрутизатор через Main .js), мне пришлось вызывать функции маршрутизатора, говоря:

this.$router 

Пример: если вы хотите, чтобы перенаправить маршрут под названием «Home» после того, как условие:

this.$router.push('Home') 
+0

Этот вопрос не имеет ничего общего с компиляцией (webpack). –

+3

Благодарим за downvote, хотя большинство людей будут разрабатывать vue cli, webpack, router и store/vuex и, скорее всего, столкнутся с проблемой неспособности вызвать маршрутизатор. –

+3

Это должен быть правильный ответ – felipekm