为什么不建议v-for和v-if一起使用

<div v-for="(item,index) in color" :key="index" v-if="flag"> {{item}} </div>
  data() {
    return {
      color: ['red', 'yellow', 'blue'],
      flag: true
    }
  }

这样可以渲染,但是v-for的优先级高于v-if,如果flag为false,那么实际上是执行了创建再执行了销毁,所以不建议这么写

建议的写法:

    <template v-if="flag">
      <div v-for="(item,index) in color" :key="index"> {{item}} </div>
    </template>

或:

    <div v-for="(item,index) in color" :key="index">
      <template v-if="flag">{{item}}</template>
    </div>
原文地址:https://www.cnblogs.com/wuqilang/p/14946101.html