204

Vue.jsバニラ JavaScript と同様にリダイレクトを行いたい

window.location.href = 'some_url'

Vue.jsでこれを達成するにはどうすればよいですか?

4

18 に答える 18

279

を使用している場合はvue-router、 を使用router.go(path)して特定のルートに移動する必要があります。を使用して、コンポーネント内からルーターにアクセスできますthis.$router

それ以外の場合は、window.location.href = 'some url';シングルページ以外のアプリでは正常に機能します。

EDIT : router.go()VueJS 2.0 で変更されました。$router.push({ name: "yourroutename"})or just now を使用router.push("yourroutename")してリダイレクトできます。

ドキュメンテーション

注: コントローラーでは次を使用します。this.$router.push({ name: 'routename' })

于 2016-02-27T08:43:45.653 に答える
51

ちょうど使用:

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

vue-router を使用しないでください。そうしないと、「http://yoursite.com/#!/http://siwei.me」にリダイレクトされます。

私の環境: ノード 6.2.1、vue 1.0.21、Ubuntu。

于 2016-06-29T06:24:41.617 に答える
7

/aあるページから別のページへの永続的なリダイレクトが必要な場合/b


redirect:に追加されたオプションを使用できますrouter.js。たとえば、ユーザーがルート URL またはベース 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"),

    },
   ]
于 2019-07-10T11:13:18.253 に答える
5

そのため、私が探していたのはを配置する場所window.location.hrefだけであり、私がたどり着いた結論は、リダイレクトする最善かつ最速の方法はルートであるということでした (その方法では、リダイレクトする前に何かが読み込まれるのを待ちません)。

このような:

routes: [
    {
        path: "/",
        name: "ExampleRoot",
        component: exampleComponent,
        meta: {
            title: "_exampleTitle"
        },
        beforeEnter: () => {
            window.location.href = 'https://www.myurl.io';
        }
    }]

多分それは誰かを助けるでしょう..

于 2020-07-08T10:05:22.253 に答える
0
<div id="app">
   <a :href="path" />Link</a>
</div>

<script>
      new Vue({
        el: '#app',
        data: {
          path: 'https://www.google.com/'
        }
      });
</script> enter code here
于 2019-05-09T09:55:55.613 に答える
0

使用している CRM に JavaScript を介して挿入したカスタム ボタンからリダイレクトしたいと考えていました。リダイレクトを行うには、次のスクリプトを使用しました。ここでの残りの回答との違いは、ルーターにアクセスするにはアプリが必要だということです。私のシナリオのvueオブジェクトなので、コンソールで似たようなものを見てください:

var url = "/my-relative-path-url";    
<button onclick="app.__vue__.$router.push(\'' + url + '\');">Click Me</button>
于 2021-12-11T08:02:41.597 に答える