在vuex的actions. js中通过this. $router获取路由

在vuex的actions. js中无法通过this. $router获取路由的问题,参考了以下解决方法
在这里插入图片描述
先把跟组件导出
在这里插入图片描述
然后在actions中导入
在这里插入图片描述
就可以获取到了
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码可能是在Vue.js,使用了Vuex状态管理和Vue Router路由控制,实现了用户注销操作。 具体来说,`await this.$store.dispatch('user/logout')`是一个`action`,用于调用`mutations`来修改`state`的用户信息,将其注销。 `this.$router.push(`/login?redirect=${this.$route.fullPath}`)`则用于将当前路由跳转到登录页面,并携带当前页面的路径作为参数`redirect`,以便在登录后可以跳转回原来的页面。 以下是一个示例,假设我们要实现用户注销的操作: 1. 在Vuex的store.js文件,定义一个名为`logout`的`action`和一个名为`SET_USER`的`mutation`: ``` // store.js const store = new Vuex.Store({ state: { user: { name: '', token: '' } }, mutations: { SET_USER(state, user) { state.user = user } }, actions: { async logout({ commit }) { // 调用后端接口注销用户 const res = await api.logout() if (res.code === 0) { // 修改state的用户信息 commit('SET_USER', { name: '', token: '' }) return true } else { return false } } } }) ``` 2. 在组件,通过`this.$store.dispatch()`来调用`logout` action,并在注销成功后跳转到登录页面: ``` // component.vue async handleLogout() { const res = await this.$store.dispatch('logout') if (res) { // 注销成功,跳转到登录页面 this.$router.push(`/login?redirect=${this.$route.fullPath}`) } else { // 注销失败,提示用户 this.$message.error('注销失败') } } ``` 这样,用户点击注销按钮后,就会调用`logout` action,将后端返回的注销结果存储到`state`,并跳转到登录页面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值