vuex新手进阶篇之actions的使用方法

 更新时间:2022年10月19日 15:24:32   作者:Jay丶千珏  
actions用来处理mutations中的异步操作,触发mutations中的函数,下面这篇文章主要给大家介绍了关于vuex新手进阶篇之actions的使用方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

紧接上篇文章,本篇文章讲vuex ,如何去改变state ,actions的使用,我依然使用了vuex的modules

1.设置actions事件

index.js

dict.js

2.在组件中去分发actions

<template>
  <div>
    <div>
      改变vuex index.js 下的state
      <div>
        {{ $store.state.userInfo.name + "---" + $store.state.userInfo.age }}
      </div>
      <div>
        <button @click="changeUserInfo">修改方式1</button>
      </div>
      <div>
        <button @click="changeUserInfo2">修改方式2</button>
      </div>
    </div>
 
    --------------------------------------------------
 
    <div>
      改变vuex index.js modules下的dict 下的state
      <div>
        {{ $store.state.dict.taskTypeDict }}
      </div>
      <div>
        <button @click="changeDict">修改方式1</button>
      </div>
      <div>
        <button @click="changeDict2">修改方式2</button>
      </div>
    </div>
  </div>
</template>
 
<script>
import { mapActions } from "vuex"; //方式二 1.首先引入
export default {
  methods: {
    //   方式一,dispatch分发事件
    changeUserInfo() {
      this.$store.dispatch("getUserInfo");
    },
    // 方式二
    ...mapActions(["getUserInfo2"]), //2.使用mapActions函数将组件的 methods 映射为 store.dispatch 调用
    changeUserInfo2() {
      this.getUserInfo2(); //3.调用
    },
    // -------------------------------------------------------------------------------------------
    //因为我们在modules下开启了命名空间,所以我们在调用dict下的Actions时,需在前方加上空间名字
    changeDict() {
      this.$store.dispatch("dict/getTaskTypeDict");
    },
    //因为我们开辟了命名空间,故需要重写一个方法名,进行承接映射,注意此处不再是数组,而是一个对象
    ...mapActions({ getDicts: "dict/getTaskTypeDict2" }),
    changeDict2() {
      this.getDicts();
    },
  },
};
</script>

3.注意点

action 类似于 mutation,不同在于

1.action 提交的是 mutation事件,而不是直接去改变state的状态值,改变state的值只有通过mutation

2.action 可以包含任意异步操作

actions的细节补充

1.参数问题

2.context的其他属性

3.另外一种提交风格(见上以对象的形式进行分发)

//store的index.js中
actions: {
    // 放函数
    // 1.参数问题
    incrementAction(context, payload) {
      console.log(payload)
      setTimeout(() => {
        context.commit('increment')
      }, 1000);
    },
    // 2.context的其他属性
    decrementAction({ commit, dispatch, state, rootState, getters, rootGetters }) {
      commit("decrement")
    }
  }

 

总结

到此这篇关于vuex新手进阶篇之actions使用的文章就介绍到这了,更多相关vuex actions的使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue配合Django使用方式

    Vue配合Django使用方式

    Vue.js是前端三大框架之一,以其轻巧、高性能的特性脱颖而出,Vue.js专注于构建数据驱动的Web界面,采用渐进式设计,易于上手,支持组件化开发,核心功能包括响应式数据绑定和视图组件的组合,Vue还提供了生命周期、事件绑定等多种功能,支持ES6语法
    2024-09-09
  • 详解vue后台系统登录态管理

    详解vue后台系统登录态管理

    这篇文章主要介绍了vue后台系统登录管理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • vue-router定义元信息meta操作

    vue-router定义元信息meta操作

    这篇文章主要介绍了vue-router定义元信息meta操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • Vue中定义src在img标签使用时加载不出来的解决

    Vue中定义src在img标签使用时加载不出来的解决

    这篇文章主要介绍了Vue中定义src在img标签使用时加载不出来的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • Vue使用watch同时监听多个值的实现方法示例

    Vue使用watch同时监听多个值的实现方法示例

    这篇文章主要为大家介绍了Vue中使用watch同时监听多个值的实现方法示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • 基于Vue单文件组件详解

    基于Vue单文件组件详解

    下面小编就为大家带来一篇基于Vue单文件组件详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • element ui表格实现下拉筛选功能

    element ui表格实现下拉筛选功能

    这篇文章主要为大家详细介绍了element ui表格实现下拉筛选功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • Vue Cli 3项目使用融云IM实现聊天功能的方法

    Vue Cli 3项目使用融云IM实现聊天功能的方法

    这篇文章主要介绍了Vue Cli 3项目 使用融云IM实现聊天功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • 浅谈VUE uni-app 常用API

    浅谈VUE uni-app 常用API

    这篇文章主要介绍了uni-app 常用API,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-10-10
  • vue2.0移动端滑动事件vue-touch的实例代码

    vue2.0移动端滑动事件vue-touch的实例代码

    这篇文章主要介绍了vue2.0移动端滑动事件vue-touch的实例代码,需要的朋友可以参考下
    2018-11-11

最新评论