首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在VueJs组件中使用路由器推送?

如何在VueJs组件中使用路由器推送?
EN

Stack Overflow用户
提问于 2019-06-06 20:30:02
回答 1查看 3.3K关注 0票数 1

我有一个navbar组件,我需要重定向到在navbar声明的注销方法中的登录组件。

我试过:this.$router.push({name:'MyLogin'});

但我看到了错误:

vue-router.esm.js?8c4f:1897 TypeError:无法读取未定义的$router属性 at eval (main.js?56d7:68)

如何在组件内部使用路由器推送?

或者如何在此组件中访问路由器。

编辑:

在文件:/src/router.js上,我有登录路由:

代码语言:javascript
复制
export default new Router({
    mode: 'history',
    routes: [
    {
        path: '/login',
        name: 'Login',
        component: LoginView
    },

在文件:/src/components/Navibar.vue中,我使用了doLogout方法:

代码语言:javascript
复制
methods: {
    doLogout(){ 
    this.$router.push({name:'Login'}); 
}

作为Vue js的新手,我尝试了这样的方法:

代码语言:javascript
复制
doLogout(){
   const router = new router({
    routes: [
              { 
                path: '/login', 
                name: 'Login', 
                component: LoginView 
              }               
        ]
  })
 this.$router.push({name:'Login'}); 

}

我看到了错误信息:

doLogout catch ReferenceError: LoginView没有定义在NaviBar.vue:324上(VM2993 NaviBar.vue:324)

因此,我尝试添加组件:

代码语言:javascript
复制
Vue.component('LoginView', require('Login.vue'));

这给了我一个错误:

模块未找到:错误:无法解析“Login.vue”

也许我走错了路?

在一个组件中启用this.$router.push()重定向到另一个组件的正确方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2019-06-07 13:36:03

试着按以下方式声明:

在文件: /src/router.js

代码语言:javascript
复制
const router = new Router({
    mode: 'history',
    routes: [
    {
        path: '/login',
        name: 'Login',
        component: LoginView
    },
export default router

声明的路由器变量对所有vue组件都是可访问的。

因此,在文件: /src/components/Navibar.vue doLogout方法中:

代码语言:javascript
复制
methods: {
    doLogout(){ 
    this.$router.push({name:'Login'}); 
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56484704

复制
相关文章

相似问题

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