【发布时间】:2017-02-02 09:29:48
【问题描述】:
我正在努力在创建对象的默认属性和保持它们的“反应性”之间找到正确的平衡。重要说明我正在为我的商店使用 Vuex。
我已经查过了:https://vuejs.org/v2/guide/reactivity.html
但是,这似乎并不能完全回答我的问题。
举一个很好的例子来说明我的问题:
在我的“商店”中,我有包含联系人的产品 (json)。在我的应用程序中,有时会将新联系人添加到产品中。为此,我有一个行动。
const actions = {
addContact: ({ commit }, payload) => {
commit('ADD_CONTACT', payload)
}
}
这称为突变。
const mutations = {
'ADD_CONTACT' (state, payload) {
var contact = {'id': payload.contact.contactId, 'gender': payload.contact.gender, 'firstName': payload.contact.firstName, 'initials': payload.contact.initials, 'lastName': payload.contact.lastName, 'middleName': payload.contact.middleName, 'birthDay': payload.contact.birthDay, 'childern': []}
state.products.find(function (product) {
if (product.id === payload.product_id) {
if (product.contacts) {
product.contacts.push(contact)
} else {
Vue.set(product, 'contacts', [])
product.contacts.push(contact)
}
}
})
}
}
如您所见,我检查产品是否有联系人数组,如果没有,我创建数组。这是正确的方法吗?或者首先创建一个空数组是否更有意义,例如通过定义一个空数组“childern”来添加联系人时。
var contact = {'id': payload.contact.contactId, 'childern': []}
谢谢!
【问题讨论】: