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 到组件计算属性
相关推荐
w_t_y_y18 分钟前
vue父子组件通信(二)祖先调用inject
前端·javascript·vue.js
哆哆啦0019 分钟前
URL 重写规则和静态资源解析逻辑
前端·浏览器·url
wkj00119 分钟前
JavaScript模块化技术进程详解
开发语言·javascript·ecmascript
IT_陈寒20 分钟前
Java的Stream.peek()千万别乱用,血泪教训
前端·人工智能·后端
w_t_y_y20 分钟前
VUE组件配置项(二)data和props
前端·javascript·vue.js
Martin -Tang30 分钟前
uniapp+vue3+ts自定义表格
javascript·vue.js·uni-app
问心无愧051335 分钟前
ctf show web入门 89
android·前端·笔记
hexu_blog36 分钟前
前端vue后端java+springboot如何显示视频压缩
前端·vue.js·vue压缩视频·java压缩视频·指定大小压缩视频
欧阳天风43 分钟前
electron播放本地音乐的问题
前端·javascript·electron
艾伦野鸽ggg1 小时前
CSS布局与动效知识梳理
前端·css