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

Javascript 如何在VueJs组件内使用路由器推送?,javascript,vuejs2,Javascript,Vuejs2,我有一个navbar组件,我需要重定向到在navbar声明的注销方法中的登录组件 我试过:this.$router.push({name:'MyLogin}) 但我看到了错误: vue router.esm.js?8c4f:1897类型错误:无法读取未定义的属性“$router” 评估时(main.js?56d7:68) 如何在组件内部使用路由器推送 或者,我如何在此组件中访问路由器 编辑: 在文件中:/src/router.js我有登录路径: export default new Router

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

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

但我看到了错误:

vue router.esm.js?8c4f:1897类型错误:无法读取未定义的属性“$router”
评估时(main.js?56d7:68)

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

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

编辑:

在文件中:/src/router.js我有登录路径:

export default new Router({
    mode: 'history',
    routes: [
    {
        path: '/login',
        name: 'Login',
        component: LoginView
    },
在文件:/src/components/Navibar.vue中,我有doLogout方法:

methods: {
    doLogout(){ 
    this.$router.push({name:'Login'}); 
}
作为Vue js的新手,我尝试了以下方法:

doLogout(){
   const router = new router({
    routes: [
              { 
                path: '/login', 
                name: 'Login', 
                component: LoginView 
              }               
        ]
  })
 this.$router.push({name:'Login'}); 
}

我看到错误消息:

doLogout捕获引用错误:在评估时未定义LoginView(VM2993 NaviBar.vue:324)

因此,我尝试添加组件:

Vue.component('LoginView', require('Login.vue'));
这给了我一个错误:

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

也许我做错事了


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

尝试如下声明:

在文件中:/src/router.js

const router = new Router({
    mode: 'history',
    routes: [
    {
        path: '/login',
        name: 'Login',
        component: LoginView
    },
export default router
声明的路由器变量可通过所有vue组件访问

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

methods: {
    doLogout(){ 
    this.$router.push({name:'Login'}); 
}

这可能有助于解决组件出现问题,因为
未定义。从那一行我们看不出来。组件的其余部分是什么样子的?在这里添加整个函数,您在其中执行推入式路由器。登录路由是这样定义的:导出默认的新路由器({mode:'history',routes:[{path:'/login',name:'login',component:LoginView},它将是:const router=new router({mode:'history',routes:[{path:'/login',name:'login',component:LoginView}})导出默认路由器??谢谢@Riddhi,正在调试我看到了整个路由器对象,这是在导航栏组件上,只是不知道为什么它停留在同一页上,它没有重定向。