Javascript 如何在其他文件中使用vue路由器?
vue路由器运行正常,但我们希望在另一个文件中推送路由。一些代码需要澄清:Javascript 如何在其他文件中使用vue路由器?,javascript,typescript,vue.js,vue-router,quasar-framework,Javascript,Typescript,Vue.js,Vue Router,Quasar Framework,vue路由器运行正常,但我们希望在另一个文件中推送路由。一些代码需要澄清: //src/router/index.ts 从'quasar/wrappers'导入{route} 从“vue路由器”导入VueRouter 从“/routes”导入路由 导出默认路由(函数({Vue}){ Vue.use(VueRouter) 常量路由器=新的VueRouter({ 滚动行为:()=>({x:0,y:0}), 路线, 模式:process.env.VUE_路由器_模式, base:process.env
//src/router/index.ts
从'quasar/wrappers'导入{route}
从“vue路由器”导入VueRouter
从“/routes”导入路由
导出默认路由(函数({Vue}){
Vue.use(VueRouter)
常量路由器=新的VueRouter({
滚动行为:()=>({x:0,y:0}),
路线,
模式:process.env.VUE_路由器_模式,
base:process.env.VUE_路由器_base,
})
返回路由器
})
如果能够在另一个文件中像这样调整路由,那就太好了:
//src/services/auth/authService.ts
从“src/路由器”导入路由器
if(router.currentRoute.path==='/login'){
log('authService push to/');
router.push(“/”)
}
但这带来了一个错误:
TS2339:类型“RouteCallback”上不存在属性“currentRoute”
我们可能没有正确导出/导入路由器。您可以按照建议使用路由
路由将为您提供路由器的活动实例。您可以按照建议使用路由
路由将为您提供路由器的活动实例。通过正确导出
路由器来修复它:
从'quasar/wrappers'导入{route}
从“vue路由器”导入VueRouter
从“/routes”导入路由
导出常量路由器=新VueRouter({
滚动行为:()=>({x:0,y:0}),
路线,
模式:process.env.VUE_路由器_模式,
base:process.env.VUE_路由器_base,
})
导出默认路由(函数({Vue}){
Vue.use(VueRouter)
返回路由器
})
然后在Vue之外使用它,在Vue之外没有类似这样的上下文:
从'src/Router'导入{Router}
if(Router.currentRoute.path==='/login'){
console.log('authService push to/')
Router.push(“/”)
}
希望这可以帮助其他遇到相同问题的人。通过正确导出路由器来修复此问题:
从'quasar/wrappers'导入{route}
从“vue路由器”导入VueRouter
从“/routes”导入路由
导出常量路由器=新VueRouter({
滚动行为:()=>({x:0,y:0}),
路线,
模式:process.env.VUE_路由器_模式,
base:process.env.VUE_路由器_base,
})
导出默认路由(函数({Vue}){
Vue.use(VueRouter)
返回路由器
})
然后在Vue之外使用它,在Vue之外没有类似这样的上下文:
从'src/Router'导入{Router}
if(Router.currentRoute.path==='/login'){
console.log('authService push to/')
Router.push(“/”)
}
希望这可能会帮助其他遇到相同问题的人。您需要通过this引用它。$route
您需要通过this引用它。$route
文件authService
中没有this
。当我尝试console.log('this',this)
时,它返回undefined
。您可以在codesandbox中发布代码的实时演示吗?当然可以。看起来您正在访问vue应用程序外部的路由。是这样吗?文件authService
中没有此
。当我尝试console.log('this',this)
时,它返回undefined
。您可以在codesandbox中发布代码的实时演示吗?当然可以。看起来您正在访问vue应用程序外部的路由。是这样吗?
this.$route.path