v-fo和if同时在一个元素上使用的话会影响性能,可以在元素外面再嵌套一层template
,template
负责v-for的遍历,里面的元素负责v-if的判断:
<div>
<template v-for="item in list">
<div v-if="isActive" :key="item">
{{item.title}}
</div>
</template>
</div>
需要注意的是:key不能写在template标签上,否则会报错;因为template是一个辅助标签,是不会显示在浏览器上的;也就是不会渲染到浏览器,所以key属性对它不会生效(key的作用就是解决渲染问题);