官方不建议一起使用,但是有时候面试的时候会问到。
在vue2中是v-for先与v-if的。
源码js编译结果:
_c()就是vm.$createElement(),意思是创建一个虚拟的element,就是返回值是VNode。
_l就是renderlist函数,第2个参数是一个回调函数,里面会传入的item。
先走v-for的逻辑,再根据v-if的条件去判断是否渲染li这个元素,如果没命中v-if的条件,则渲染一个注释节点。
但是在vue3中优化了这里,先判断后循环,性能会更好。
相当于:
性能明显较vue3有了提升
很明显这个方法就是跳不出的
旁门左道1:循环到指定节点后splice()把剩余的项删除,或者让数组的length=0
?旁门左道2:到指定节点后抛歌错误,终止循环。
其实如果是数据量大的话更推荐使用some。