vuex中actions中函数默认自带参数context,为什么还可以写成{commit}或者{dispatch}或者其他的

context的话就相当于state的父亲,上一级,包含着state中的所有属性

context:{

state, 等同于store.$state,若在模块中则为局部状态

rootState, 等同于store.$state,只存在模块中

commit, 等同于store.$commit

dispatch, 等同于store.$dispatch

getters 等同于store.$getters

}

常规写法调用的时候会使用context.commit,但更多的是使用es6的变量解构赋值,也就是直接在参数的

位置写自己想要的属性,如:{commit}。

例如:

prev ({dispatch, state}) {

const list = state.listInfo.songList

if (state.listInfo.songIndex === 0) {

state.listInfo.songIndex = list.length

} else {

state.listInfo.songIndex--

}

const hash = list[state.listInfo.songIndex] && list[state.listInfo.songIndex].hash

dispatch('getSong', hash)

},

dispatch:含有异步操作;而commit只是同步操作,都是提交 mutation,因为只能在mutation中才能够改变state中的值,然而mutation中只能进行同步操作,从而actions就出现了,actions允许异步和同步操作,但是对于actions的操作其实就是提交mutation来完成

来源:vuex中actions中函数默认自带参数context,为什么还可以写成{commit}或者{dispatch}或者其他的_单人�的博客-CSDN博客

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 习惯养成很容易,戒掉却很难!!! 什么是Vuex? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式...
    前端又又阅读 2,883评论 0 1
  • 1. Vuex简介 Vuex是专门用来管理vue.js应用程序中状态的一个插件。他的作用是将应用中的所有状态都放在...
    黄黄黄大帅阅读 473评论 0 0
  • ### store 1. Vue 组件中获得 Vuex 状态 ```js //方式一 全局引入单例类 // 创建一...
    芸豆_6a86阅读 809评论 0 3
  • 安装 npm npm install vuex --save 在一个模块化的打包系统中,您必须显式地通过Vue.u...
    萧玄辞阅读 3,075评论 0 7
  • 一、项目目录 首先,让我先浏览下项目目录。如下: 二、入口 接着,我们从入口文件 index.js 开始,逐级的去...
    anarkhz阅读 1,209评论 1 3

友情链接更多精彩内容