Vue条件渲染v-if和v-show

news2024/9/27 19:24:16

 条件渲染v-if和v-show


<div id="root">

<!--    <div v-if="true">v-if</div>-->
<!--    <div v-show="true">v-show</div>-->
n:{{n}}
    <button @click="n++">点击n++</button>
    <div v-if="n==1">v-if</div>
    <div v-else-if="n==2">v-else-if</div>
    <div v-else>v-else</div>


</div>


<script type="text/javascript">
    const vm = new Vue({
        el: '#root',
        data: {
            n:0
        },
        methods: {
        }

    });
    console.log(vm)

</script>


    <template v-if="n==1">

        <h2>template不改变结构</h2>
    </template>

v-if和v-show小结 

 v-if

写法:1、v-if='表达式'

2、v-else-if='表达式'

3、v-else='表达式' 

适用于切换频率比较低的场景

特点:不展示的DOM元素直接被移除。

注意:v-if可以和v-else-if、v-else一起使用,但要求这三个之中不能被打断(中间不能加入其他标签)

v-show

写法:v-show="表达式"

适用于:切换频率比较G高的场景

特点:不展示DOM元素未被移除,仅仅是使用display样式隐藏掉

注:使用v-if的时候,元素可能无法获取到,而使用v-show一定可以获取到

列表渲染v-for

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--vue-->
    <script src="https://cdn.staticfile.org/vue/2.7.0/vue.min.js"></script>

</head>

<div id="root">
<h2>遍历数组</h2>
<li v-for="(p,index) in persons " :key="p.id">
    {{p.name}}-- {{p.age}}--{{index}}
</li>
    <h2>遍历对象</h2>
    <li v-for="(value,key) in kc " :key="key">
        {{key}}--{{value}}
    </li>

    <h2>遍历字符串</h2>
    <li v-for="(index,value) in str " :key="index" >
        {{index}}--{{value}}
    </li>

   <h2> 遍历指定次数</h2>
    <li v-for="(num,index) of 6">
    {{num}}--{{index}}
    </li>
</div>


<script type="text/javascript">
    const vm = new Vue({
        el: '#root',
        data: {
            persons:[
                {id:1,name:'zs',age:12},
                {id:2,name:'ls',age:32},
                {id:3,name:'ww',age:42}
            ],
            kc:{
                name:'kong',
                addr:'江西',
                num:'112'
            },
            str:'kongchao'
        },
        methods: {}

    });
    console.log(vm)

</script>

<body>

</body>
</html>

运行结果 

v-for指令小结

1、用于展示列表数据

2、语法:v-for=" (item,index) in xxx" :key=" yyy"   ,in也可以改为of

3、可遍历:数组(常用)、对象、字符串、指定次数

v-for中key的作用和原理

index作为key时

index作为key时 

 Vue中的key中的作用?(key的内部原理)

1、虚拟DOM中的key的作用:

  • key是虚拟DOM对象的标识,当数据发生变化时,Vue会根据【新数据】生成【新的虚拟DOM】,随后VUe进行【新虚拟DOM】、与【旧虚拟DOM】的差异比较,比较规则如下:

2、比对规则:

①旧虚拟DOM中找到了与虚拟机DOM相同的key:

  • 若虚拟DOM中内容没变,直接使用之前的真实DOM。
  • 若虚拟DOM中内容变了,则生成新的真实DOM,随后渲染到页面

②旧虚拟DOM中未找到与新的虚拟DOM相同的key。则创建新的真实DOM,随后渲染到页面。

3、用index作为key可能会引发的问题:

  • 若对数据进行:逆序添加、逆序删除等破坏顺序的操作:会产生没必要的真实DOM更新,从而导致效率低,但界面效果没问题。
  • 如果结构中还包含输入了的DOM:会产生错误的DOM更新,界面有问题

4、开发中如何选择key:

  • 最好使用每条数据的唯一标识作为key,如id、手机号等唯一值。
  • 如果不出在对数据的逆序破坏顺序的操作,仅用于页面展示,则index作为key也是可以的

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

法规标准-UN R152标准解读

UN R152是做什么的&#xff1f; UN R152 全名为关于M1和N1型机动车高级紧急制动系统&#xff08;AEBS&#xff09;型式认证的统一规定&#xff0c;是联合国对于M1和N1型车辆AEBS系统认证的要求说明&#xff0c;当满足其要求内容时&#xff0c;才可通过联合国的认证&#xff0c…

数字化转型导师坚鹏:面向数字化转型的大数据顶层设计实践

面向数字化转型的大数据顶层设计实践 课程背景&#xff1a; 数字化背景下&#xff0c;很多企业存在以下问题&#xff1a; 不清楚大数据思维如何建立&#xff1f; 不清楚企业大数据分析方法&#xff1f; 不了解大数据应用成功案例&#xff1f; 课程特色&#xff1a; …

(转载)01.Matplotlib 图像结构-figure()axes设置

​概要&#xff1a;介绍matplotlib 绘制图像起手&#xff0c; figure() 的设置&#xff0c; axes() 的设置。主要的内容可移步最后部分的总结。 04 Matplotlib 总结 Matplotlib 提供了matplotlib.figure图形类模块&#xff0c;它包含了创建图形对象的方法。通过调用 pyplot 模…

Hive3面试基础

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、基本知识Hive31.表的类型和表的存储格式a)b)c)创建表i&#xff09;ii&#xff09; 2.表 二、使用步骤1.引入库2.读入数据 总结 前言 面试准备之Hive 回顾…

个人代码管理

项目描述&#xff1a; 在公司使用软件大家会经常使用GitLab进行代码管理&#xff0c;但是GitLab对于个人使用会有&#xff0c;操作相对复杂&#xff0c;且需要收费。GitHub的代码又都是开放的。经过上网查找和尝试&#xff0c;找到了一个可以日常用来保存自己代码的工具。&…

吴恩达和OpenAI的《面向开发者的ChatGPT提示工程》精华笔记

《ChatGPT Prompt Engineering for Developers》 面向开发者的ChatGPT提示工程 shadow 趁着假期&#xff0c;学习了prompt课程&#xff0c;做了一些精简和关键知识点的梳理&#xff0c;分享给大家。 LLM 可完成的任务 包括: 总结&#xff08;如总结用户评论&#xff09; 推断&a…

streamlit+pywebview,纯python以前后端形式写桌面应用

1、VSCode VSCode VSCode扩展&#xff1a;Python 2、配置PowerShell执行策略 以管理员身份运行PowerShell&#xff0c;运行Set-ExecutionPolicy RemoteSigned&#xff0c;并输入Y&#xff0c;回车确认 3、配置Python环境 只安装Python&#xff1a;华为镜像、阿里镜像、new…

DC-DC直流隔离升压高压输出电源模块12v24v48v转50V110V200V250V350V400V500V600V800V1000V微功率

特点 效率高达 80%以上1*2英寸标准封装单电压输出价格低稳压输出工作温度: -40℃~85℃阻燃封装&#xff0c;满足UL94-V0 要求温度特性好可直接焊在PCB 上 应用 HRB W2~40W 系列模块电源是一种DC-DC升压变换器。该模块电源的输入电压分为&#xff1a;4.5~9V、9~18V、及18~36V、…

Android 编译模块 (小记)

1.整编 source build/envbuild.sh lunch xxx make 2.单独编译模块 2.1 去Android.bp 中找模块名 比如我想编译system/core/fastboot&#xff0c;那么我就去找这个路径下的Android.bp/ Android.mk Android.bp 中找每个模块的那么就行 然后直接make这个name make fastboot_…

通过【Stable-Diffusion WEBUI】复刻属于你的女神:再谈模型与参数

文章目录 &#xff08;零&#xff09;前言&#xff08;一&#xff09;复刻优秀的作品&#xff08;1.1&#xff09;模型&#xff08;1.1.1&#xff09;Model Hash &#xff08;1.2&#xff09;提示词&#xff08;1.2.1&#xff09;反推提示词 &#xff08;1.3&#xff09;参数 &…

GaussDB数据库基础函数介绍-上

目录 一、函数在数据库中的作用 二、GaussDB常用基础函数介绍与示例 1、数字操作函数 2、时间和日期处理函数 3、类型转换函数 4、数组函数 5、范围函数 6、窗口函数 7、聚集函数 8、安全函数 9、系统信息函数 10、动态脱敏函数. Tip&#xff1a;由于篇幅缘故&…

shell脚本的条件判断式

文章目录 shell脚本的条件判断式利用 if...then单层、简单条件判断式多重、复杂条件判断式例题1例题2 利用case...esac判断例题1 利用function功能例题1 shell脚本的条件判断式 很多时候我们必须要根据某些数来判断程序该如何举例来说&#xff0c;我们在之前的练习中让用户输入…

jsp网上拍卖管理系统统Myeclipse开发mysql数据库web结构jsp编程计算机网页项目

一、源码特点 jsp网上拍卖管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0&a…

AWS Lambda - 第一部分

Hello大家好&#xff0c;我们今天开始讨论AWS Lambda的内容。 SAP认证考试会涉及到很多Lambda的内容&#xff0c;想要通过认证考试虽然不一定非要精通开发&#xff0c;但需要知道Lambda的一些功能和特性、适用场景以及Lambda是如何工作的。 我们开始吧&#xff01; Lambda与…

数据结构刷题(三十):96不同的二叉搜索树、01背包问题理论、416分割等和子集

一、96. 不同的二叉搜索树 1.这个题比较难想递推公式&#xff0c; dp[3]&#xff0c;就是元素1为头结点搜索树的数量 元素2为头结点BFS的数量 元素3为头结点BFS的数量 元素1为头结点搜索树的数量 右子树有2个元素的搜索树数量 * 左子树有0个元素的搜索树数量 元素2为头结…

AWS Lambda - 第二部分

Hello大家好&#xff0c;我们今天继续讨论AWS Lambda的内容。 Lambda的网络 首先&#xff0c;我们来讨论一下Lambda的网络&#xff0c;联网相关的内容。 在部署Lambda时&#xff0c;在默认情况下&#xff0c;Lambda函数是部署和运行在AWS的一个安全的VPC中&#xff0c;是在您…

“大运”有我丨智安网络护航大运,荣获成都市公安局感谢信!

近日&#xff0c;深圳市智安网络有限公司四川分公司&#xff08;以下简称“智安网络”&#xff09;荣幸受邀参与第31届世界大学生夏季运动会网络安全检查工作&#xff0c;对中和体育中心场馆安全漏洞检测进行现场技术支撑。 智安网络对此次网络安全检查工作高度重视&#xff0…

PySpark基础入门(2):RDD及其常用算子

更好的阅读体验&#xff1a;PySpark基础入门&#xff08;2&#xff09;&#xff1a;RDD及其常用算子 - 掘金 (juejin.cn) 目录 RDD简介 RDD Coding RDD简介 RDD&#xff08;Resilient Distributed Dataset&#xff09;&#xff0c;是一个弹性分布式数据集&#xff0c;是Sp…

带你快速入门光模块行业

一、行业介绍 光纤通信&#xff08;简称光通信&#xff09;是利用光导纤维传输光波信号的一种通信方式&#xff0c;于上世纪六七十年代由华裔科学家高锟博士等人率先提出。 光通信是以激光作为信息载体&#xff0c;以光纤作为传输媒介的通信方式&#xff0c;现已取代电通信成…

if __name__ == “__main__“: 理解

if __name__ "__main__": 是 Python 中常用的一种条件判断语句&#xff0c;主要作用是在当前模块作为程序入口时执行一些特定的代码&#xff0c;而在被其它模块引入时不执行这些特定的代码。 具体来说&#xff0c;当一个 Python 模块被导入时&#xff0c;Python 解…