博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vue 教程第十六篇—— Vuex 之 action
阅读量:6277 次
发布时间:2019-06-22

本文共 1154 字,大约阅读时间需要 3 分钟。

Action

先引用官方文档的说法

Action 类似于 mutation,不同在于:

  • Action 提交的是 mutation,而不是直接变更状态。
  • Action 可以包含任意异步操作。

实现上是没问题,action 调用 mutation,但关于异步要放到 action 的说法,个人观点是没有这个必要,在 mutation 的小结中有说到过,mutation 只做同步也不是制性的

在使用 Action 前先与 Mutation 做个小结

  • action 并不是必须的,项目中完全可以不需要 action
  • 异步操作可放 mutation 和 action,只要开发时方便,都没有影响
  • 关于官方说 action 异步,mutation 同步的说法只是为了能用 devtools 追踪状态变化。
  • action 中的方法和 mutation 一样,最多只有两个形参,第一个为 context,可以理解为 store,第二个为手动传的参数
  • action 用 commit() 来触发 mutation
  • view 层通过 store.dispath 来分发 action

简单使用

在 action

store.js

import Vue from 'vue'import Vuex from 'vuex'Vue.use(Vuex)let state = {    count: 0}let getters = {    total: (state) => (symbol) => {        return (symbol || '$') + state.count;    }}let mutations = {    increment(_state, n){        console.log(arguments)        _state.count += n || 1;    },    decrement(){        state.count -= 1;    }}let actions = {    increment(context, n){        context.commit('increment', n)    }}const store = new Vuex.Store({    state,    getters,    mutations,    actions})export default store

分发 action

mapActions

和 mutation 的使用方法基本一样

methods: {    ...mapActions(['increment']),    ...mapActions({add: 'increment'})}

转载地址:http://jogpa.baihongyu.com/

你可能感兴趣的文章
10年重新出发
查看>>
2019年-年终总结
查看>>
聊聊elasticsearch的RoutingService
查看>>
让人抓头的Java并发(一) 轻松认识多线程
查看>>
从源码剖析useState的执行过程
查看>>
地包天如何矫正?
查看>>
中间件
查看>>
Android SharedPreferences
查看>>
css面试题
查看>>
Vue组建通信
查看>>
用CSS画一个带阴影的三角形
查看>>
前端Vue:函数式组件
查看>>
程鑫峰:1.26特朗.普力挺美元力挽狂澜,伦敦金行情分析
查看>>
safari下video标签无法播放视频的问题
查看>>
01 iOS中UISearchBar 如何更改背景颜色,如何去掉两条黑线
查看>>
对象的继承及对象相关内容探究
查看>>
Spring: IOC容器的实现
查看>>
Serverless五大优势,成本和规模不是最重要的,这点才是
查看>>
Nginx 极简入门教程!
查看>>
iOS BLE 开发小记[4] 如何实现 CoreBluetooth 后台运行模式
查看>>