Tôi đã sử dụng Vue được một thời gian và kinh nghiệm của tôi luôn là một phương pháp sẽ tính toán lại nếu dữ liệu phản ứng cơ bản của nó được cập nhật. Tôi đã gặp thông tin mâu thuẫn trên SO:
- Tôi đã cố gắng trả lời câu hỏi này và đã được nói nhiều lần rằng đây không phải là trường hợp.
- Câu trả lời được chấp nhận ở đây chỉ ra rằng "[một phương thức] sẽ chỉ được đánh giá khi bạn gọi nó một cách rõ ràng."
Tôi đã tìm kiếm thông qua các tài liệu và tôi không thấy bất cứ điều gì cực kỳ rõ ràng.
Nếu chúng không phản ứng, thì tại sao ví dụ này hoạt động?
<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);
},
},
};
Tôi thực sự muốn có một câu trả lời dứt khoát và thỏa mãn mà cộng đồng này có thể tham khảo.
