Ich benutze Vue schon eine Weile und meine Erfahrung war immer, dass eine Methode neu berechnet wird, wenn die zugrunde liegenden reaktiven Daten aktualisiert werden. Ich habe widersprüchliche Informationen zu SO gefunden:
- Ich habe versucht, diese Frage zu beantworten , und mir wurde mehrmals gesagt, dass dies nicht der Fall ist.
- Die akzeptierte Antwort hier zeigt an, dass „[ein Verfahren] wird nur ausgewertet werden , wenn Sie es explizit nennen.“
Ich habe die Dokumente durchsucht und nichts unglaublich klares gesehen.
Wenn sie nicht reaktiv sind, warum funktioniert dieses Beispiel dann?
<ul>
<li v-for="animal in animals" :key="animal.id">
<span v-if="isAwesome(animal)">{{ animal.name }}</span>
</li>
</ul>
export default {
data() {
return {
awesomeAnimalIds: [],
animals: [
{ id: 1, name: 'dog' },
{ id: 5, name: 'cat' },
{ id: 9, name: 'fish' },
],
};
},
created() {
setTimeout(() => {
this.awesomeAnimalIds.push(5);
}, 1000);
setTimeout(() => {
this.awesomeAnimalIds.push(9);
}, 2000);
},
methods: {
isAwesome(animal) {
return this.awesomeAnimalIds.includes(animal.id);
},
},
};
Ich hätte wirklich gerne eine endgültige und zufriedenstellende Antwort, auf die sich diese Community beziehen kann.
