vuex-3-actions

简介: 写几遍 思路更加清晰了 ,理解也更透彻了欢迎大家一起学习交流

1.前言


写几遍 思路更加清晰了 ,理解也更透彻了

欢迎大家一起学习交流


2. what  actions


Action 类似于 mutation,不同在于:

Action 提交的是 mutation,而不是直接变更状态。

Action 可以包含任意异步操作


3. 上代码


组件内 使用

这样写 分的清楚 mutationAction

待会 用辅助函数

Action 通过 store.dispatch方法触发:

注意不要拼错

Ascy 异步

Sy 同步


methods: {
    changeStoreNumSy() {
      this.$store.commit("reduceSync", { num: 2 });
    },
    changeStoreNumASy() {
      this.$store.dispatch("reduceAscync");
    },
  },

store.js


state: {
    num:8,
},
  mutations: {
    reduceSync(state,obj){
      // state.num -= obj.num
      setTimeout(()=>{
          // 模拟数据请求
          // 不能进行异步更新
         state.num -= obj.num  
      },1000)
    }
  },
  // 类似于 mutaion
  actions: {
//  commit参数 等价于这个 var {commit} = context
    reduceAscync({commit }){
      setTimeout(() => {
        commit('reduceSync', {num:5})
      }, 1000);
    }
// 第二种写法
    // 异步的递减 context 类似store对象
   // reduceAscync(context){
    //   setTimeout(() => {
    //     context.commit('reduceSync', {num:5})
    //   }, 1000);
    // }
  },

乍一眼看上去感觉多此一举,我们直接分发 mutation 岂不更方便?为啥还要通过 action 周转下呢 ?

因为 mutation 必须同步执行

Action 就不受约束!我们可以在 action 内部执行异步操作


4. 辅助函数写法


23SX7)W6SOQ8AFON$~`T6}L.png

注意

1.引入别忘了


import {mapMutations} from "vuex"
import { mapActions } from 'vuex'
  1. actions的辅助函数参数 是对象 需要加一个 key
  2. 调用的时候 用这个 key




相关文章
|
11月前
|
前端开发 JavaScript BI
轻松搞定vue3+Pinia-2-修改state-patch-actions
轻松搞定vue3+Pinia-2-修改state-patch-actions
222 0
|
5月前
|
前端开发 数据处理 开发者
vuex中mutations详解,与actions的区别
Vuex 的 Mutations 是用于改变 Vuex Store 中状态的一种方式。它是一个同步的操作,用于直接修改 Store 中的状态。
|
2月前
|
存储 JavaScript API
Vuex的魔法宝典:掌握State, Getters, Mutations和Actions,让状态管理不再是难题
【8月更文挑战第27天】Vuex是Vue.js应用程序的状态管理工具,通过集中式存储管理组件状态并确保状态按照预定义的规则发生变化。
65 0
|
2月前
|
存储 JavaScript 前端开发
Redux 中 Store 的意义是什么?
【8月更文挑战第30天】
27 0
|
3月前
|
监控 JavaScript
VUEX 使用学习三 : mutations
VUEX 使用学习三 : mutations
20 0
|
5月前
|
JavaScript
如何在Vuex中定义和使用getters和actions
在Vuex中,`getters`用于派生状态值,类似Vue的计算属性,例如从`todos`状态中过滤已完成/未完成任务。`actions`则处理异步操作,如模拟加载数据,通过`commit`改变状态。
|
5月前
|
JavaScript
vuex如何在actions中传递参数
在Vuex的`actions`中传递参数可以提高其灵活性和复用性。
|
11月前
|
前端开发 API
vue3中Pinia的使用之actions
vue3中Pinia的使用之actions
|
5月前
|
JavaScript 前端开发 测试技术
vuex中Actions详解
- Actions 是 Vuex 中的一个重要概念,用于处理异步操作和触发mutations。 - Actions 可以包含任意的 JavaScript 逻辑,包括异步操作(如发送 AJAX 请求)。 - Actions 通过调用 store.dispatch 方法来触发mutations。
|
5月前
|
存储 JavaScript 前端开发
vuex中的state
vuex中的state
46 0