我发现您可以将商店突变函数传递给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
相比,直接调用变异函数可以吗?
答案 0 :(得分:1)
传递事件对象是否存在性能问题?
并非如此,您必须经常传递默认事件,因为如果传递自己的有效负载,则不再将其传递给函数或方法。
与使用$ store.commit相比直接调用变异函数可以吗?
如果您直接通过突变或调用操作来更改状态并使用提交,那并没有什么关系。它与通用软件设计有关。变异会改变您状态的一件事。动作可以调用多个突变。如果要更改状态的多个内容,则应使用一个动作来触发这些更改。这样,您的软件将变得更易于维护且更易于调试。