首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Vue2:如何使用路由重定向到另一个页面

Vue2:如何使用路由重定向到另一个页面
EN

Stack Overflow用户
提问于 2018-07-11 08:51:31
回答 4查看 19.9K关注 0票数 3

如何从脚本代码重定向到另一个vue页面。我使用的是router.push(),但不能重定向到我想要的vue页面。

以下是我的源代码。

src/router/index.js

代码语言:javascript
运行
复制
import Vue from 'vue'
import Router from 'vue-router'
import HomePage from '@/components/HomePage'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/',
      name: 'IndexPage',
      component: IndexPage
    },
    {
      path: '/homepage',
      name: 'HomePage',
      component: HomePage
    }
  ]
})

src/components/IndexPage.vue

代码语言:javascript
运行
复制
<script>
  import VueRouter from 'vue-router'

  export default {
    name: 'IndexPage',
    methods: {
      redirectUser() { // this method is called on button click
         if (1 == 1)
         {
            router.push('/homepage');
            //this.$router.push('/homepage');
         }
      }
    }
  }
</script>

在运行这段代码之后,我得到了一个错误,该错误声明:

ReferenceError:路由器未定义在eval中

src/main.js

代码语言:javascript
运行
复制
import Vue from 'vue'
import App from './App'
import router from './router'

Vue.config.productionTip = false

window.Vue = Vue

new Vue({
  el: '#app',
  router,
  components: { App },
  template: '<App/>'
})

此外,我可以从浏览器http://localhost:8080/#/homepage访问相同的链接。但不能从我的脚本代码重定向到它。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-07-11 13:38:20

谢谢你的反馈朋友。我没有在vue上导入我的路由器文件。更新后的代码行是:

src/components/IndexPage.vue

代码语言:javascript
运行
复制
<script>
  import router from '../router/index.js'  // Just added this line and code works !!

  export default {
    name: 'IndexPage',
    methods: {
      redirectUser() { // this method is called on button click
         if (1 == 1)
         {
            router.push({name: 'HomePage'})
         }
      }
    }
  }
</script>
票数 3
EN

Stack Overflow用户

发布于 2018-07-11 10:54:10

导入Vue和VueRouter,然后调用

代码语言:javascript
运行
复制
    Vue.use(VueRouter)

然后用你的方法,

代码语言:javascript
运行
复制
    this.$router.push({name: 'HomePage'}) 

编辑

如果您想在代码中使用Vue和Vue路由器,那么您需要同时导入Vue和Vue路由器,这就是为什么您要获得的路由器在eval中没有定义的原因。同时也使用

代码语言:javascript
运行
复制
this.$router.push('/homepage');

在你的src/components/IndexPage.vue里试试这个

代码语言:javascript
运行
复制
<script>
  import Vue from 'vue'
  import VueRouter from 'vue-router'

  Vue.use(VueRouter)

  export default {
    name: 'IndexPage',
    methods: {
      redirectUser() { // this method is called on button click
        if (1 == 1)
        {
           this.$router.push('/homepage');
        }
      }
    }
  }
</script>
票数 5
EN

Stack Overflow用户

发布于 2018-07-11 08:59:53

使用组件实例属性访问路由器:

代码语言:javascript
运行
复制
this.$router.push({name: 'HomePage'}) 

你的应用程序里有吗?

代码语言:javascript
运行
复制
new Vue({
  router,
  render: h => h(App)
}).$mount('#app')
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51281157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档