Вы можете исправить это, добавив свойство activeIcon
к каждому элементу задачи и переключая их специально, например:
data: {
todos: [
{ text: "Learn JavaScript", id: "Location4", activeIcon: false },
{ text: "Learn Vue", id: "Location3", activeIcon: false },
{ text: "Play around in JSFiddle", id: "Location2", activeIcon: false },
{ text: "Build something awesome", id: "Location1", activeIcon: false }
]
}
и метод обновления starLocation
, например:
starLocation(id) {
try {
var todo = this.todos.find(t => t.id === id)
todo.activeIcon = !todo.activeIcon;
} catch (error) {
alert(error);
}
}
и, наконец, обновите ваш шаблон, например:
<p
v-on:click="starLocation(item.id)"
:class="{ activeIcon: item.activeIcon}"
:key="item.id"> STAR
</p>
Рабочая демонстрация