Javascript 如何在VueJs组件内使用路由器推送?
我有一个navbar组件,我需要重定向到在navbar声明的注销方法中的登录组件 我试过: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
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,正在调试我看到了整个路由器对象,这是在导航栏组件上,只是不知道为什么它停留在同一页上,它没有重定向。