VUE 中的 v-for 和 v-if 是否可以共存

VUE 中的 v-for 和 v-if 是否可以共存

    • 前言
    • 1、面试经
    • 2、正确回答
    • 3、总结
      • 总结:

前言

要成功,先发疯,头脑简单往前冲!

三金四银,金九银十,多学知识,也不能埋头苦干,要成功,先发疯,头脑简单往前冲!
最近发现很多人也在问我v-for 和 v-if 的面试问题,那么下面我就个大家分析一下!

在这里插入图片描述

1、面试经


提到这个问题,很多人肯定会脱口而出:
	
 1. Vue2 中 不可以
 2. Vue3 中 可以

再往深问,可能少部分人会回答出:

1. Vue2 中 v-for 优先级比 v-if2. Vue3 中 v-if 优先级比 v-for

但是其实很多人都是背的,具体为啥会这样,很多人都没搞清楚,稍微再往深一问,95%的人就回答不出来了~

分析Vue2:

在项目中使用 v-for 和 v-if 共存与一个标签上,Vue2 中肯定会警告我们,不建议这么做,但是为啥不建议,根本没几个人知道~

在这里插入图片描述

	可以看到在 Vue2 中,会先循环,然后在循环中去判断,判断为真则正常渲染,
	判断为假则执行 _e 函数,_e函数就是注释的意思,就是把判断为假的节点注释掉,也就是:
	1、先走 v-for 循环 32、在循环体中走 v-if 判断
	3、判断 item === 2 则正常渲染,item === 2 则把这个节点注释掉
	所以最终选出出来 13 两个节点

因为其实我们只需要渲染2个节点,但是最终还是循环了3次,造成了性能浪费,也就是 v-for 优先级高于 v-if,共存时会造成性能浪费

分析Vue3:

但是在 Vue3 中,v-for 和 v-if 却是可以共存的,为什么呢?我们还是拿最简单的代码来分析

在这里插入图片描述

可以到这个网站:**https://play.vuejs.org/**,看到解析后的代码

在这里插入图片描述
在这里插入图片描述

可以看到,跟 Vue2 不同的是,Vue3 中是先走判断,然后再走循环的,也就是:
	1、先走 v-if 判断
	2、如果 item !== 2,就去走循环也就是 v-for
	3、如果 item == 2,就执行 createCommandVNode,创建一个注释节点
	也就是在 Vue3 中,v-if 优先级是高于 v-for 的,真正循环的只有13这两个节点,
	这提高了性能!
	因为在 v-for 和 v-if 共存的时候,Vue3 会在底层帮我们转换成

在这里插入图片描述

2、正确回答

	1、首先解答完vue2和vue3后的利和弊
	2、给出如何解决这个问题的思路,如使用computed处理

3、总结


总结就是不要让 v-if 和 v-for 共存在同一个标签中,遇到这种情况需要使用 computed 去计算,然后再去渲染!

在这里插入图片描述


总结:

前端路上 | 所知甚少,唯善学。
各位小伙伴有什么疑问,欢迎留言探讨。

— 关注我:前端路上不迷路 —




本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/330376.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

uniapp中uview组件库的NoticeBar 滚动通知 使用方法

目录 #平台差异说明 #基本使用 #配置主题 #配置图标 #配置滚动速度 #控制滚动的开始和暂停 #事件回调 #API #Props #Events 该组件用于滚动通告场景,有多种模式可供选择 #平台差异说明 AppH5微信小程序支付宝小程序百度小程序头条小程序QQ小程序√√√√…

2018年认证杯SPSSPRO杯数学建模B题(第一阶段)动态模糊图像全过程文档及程序

2018年认证杯SPSSPRO杯数学建模 B题 动态模糊图像 原题再现: 人眼由于存在视觉暂留效应,所以看运动的物体时,看到的每一帧画面都包含了一段时间内 (大约 1/24 秒) 的运动过程,所以这帧画面事实上是模糊的。对电影的截图来说&…

量化研究员!你应该如何写一手好代码

即使是Quant Researcher, 写一手高质量的代码也是非常重要的。再好的思路,如果不能正确地实现,都是没有意义的。 写一手高质量的代码的意义,对Quant developer来讲就更是自不待言了。这篇笔记就介绍一些python best practice。 始…

Unity Shader 的模板测试效果

模板测试是渲染管线中逐片元操作的一环,它的作用是筛选出指定模板的片元,而不符合模板的片元会被舍弃,从而做到一个遮罩的效果。 以下是Unity中实践的一个效果: 场景中可以看出,熊模型和茶壶模型都在差不多的位置&am…

idea社区版 MybatisCodeHelperPro插件使用介绍

文章目录 一、插件介绍二、idea社区版安装MybatisCodeHelperPro插件三、问题记录1. DatabaseHelper插件 加载不了部分数据库链接的列信息2. DatabaseHelper插件 数据库列显示顺序错乱3. MybatisCodeHelperPro插件 数据库字段不提示4. MybatisCodeHelperPro插件 特殊字段增加反引…

SpringBoot 统计API接口用时该使用过滤器还是拦截器?

统计请求的处理时间(用时)既可以使用 Servlet 过滤器(Filter),也可以使用 Spring 拦截器(Interceptor)。两者都可以在请求处理前后插入自定义逻辑,从而实现对请求响应时间的统计。 …

汽车芯片「新变量」

编者按:汽车行业的格局重构和技术革新,也在推动芯片赛道进入变革周期。不同商业模式的博弈,持续升温。 对于智能汽车来说,过去几年经历了多轮硬件和软件的性能迭代,甚至是革新,如今,市场正在进…

张驰咨询:六西格玛工具企业如何实现资源优化与效率最大化

在这个百年未有之大变局的时期,我们面临着前所未有的挑战与机遇。我一直在寻找提升效率,减少资源浪费的方法。而六西格玛培训提供了一个系统化的解决方案,它不仅是一套工具,更是一种精益思维。 让我们一起思考一个问题&#xff1a…

VMware workstation安装SUSE Linux Enterprise Server 12 SP5虚拟机并配置网络

VMware workstation安装SUSE Linux Enterprise Server 12 SP5虚拟机并配置网络 SUSE Linux Enterprise Server是企业级Linux系统,适合企业应用。该文档适用于在VMware workstation平台安装SUSE Linux Enterprise Server虚拟机。 1.安装准备 1.1安装平台 Windows…

设计一个网页爬虫

定义 User Case 和 约束 注意:没有一个面试官会阐述清楚问题,我们需要定义Use case和约束 Use cases 我们的作用域只是处理以下Use Case: Service 爬取一批 url 生成包含搜索词的单词到页面的反向索引给页面生成标题和片段– 标题和片段是…

【机器学习】机器学习变量分析第02课

当我们谈论用机器学习来预测咖啡店的销售额时,我们实际上是在处理一系列与咖啡销售相关的变量。这些变量就像是我们用来理解销售情况的“线索”或“指标”。那么,让我们用通俗易懂的方式来聊聊这些变量是怎么工作的。 特征变量:咖啡店的“档…

Spring MVC学习之——自定义日期转化器

日期转换器 在数据库中的日期数据是date类型,而如何我们想在页面自己添加数据,一般是使用年-月-日的形式,这种形式不仅date类型接收不到,而且传来的是String类型,此时,我们就可以自定义日期转换器来接收数…

JVM知识总结

1.概述 JVM指的是Java虚拟机,本质上是一个运行在计算机上的程序,他的职责是运行Java字节码文件,作用是为了支持跨平台特性。 功能: 装载字节码,解释/编译为机器码 管理数据存储和垃圾回收 优化热点代码提升效率 …

【数学建模】2024年华数杯国际赛B题-光伏发电Photovoltaic Power 思路、代码、参考论文

1 问题背景 中国电力构成包括传统能源(如煤炭、石油、天然气)、可再生能源(如水电、风能、太阳能、核能)和其他形式的电力。这些发电模式在满足中国巨大的电力需求方面发挥着至关重要的作用。据最新数据显示,中国总发电量超过20万亿千瓦时,居世界第一。…

【征服redis8】Redis的AOF持久化

Redis 支持多种持久化方式来保证数据的可靠性和持久性。前面我们介绍了RDB方式。我们我们介绍第二种方式——AOF(Append Only File)机制是一种常用的持久化方式,它记录了所有对 Redis 数据库进行修改的命令,在 Redis 重启时可以使…

echarts X轴数据过多导致重叠展示不全问题(已解决)

问题 x轴数据过多导致坐标轴数据重叠 修改后 List item interval为0代表每个标签都显示,即间隔为0! 将其设置为我们想要的数值即可。 xAxis: {type: "time",splitLine: {show: false,},axisLine: {show: false,lineStyle: {color: &qu…

Spring MVC学习——解决请求参数中文乱码

解决请求参数中文乱码问题 1.POST请求方式解决乱码问题 在web.xml里面设置编码过滤器 <filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><…

lua使用resty.http做nginx反向代理(https请求,docker容器化部署集群),一个域名多项目转发

下载使用 链接&#xff1a;https://pan.baidu.com/s/1uQ7yCzQsPWsF6xavFTpbZg 提取码&#xff1a;htay –来自百度网盘超级会员V5的分享 在根目录下执行: # 从 github 上下载文件 git clone https://github.com/ledgetech/lua-resty-http.git # 将 lua-resty-http/lib/ 下的 r…

客户案例 | 思腾合力助力某能源公司地质数据智能化计算平台建设

助力某能源公司 地质数据智能化计算平台建设 石油行业是全球最大的行业之一&#xff0c;涉及到从地下或海底开采原油和天然气的勘探、开发、生产、运输、精炼和销售的全过程。石油不仅是世界上最主要的能源之一&#xff0c;还是化工产品的主要原料。石油行业的运作对全球经济有…

Java多线程并发篇----第二十篇

系列文章目录 文章目录 系列文章目录前言一、拒绝策略二、Java 线程池工作过程三、JAVA 阻塞队列原理前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 一、拒绝策略…
最新文章