Javascript 如何在vuex的actions.js中使用路由器?
这是我在main.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'); 然后
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
属性相同