Javascript 如何在vuex的actions.js中使用路由器?

Javascript 如何在vuex的actions.js中使用路由器?,javascript,vue.js,vuejs2,vue-router,Javascript,Vue.js,Vuejs2,Vue Router,这是我在main.js中配置路由器的代码 enter code here const router = new Router({ routes, mode: 'history', saveScrollPosition: true }); sync(store, router); const app = new Vue({ router, store, render: h => h(App ) }).$mount('#app'); 然后

这是我在main.js中配置路由器的代码

enter code here
const router = new Router({
    routes,
    mode: 'history',
    saveScrollPosition: true
});


sync(store, router);

const app = new Vue({
    router,
    store,
    render: h => h(App )
}).$mount('#app');
然后在vuex/actions.js中,我有一个action registerUser,在这里我请求API,如果响应成功,我想将用户重定向到主页

enter code here

export const registerUser = ({commit, state}, userData) => {
    commit(types.REQUEST_USER_REGISTER);

    api.register(userData).then(success => {
        const response = success.data;

        localStorage.setItem('id_token', response.token);

        commit(types.USER_OBJECT, response.user)

        //TODO: find better solution, then put router instance into window var
        window.router.replace('/');

    }, failure => {

    })
}

上面的代码运行得很好,因为我在build.js中将路由器实例设置为window var,也许有人知道更好的解决方案,而不是它

将路由器声明移动到单独的文件并导出它。然后导入主文件和您希望使用它的任何其他文件。api与vue prototype上的
$router
属性的api相同。

将路由器声明移动到单独的文件并导出它。然后导入主文件和您希望使用它的任何其他文件。api与vue原型上的
$router
属性相同