@egyptForce

Как правильно мутировать state?

<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
}


хотелось бы спросить тех кто опытнее во вью, чем плох второй способ? пысы: код немного утрирован для простоты понимания
  • Вопрос задан
  • 102 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы