结论: 1、显然v-for优先于v-if被解析(把你怎么知道的告诉面试官) 2、如果同时出现,每次渲染都会先执行循环再判断条件,无论如何循环都不可避免,浪费了性能 3、要避免出现这种情况,则再外层嵌套template,再这一层进行v-if判断,然后在内部进行v-for循环
vue源码中的generate方法是ast转换成代码字符串,其中调用的genElement方法里先判断了v-for,再判断v-if: