Vue2中
论证Demo

结果:v-for的优先级比v-if大

看源码:

通常解决:使用template包裹一层
<template v-if="isShow">....</template>
结论:
- v-for的优先级比v-if的高、
- 会影响渲染函数的生成结果,打断点,找到源码中会发现,执行的顺序不同
- 如果同时出现,每次渲染都会执行循环再判断,浪费性能
- 要避免这种情况,在外层嵌套template,在这一层进行v-if判断,然后在内部进行v-for循环
- 如果在数组内有需要判断的,推荐使用计算属性过滤掉,提供一个需要显示的数组