【发布时间】:2019-02-09 02:26:24
【问题描述】:
我发现您可以将存储突变函数传递到 HTML 事件中,例如:
//In the template
<input name="the_field" :value="the_field" @input="updateField"/>
// In the component
methods: {
...mapMutations(["updateField"])
}
// In the store
state: {
the_field: "a value"
},
mutators: {
updateField (state, e) {
state[e.target.name] = e.target.value;
}
}
因此,只需将事件作为有效负载传递,我就可以为特定范围提供通用字段更新功能,只要设置名称即可。
阅读文档和人们谈论的内容是使用this.$scope.commit("function_name", body),甚至用于从输入更新字段。在示例中,我需要编写一个进行该调用的组件方法,可能会挑选出特定数据,例如this.$scope.commit("updateField", {name: e.target.name, value: e.target.value})。传递事件对象是否存在性能问题?更重要的是,直接调用突变函数与使用$store.commit 是否可以?
【问题讨论】:
-
任何时候你都在想“在 Vuex 中这样做可以吗?”只需打开严格模式即可查看:vuex.vuejs.org/guide/strict.html
-
哦,很高兴知道谢谢!没有破坏它,有趣的是,当我打电话给
this.$store._modules.root.state.field_name = "value"时它没有破坏或发出警告,尽管它也没有应用更改。
标签: javascript vue.js vuex