从我的服务访问路由器实例
Access router instance from my service
我创建了一个只有功能和属性的授权服务 (src/services/auth.js
)..
export default {
login() { ... }
...
}
在 login
函数中,我需要重定向用户
router.go(redirect)
如何检索路由器实例?
上下文
在我的 src/main.js
文件中,我创建了一个路由器 ..
import VueRouter from 'vue-router'
Vue.use(VueRouter)
import route from './routes'
const router = new VueRouter({
history: false,
linkActiveClass: 'active'
})
route(router)
const App = Vue.extend(require('./App.vue'))
在我的src/routers.js
中只是地图路线
export default function configRouter (router) {
router.map({ .. })
}
你的授权服务是 Vue 组件吗?
如果是这样,您应该可以更改路线:
this.$router.go('/new/route');
您应该导出 router
实例,然后将其导入 auth.js
服务。
这是我的一些改进的解决方法:
src/routes.js
export default {
'/': {
component: {...}
},
'/about': {
component: {...}
},
...
}
src/router.js
import Vue from 'vue'
import VueRouter from 'vue-router'
import Routes from './routes'
Vue.use(VueRouter)
const router = new VueRouter({...})
router.map(Routes)
// export the router instance
export default router
src/main.js
import Router from './router'
import App from './app'
Router.start(App, '#app')
src/services/auth.js
import Router from '../router'
export default {
login () {
// redirect
Router.go('path')
}
}
我创建了一个只有功能和属性的授权服务 (src/services/auth.js
)..
export default {
login() { ... }
...
}
在 login
函数中,我需要重定向用户
router.go(redirect)
如何检索路由器实例?
上下文
在我的 src/main.js
文件中,我创建了一个路由器 ..
import VueRouter from 'vue-router'
Vue.use(VueRouter)
import route from './routes'
const router = new VueRouter({
history: false,
linkActiveClass: 'active'
})
route(router)
const App = Vue.extend(require('./App.vue'))
在我的src/routers.js
中只是地图路线
export default function configRouter (router) {
router.map({ .. })
}
你的授权服务是 Vue 组件吗?
如果是这样,您应该可以更改路线:
this.$router.go('/new/route');
您应该导出 router
实例,然后将其导入 auth.js
服务。
这是我的一些改进的解决方法:
src/routes.js
export default {
'/': {
component: {...}
},
'/about': {
component: {...}
},
...
}
src/router.js
import Vue from 'vue'
import VueRouter from 'vue-router'
import Routes from './routes'
Vue.use(VueRouter)
const router = new VueRouter({...})
router.map(Routes)
// export the router instance
export default router
src/main.js
import Router from './router'
import App from './app'
Router.start(App, '#app')
src/services/auth.js
import Router from '../router'
export default {
login () {
// redirect
Router.go('path')
}
}