javascript - 突变和动作有什么区别
问题描述
在 Vuex 中,同时具有“动作”和“突变”的逻辑是什么?
我理解组件无法修改状态的逻辑(这似乎很聪明),但同时拥有动作和突变似乎你正在编写一个函数来触发另一个函数,然后改变状态。
“动作”和“突变”之间有什么区别,它们如何协同工作,更重要的是,我很好奇 Vuex 开发人员为什么决定这样做?
我试过了 .......
import Vuex from 'vuex'
const store = new Vuex.Store({
state: {
count: 1
},
mutations: {
INCREMENT (state) {
// mutate state
state.count++
}
}
})
错误代码 502
解决方案
动作和突变的行为相似,因此不同之处在于:
- Actions 不能直接改变你的 state,所以他们需要对你的 mutation 提交一个操作。
- 思考像你的函数这样的动作。
- 突变负责修改您在 Vuex 商店中的状态。要调用突变,您必须提交调用突变的操作。
例子:
actions: {
MODIFY({dispatch, commit, getters, rootGetters}, obj) {
//Do something
commit('mymutation', obj)
}
}
mutations: {
mymutation(state, obj) {
store.state.count = 1
}
}
您可以在Vuex 文档中查看有关突变和操作的更多信息
推荐阅读
- ios - 如何将 IBOutlet 值从视图传递到 VIPER iOs 中的交互器?
- ios - 在 Swift 4 上调整 UIImage 视图的大小
- ember.js - 升级 Ember 时出现未知的全局错误
- elasticsearch - 在多/所有弹性搜索嵌套字段中动态搜索
- apache-camel - 根据找到的文件数量,使用 Apache Camel 将文件移动到不同的目录
- vba - VBA认为整数是对象
- pyspark - 如何仅使用 pyspark 函数查找日期
- vue.js - 在vue js中动态添加的字段内添加动态添加的字段?
- paperjs - Configure style of auto-drawn bounding box/selection outlines
- javascript - 如何提取 React 库以分离包?