vuex的actions属性是用来处理异步方法的,通过提交mutations实现。
actions里要传入两个参数context和playload
调用actions的时候,使用this.$store.dispatch("actionsName",playload)
store.js
import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) export const store = new Vuex.Store({ state: { prod: [ { name: "zs", age: 12 }, { name: "ls", age: 13 }, { name: "ww", age: 14 }, ] }, getters: { getValue(state) { var item = state.prod.map(ele => { return { name: ele.name + "__技术部", age: ele.age + 10 } }) return item; }, getAgeByName:(state)=>(name)=>{ var items = state.prod.find(ele=>{ if(ele.name === name){ return ele.age; } }) return items.age; } }, mutations: { getValue(state, num) { var items = state.prod.map(ele => { return { age: ele.age += num } }) return items; } }, actions: { getActionsValue(context, playload) { setTimeout(function () { context.commit("getValue", playload); }, 2000) } } })
home.vue
<template> <div> <table> <tr> <th>姓名</th> <th>年龄</th> </tr> <tr v-for="(item,i) in getValue"> <td>{{item.name}}</td> <td>{{item.age}}</td> </tr> </table> <hr> <table> <tr> <th>姓名</th> <th>年龄</th> </tr> <tr v-for="(item,i) in getVal"> <td>{{item.name}}</td> <td>{{item.age}}</td> </tr> </table> <hr> <button @click="getMutationsMethds(100)">mutations get</button> <hr> <button @click="getActionsMethods(200)">actions get</button> </div> </template> <script> export default { name: "Home", data () { return { }; }, computed:{ getValue(){ return this.$store.state.prod; }, getVal(){ return this.$store.getters.getValue; } }, methods:{ getMutationsMethds(num){ this.$store.commit("getValue",num); }, getActionsMethods(amount){ this.$store.dispatch("getActionsValue",amount); } }, created(){ console.log( this.$store.getters.getAgeByName("zs")); } } </script> <style lang="css" scoped> </style>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通