Vuex 的语法“...mapActions([‘login‘]) ”是用于在组件中映射 Vuex 的 actions 方法

...mapActions(['login']) 是 Vuex 的语法,用于在组件中映射 Vuex 的 actions 方法 ,让你可以像调用本地方法一样去调用 Vuex 中的 login 方法。


它的意思是:

js 复制代码
...mapActions(['login'])

等价于:

js 复制代码
methods: {
  login() {
    return this.$store.dispatch('login');
  }
}

使用场景:

在 Vue 组件的 methods 中使用 mapActions:

js 复制代码
<script>
import { mapActions } from 'vuex';

export default {
  methods: {
    ...mapActions(['login']),
  }
}
</script>

然后你就可以在组件里直接调用:

js 复制代码
this.login(); // 实际上是触发 Vuex 里的 login action

举个实际例子:

Vuex 中:

js 复制代码
// store.js
export default {
  actions: {
    login({ commit }, payload) {
      // 做登录逻辑,比如发请求
      console.log('用户登录中...', payload);
    }
  }
}

组件中:

js 复制代码
export default {
  methods: {
    ...mapActions(['login']),
    doLogin() {
      this.login({ username: 'test', password: '123456' });
    }
  }
}

补充:mapActions 的作用

用法 作用
mapActions(['xxx']) 映射 this.xxx() 到 Vuex action
mapMutations(['xxx']) 映射 this.xxx() 到 Vuex mutation
mapState(['xxx']) 映射 Vuex state 到组件计算属性
相关推荐
剪刀石头布啊11 分钟前
vue-react为何要虚拟dom
前端
剪刀石头布啊13 分钟前
ahooks常用的一些库,我们使用一下
前端
剪刀石头布啊14 分钟前
从git更新本地提交记录到更新已经推送到远端记录
前端
云浪1 小时前
Go 并发实战:从零实现一个高并发安全的任务调度器
javascript·后端·go
Flynt2 小时前
axios 被投毒半年后,我把 npm 的"安全防线"实测了一遍:最信任的 SHA512 是安慰剂
前端·npm·node.js
excel3 小时前
Base62 和 Base64 有什么区别?
前端
风骏时光牛马4 小时前
大模型底层架构与AI源码深度剖析
前端
掘金挖土5 小时前
前端手摸手跑路之 AI 应用开发(九)
前端·后端
中文呀7 小时前
三维 GIS 离线缓存实战:逆向 CesiumOfflineCache,并亲手为它补上"自动更新"能力
前端