Access router instance from my service Access router instance from my service vue.js vue.js

Access router instance from my service


You should export the router instance and then import it into the auth.js service.

Here is my workaround with some improvements:

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 instanceexport 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')  }}


Is your auth service a Vue component?

If so, you should be able to change routes with:

this.$router.go('/new/route');