Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在其他文件中使用vue路由器?_Javascript_Typescript_Vue.js_Vue Router_Quasar Framework - Fatal编程技术网

Javascript 如何在其他文件中使用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

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.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