关于mapState和mapMutations和mapGetters 和mapActions辅助函数的用法及作用(四)-----mapActions

介绍mapActions辅助函数:

Action提交的是Mutation,不能够直接修改state中的状态,而Mutations是可以直接修改state中状态的;
Action是支持异步操作的,而Mutations只能是同步操作。

简单的:

const mutations = { add(state,val){ state.count++ }, reduce(state, val){ state.count -- } } const actions = { //这里的actionAdd是组件中和所触发的事件相对应的方法 actionAdd(context){ context.commit('add')//这里的add是mutations中的方法 }, //这里是通过参数结构来简化代码。 actionReduce( { commit } ){ commit('reduce') }

    Actions接受一个context对象参数,该参数具有和store实例相同的属性和方法,所以我们可以通过context.commit()提交mutations中的方法,

    或者可以通过context.state和context.getters去获取state和getters。

    context作为上下文对象,有共享store实例的属性和方法的权利,但是切记:context并不是store实例本身。

    { commit } 这里直接把commit为属性的对象传过来,简化代码。

Action 通过 store.dispatch 方法触发 add() { this.$store.dispatch('actionAdd') }, reduce() { this.$store.dispatch('actionReduce') } Actions支持同样的载荷方式和对象进行分发: add() { this.$store.dispatch('actionAdd', { id: 1 }) }, reduce() { this.$store.dispatch({ type: 'actionReduce', id: 2 }) }
actions里对应的方法中第二个参数接受分发是传递的值
<button @click = 'countAdd'>+</button> <button @click = 'countReduce'>-</button> -------------------------------------------------------- import { mapState, mapMutations, mapActions } from 'vuex' methods: { //如果名字不同,使用mapActions辅助函数的对象参数 //...mapActions( { add: 'countAdd', reduce: 'countReduce'} ) //当action中的函数名和组件节点的方法名相同的时候,使用mapActions辅助函数的数组参数 ...mapActions( ['countAdd', 'countReduce'] ) }

 


__EOF__

本文作者蓝色帅-橙子哥
本文链接https://www.cnblogs.com/lhl66/p/8261921.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   鱼樱前端  阅读(6377)  评论(1编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
 
拂雪 - 不才
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.
  1. 1 往后余生 王贰浪
  2. 2 拂雪 不才
  3. 3 我的一个道姑朋友 洛尘鞅
  4. 4 大田后生仔 王雨萌
点击右上角即可分享
微信分享提示