相关疑难解决方法(0)

Vue 中的方法是反应式的吗?

我已经使用 Vue 一段时间了,我的经验一直是,如果更新其底层反应性数据,方法将重新计算。我在 SO 上遇到了相互矛盾的信息:

  • 我试图回答这个问题,但多次被告知事实并非如此。
  • 接受的答案在这里指出,“当你明确地调用它的方法[]将只进行评估。”

我搜索了文档,但没有看到任何非常清楚的内容。

如果他们不是反应性的,那么为什么这个例子有效?

<ul>
  <li v-for="animal in animals" :key="animal.id">
    <span v-if="isAwesome(animal)">{{ animal.name }}</span>
  </li>
</ul>
Run Code Online (Sandbox Code Playgroud)
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);
    },
  }, …
Run Code Online (Sandbox Code Playgroud)

vue.js

13
推荐指数
1
解决办法
2735
查看次数

标签 统计

vue.js ×1