-
在store的mutations函数中不能执行异步操作,例如不能使用setTimeout()方法
-
只有mutations才能操作state中的数据,只有actions才能操作mutations中的方法
-
actions操作mutations中的函数,方式1
| |
| import { createStore } from 'vuex' |
| export default createStore({ |
| state: { |
| count: 0 |
| }, |
| mutations: { |
| add(state) { |
| state.count++; |
| } |
| }, |
| actions: { |
| addAsync(context){ |
| setTimeout(function(){ |
| context.commit('add') |
| },2000) |
| } |
| }, |
| modules: { |
| } |
| }) |
| |
| |
| <template> |
| <div> |
| <button @click="btnHandler3">+1_Async</button> |
| </div> |
| </template> |
| |
| <script> |
| export default { |
| methods: { |
| btnHandler3() { |
| |
| this.$store.dispatch('addAsync') |
| } |
| } |
| } |
| </script> |
| |
| import { createStore } from 'vuex' |
| export default createStore({ |
| state: { |
| count: 0 |
| }, |
| mutations: { |
| addN(state, step) { |
| state.count += step; |
| } |
| }, |
| actions: { |
| addNAsync(context, step) { |
| setTimeout(function(){ |
| context.commit('addN', step) |
| }, 2000); |
| } |
| }, |
| modules: { |
| } |
| }) |
| |
| |
| <template> |
| <div> |
| <button @click="btnHandler4">+N_Async</button> |
| </div> |
| </template> |
| |
| <script> |
| export default { |
| methods: { |
| btnHandler4() { |
| this.$store.dispatch('addNAsync', 5) |
| } |
| } |
| } |
| </script> |
- actions异步调用mutations中的函数,方式2
| |
| import { createStore } from 'vuex' |
| export default createStore({ |
| state: { |
| count: 0 |
| }, |
| mutations: { |
| sub(state) { |
| state.count--; |
| } |
| }, |
| actions: { |
| subAsync(context){ |
| setTimeout(function(){ |
| context.commit('sub') |
| }, 2000); |
| } |
| }, |
| modules: { |
| } |
| }) |
| |
| |
| <script> |
| import { mapActions } from "vuex"; |
| export default { |
| methods: { |
| |
| ...mapActions(['subAsync']), |
| btnHandler3() { |
| this.subAsync(); |
| } |
| } |
| }; |
| </script> |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术