Vue中v-if和v-for为何不能连用?【Vue面试题】

作者: 我是小野森森分类: 野生技能协会 发布时间: 2020-08-04 23:28:10 浏览:19141 次

Vue中v-if和v-for为何不能连用?【Vue面试题】

大卫斯坦森:
其实没讲到问题的实质;实质是v-for优先执行,会创建对应的dom节点,如果v-if为false,会删除这个dom节点;这样创建后再删除,会造成页面卡顿。

老头真猛:
vscode!为啥大家最近都用vscode,我个人觉得webstorm更顺手啊[doge]

【回复】回复 @CV仔 :vscode启动快,可启动后插件加载有的就慢了。。。
【回复】一个付费 一个免费,一个启动慢 整体有厚重感,一个启动快感觉轻快
【回复】哈哈哈,那款用的顺手就用哪款![doge]
我是小野森森:
【喜欢Vue视频的小伙伴记得关注我,海量Vue视频即将来袭】

懒天使瞎哔哔:
有点小问题,如果v-for比v-if先执行,那应该把v-if放在前面,这样才能说明不是因为顺序[笑哭],当然我是不想翻源码,想直接听你准确结论的[doge]

【回复】回复 @哈默聊前端 :get了
【回复】回复 @前端哈默 :想请教一下,既然在vue3z中v-if的优先级更高,那是不是代表使用vue3的话就可以将v-if和v-for都写在同一个标签里了?谢谢[抱拳][抱拳]
【回复】Vue2是v-for比v-if优先级高,Vue3是v-if比v-for优先级高哦
粤Xxx:
奇数和偶数那一块是不是写反了?讲的很棒[点赞]

【回复】回复 @哈默聊前端 :想问一下up,利用数字0为false的判断的习惯多嘛,为啥我老是习惯不来看半天反应不过来[大哭],总是想if(num === 0)[笑哭]
【回复】回复 @icefery :0非全等转换为布尔值是为false
【回复】回复 @icefery :看个人习惯吧,像很多源码里都是if(!list.length)这种,多看看就好了哈[呲牙][呲牙]
荣耀11星:
老师如果v-if的条件需要用到v-for的index值是不是就解决不了了

zexiliudai:
讲的很好啊,谢谢up主。如果你用vue的eslint 默认配置,v-if和v-for连用以及v-for没有key都是会报错的

【回复】谢谢你的补充[鼓掌][鼓掌]
程风蓝:
up主真热情,这么多回复都会回,比B战上搜前端的一堆卖课卖加群的好多了

【回复】嘿嘿,每一个小伙伴的回复都是宝贵滴[呲牙][呲牙]
Dr_D老师:
建议将标题改为为啥不推荐v-if和v-for同时使用,因为你说不能的话,有些人会误以为两者同时使用会报错

【回复】配置eslint,v-for与v-if一起使用会报错的
【回复】对的,严格讲的话是不推荐
糖蒜儿哇:
牛 实际上就是v-for比v-if优先级高 如果v-if结果为false会删除v-for所创建的节点造成页面的卡顿

环山漫步:
列表渲染,结合实际需求,一般是根据列表元素的某个属性来决定是否显示,这种方式没有V-FOR.如何取到每个元素内的特定flag呢,这种原理可以讲讲,但是实际中意义不大,性能消耗两层跟一层差异到底多大...值得深究。

【回复】看了官方文档中也说到了这个问题,但是个人理解不是效能麻烦而建议不要这么操作,而是列表对应数组的响应操作问题吧…多探讨总是好的.

学习 程序员 视频教程 知识分享官招募令·第五期 前端 经验分享 JS

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!