<list>
<item v-for="item in items" :item="item" :key="item.id">...</item>
</list>
items = [{
id: 1,
age: 24,
public: 0
}, {
id: 2,
age: 23,
public: 0
}, {
id: 3,
age: 52,
public: 1
}]
есть массив объектов, каждый элемент котоорого, через пропсы, в цикле, передается компоненту. на действие пользователя, внутри этого компонента, нужно менять поле соответствующего объекта
сейчас я знаю как это сдлеать двумя способами, оба работают, но почему-то кажется что второй вариант слишком легкий и у него есть подводные камни.
props: ['item'],
methods: {
updatePublic1() {
this.$store.commit('update:public1', this.item.id)
},
updatePublic2() {
this.$store.commit('update:public2', this.item)
}
}
'update:public1'(state, id) {
const item = state.items.find(el => el.id === id)
item.public = !item.public
}
'update:public2'(state, item) {
item.public = !item.public
}
хотелось бы спросить тех кто опытнее во вью, чем плох второй способ? пысы: код немного утрирован для простоты понимания