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 到组件计算属性
相关推荐
shmily麻瓜小菜鸡37 分钟前
JavaScript / TypeScript 易踩坑知识点 —— 异步编程类
开发语言·javascript·typescript
tsumikistep1 小时前
【前端】Vue + Axios 跨域问题实战:7070 代理转发 8080 + 401 报错分析(黑马外卖)
前端·javascript·vue.js
lichenyang4531 小时前
鸿蒙首页从等高商品 Grid 到双列瀑布流:同一张图也能做出小红书式浏览节奏
前端
里欧跑得慢1 小时前
Flutter主题与样式详解
前端·css·flutter·web
计算机魔术师1 小时前
TPU推理性价比翻50%,NVIDIA的护城河要见底了?
前端
IT_陈寒2 小时前
Python的多线程就是个假把式,我算是体验到了
前端·人工智能·后端
OpenTiny社区2 小时前
【直播分享】GenUI SDK 技术公开课第二讲 | GenuiChat 核心配置深度解析
前端·github
计算机魔术师2 小时前
kernel.org 每天 600 万次请求,98% 不是人点的
前端
今日无bug3 小时前
从0到1手撕流式输出:Vue3 + Vite 实现 LLM 流式响应全解析
前端·vue.js·vite
光影少年3 小时前
react navite跨端项目的痛点、踩过哪些坑、怎么解决
前端·react native·react.js