首页IT科技vue中的action(Vuex系列之 Action 的使用)

vue中的action(Vuex系列之 Action 的使用)

时间2025-07-30 09:14:44分类IT科技浏览9731
导读:Action 用于处理异步任务。...

Action 用于处理异步任务                 。

如果通过异步操作变更数据                 ,必须通过 Action                        ,而不能使用 Mutation        ,但是在 Action 中还是要通过触发Mutation 的方式间接变更数据                        。

一                 、定义 Action

// 创建store数据源                 ,提供唯一公共数据 export default new Vue.Store({ // state 中存放的就是全局共享的数据 state: { count: 0 }, mutations: { add(state) { // 变更状态 state.count++; }, addN(state, step) { state.count += step; } }, actions: { addAsync(context) { setTimeout(() => { // 在 actions 中                         ,不能直接修改 state 中的数据; // 必须通过 context.commit() 触发某个 mutation 才行 context.commit("add"); }, 1000); } }, getters: {} });

触发 actions 异步任务时携带参数:第二个参数即为传递的参数

// 创建store数据源        ,提供唯一公共数据 export default new Vue.Store({ // state 中存放的就是全局共享的数据 state: { count: 0 }, mutations: { add(state) { // 变更状态 state.count++; }, addN(state, step) { state.count += step; } }, actions: { addAsync(context) { setTimeout(() => { // 在 actions 中        ,不能直接修改 state 中的数据; // 必须通过 context.commit() 触发某个 mutation 才行 context.commit("add"); }, 1000); }, addNAsync(context, step) { setTimeout(() => { context.commit("addN", step); }, 1000); } }, getters: {} });

二                        、触发 Action

1        、触发 actions 的第一种方式

通过dispatch触发store的异步函数                         ,第一个参数为异步函数名                ,第二个参数为携带的参数        。

this.$store.dispatch("addAsync");

或者

this.$store.dispatch("addNAsync", 5);

2                 、触发 actions 的第二种方式:

2.1                         、从 vuex 中按需导入 mapActions 函数

import { mapActions } from "vuex";

通过刚才导入的 mapActions 函数        ,将需要的 actions 函数                         ,映射为当前组件的 methods 方法:

2.2        、将指定的 actions 函数                ,映射为当前组件的 methods 函数

methods: { ...mapActions(["addAsync", "addNAsync"]) }

写在最后

如果你感觉文章不咋地//(ㄒoㄒ)//,就在评论处留言                         ,作者继续改进;o_O???

如果你觉得该文章有一点点用处                        ,可以给作者点个赞;\\*^o^*//

如果你想要和作者一起进步,可以微信扫描二维码                 ,关注前端老L

;~~~///(^v^)\\\~~~

谢谢各位读者们啦(^_^)∠※!!!
声明:本站所有文章                        ,如无特殊说明或标注        ,均为本站原创发布                 。任何个人或组织                 ,在未征得本站同意时                         ,禁止复制        、盗用                         、采集                、发布本站内容到任何网站        、书籍等各类媒体平台                         。如若本站内容侵犯了原著者的合法权益        ,可联系我们进行处理        。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
linux 限流(Linux下通过受限bash创建指定权限的账号代码详解) 德国服务器 大选(德国服务器应该如何选择)