【Vue】Vue扫盲(二)指令:v-for 、v-if、v-else-if、v-else、v-show

【Vue】Vue扫盲(一)事件标签、事件修饰符:@click.prevent @click.stop @click.stop.prevent、按键修饰符、及常用指令

文章目录

    • 一、v-for
      • 遍历数组
      • 数组角标
      • 遍历对象
      • :Key作用介绍
    • 二、v-if、v-show
    • 基本用法:
    • 案例:
    • 三、v-else、v-else-if 使用

继上一篇,继续来扫盲

一、v-for

遍历数据渲染页面是非常常用的需求, Vue 中通过 v-for 指令来实现。

遍历数组

语法: v-for=“item in items”
 items: 要遍历的数组, 需要在 vue 的 data 中定义好。
 item: 迭代得到的当前正在遍历的元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <ul>
            <li v-for ="(user,index) in users" :key="user.name">
                    <!-- 显示user信息 v-for user in users -->
                    当前索引{{index}} ==> {{user.name}} ==>{{user.gender}}==>{{user.age}} <br/>
                     <!-- 获取数组下标 v-for (user,index) in users-->
                      <!-- 遍历对象
                      v-for value in object  遍历对象中的属性的值
                      v-for (value,key) in object  遍历对象中的属性的名和值
                      v-for (value,key,index) in object  遍历对象中属性名属性值和索引
                      -->
                    对象详情:
                    <span v-for="(value,key,index) in user">{{key}}=={{value }}=={{index}}&nbsp;   </span>
                    <!-- 遍历的时候都加上:key来区分不同数据,提高vue渲染效率 -->
            </li>
        </ul>

        <ul>
            <li v-for="(num,index) in nums" ::key="index" >
                {}
            </li>
        </ul>
    </div>

    <script src="../node_modules/vue/dist/vue.js"></script>
    <script>
        new Vue({
            el:"#app",
            data:{
                users:[{ name: '柳岩', gender: '女', age: 21 },
                        { name: '张三', gender: '男', age: 18 },
                        { name: '范冰冰', gender: '女', age: 24 },
                        { name: '刘亦菲', gender: '女', age: 18 },
                        { name: '古力娜扎', gender: '女', age: 25 }],
                nums:[1,2,3,4,5,5]
            },
            methods: {
                
            },
        })
    </script>
</body>
</html>

效果
在这里插入图片描述

数组角标

在遍历的过程中, 如果我们需要知道数组角标, 可以指定第二个参数:
语法: v-for=“(item,index) in items”
 items: 要迭代的数组
 item: 迭代得到的数组元素别名
 index: 迭代到的当前元素索引, 从 0 开始。

<div id="app">
<ul>
<li v-for="(user, index) in users">
{{index + 1}}. {{user.name}} - {{user.gender}} - {{user.age}}
</li>
</ul>
</div>

效果:
在这里插入图片描述

遍历对象

v-for 除了可以迭代数组, 也可以迭代对象。 语法基本类似
语法:
v-for=“value in object”
v-for=“(value,key) in object”
v-for=“(value,key,index) in object”

 1 个参数时, 得到的是对象的属性值
 2 个参数时, 第一个是属性值, 第二个是属性名
 3 个参数时, 第三个是索引, 从 0 开始
示例:

<div id="app">
	<ul>
		<li v-for="(value, key, index) in user">
			{{index + 1}}. {{key}} - {{value}}
		</li>
	</ul>
</div>
	<script src="../node_modules/vue/dist/vue.js"></script>
	<script type="text/javascript">
let vm = new Vue({
el: "#app",
data: {
user: { name: '张三', gender: '男', age: 18 }
}
})
</script>

效果:
在这里插入图片描述

:Key作用介绍

用来标识每一个元素的唯一特征, 这样 Vue 可以使用“就地复用” 策略有效的提高渲染的
效率。
示例:

<ul>
<li v-for="(item,index) in items" :key=”index”></li>
</ul>
<ul>
<li v-for="item in items" :key=”item.id”></li>
</ul>

最佳实践:
如果 items 是数组, 可以使用 index 作为每个元素的唯一标识
如果 items 是对象数组, 可以使用 item.id 作为每个元素的唯一标识

特别注意:当 v-if 和 v-for 出现在一起时, v-for 优先级更高。 也就是说, 会先遍历, 再判断条件。
修改 v-for 中的案例, 添加 v-if:

<ul>
<li v-for="(user, index) in users" v-if="user.gender == ''">{{index + 1}}. {{user.name}} - {{user.gender}} - {{user.age}}
</li>
</ul>

在这里插入图片描述

二、v-if、v-show

基本用法:

v-if, 顾名思义, 条件判断。 当得到结果为 true 时, 所在的元素才会被渲染。
v-show, 当得到结果为 true 时, 所在的元素才会被显示。
语法: v-if=“布尔表达式”, v-show=“布尔表达式”,

案例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <button @click="show=!show">点我呀</button>
        <br/>
        <span v-if="show">v-if看到我了</span>
        <br/>
        <span v-show="show">v-show看到我了</span>
    </div>

    <script src="../node_modules/vue/dist/vue.js"></script>
    <script>
        new Vue({
            el:"#app",
            data:{
               show:true
            },
            methods: {
                
            },
        })

    </script>

    
</body>
</html>

结果1:
在这里插入图片描述

结果2
在这里插入图片描述

三、v-else、v-else-if 使用

注意:v-else 元素必须紧跟在带 v-if 或者 v-else-if 的元素的后面, 否则它将不会被识别。

示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id ="app">
        <button @click="random=Math.random()">点我呀</button>
        <span>{{random}}</span>
        <h1 v-if="random>=0.75">
            看到我了,&gt;=0.75
        </h1>
        <h1 v-else-if="random>=0.5">
            看到我了,&gt;=0.5
        </h1>
        <h1 v-else-if="random>=0.2">
            看到我了,&gt;=0.2
        </h1>
        <h1 v-else="random<0.2">
            看到我了,&lt;=0.2
        </h1>
    </div>

    <script src="../node_modules/vue/dist/vue.js"></script>
    <script>
        new Vue({
            el:"#app",
            data:{
                random:1
            },
            methods: {
                
            },
        })
    </script>
</body>
</html>

结果1:
在这里插入图片描述
结果2:
在这里插入图片描述
结果3:
在这里插入图片描述

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

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

相关文章

Linux--多路转接之epoll

上一篇:Linux–多路转接之select epoll epoll 是 Linux 下多路复用 I/O 接口 select/poll 的增强版本&#xff0c;它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统 CPU 利用率。它是 Linux 下多路复用 API 的一个选择&#xff0c;相比 select 和 poll&#xff0c…

用于病理图像诊断的跨尺度多实例学习|文献速递-基于深度学习的医学影像分类,分割与多模态应用

Title 题目 Cross-scale multi-instance learning for pathological image diagnosis 用于病理图像诊断的跨尺度多实例学习 01 文献速递介绍 病理学是诊断炎症性肠病&#xff08;如克罗恩病&#xff09;的金标准&#xff08;Gubatan等&#xff0c;2021&#xff1b;Yeshi等…

机器学习:opencv--人脸检测以及微笑检测

目录 前言 一、人脸检测的原理 1.特征提取 2.分类器 二、代码实现 1.图片预处理 2.加载分类器 3.进行人脸识别 4.标注人脸及显示 三、微笑检测 前言 人脸检测是计算机视觉中的一个重要任务&#xff0c;旨在自动识别图像或视频中的人脸。它可以用于多种应用&#xff0…

Vxe UI vue vxe-table select 下拉框选项列表数据量超大过大时卡顿解决方法

Vxe UI vue vxe-table vxe-grid select 下拉框选项列表数据量超大过大时卡顿解决方法 查看 github vxe-table 官网 vxe-table 本身支持虚拟滚动&#xff0c;数据量大也是支持的&#xff0c;但是如果在可编辑表格中使用下拉框&#xff0c;下拉框的数据量超大时&#xff0c;可能…

int QSqlQuery::size() const

返回结果的大小&#xff08;返回的行数&#xff09; 或者返回-1 &#xff08;如果大小不能被决定 或者 数据库不支持报告查询的大小信息&#xff09; 注意&#xff1a;对于非查询语句&#xff0c;将返回-1&#xff08;isSelect()返回false&#xff09; 如果查询不是活跃的&…

JS 分支语句

目录 1. 表达式与语句 1.1 表达式 1.2 语句 1.3 区别 2. 程序三大流控制语句 3. 分支语句 3.1 if 分支语句 3.2 双分支 if 语句 3.3 双分支语句案例 3.3.1 案例一 3.3.2 案例二 3.4 多分支语句 1. 表达式与语句 1.1 表达式 1.2 语句 1.3 区别 2. 程序三大流控制语…

基于方块编码的图像压缩matlab仿真,带GUI界面

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 编码单元的表示 4.2编码单元的编码 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 下图是随着方块大小的变化&#xff0c;图像的压缩率以及对应的图像质量指标PSN…

初始爬虫13(js逆向)

为了解决网页端的动态加载&#xff0c;加密设置等&#xff0c;所以需要js逆向操作。 JavaScript逆向可以分为三大部分&#xff1a;寻找入口&#xff0c;调试分析和模拟执行。 1.chrome在爬虫中的作用 1.1preserve log的使用 默认情况下&#xff0c;页面发生跳转之后&#xf…

echarts显示隐藏柱状图柱子的背景色

showBackground: true, //控制是否显示背景色backgroundStyle: {// color: rgba(180, 180, 180, 0.4) //背景色的颜色color: red} 关键代码是 showBackground: true, //控制是否显示背景色 设置为false或者直接而不写就是不显示背景色&#xff0c;默认是不显示背景色 true的时…

windows客户端SSH连接ubuntu/linux服务器,三种网络连接:局域网,内网穿透(sakuraftp),虚拟局域网(zerotier)

windows客户端SSH连接ubuntu/linux服务器&#xff0c;三种网络连接&#xff1a;局域网&#xff0c;内网穿透&#xff08;sakuraftp&#xff09;&#xff0c;虚拟局域网&#xff08;zerotier&#xff09; 目录 SSH简述、三种网络连接特点SSH简述局域网内连接内网穿透&#xff08…

商业级免费OCR利器!Surya OCR:支持90+种语言识别,复杂布局识别,表格解析全覆盖!

❤️ 如果你也关注大模型与 AI 的发展现状&#xff0c;且对大模型应用开发非常感兴趣&#xff0c;我会快速跟你分享最新的感兴趣的 AI 应用和热点信息&#xff0c;也会不定期分享自己的想法和开源实例&#xff0c;欢迎关注我哦&#xff01; 微信订阅号&#xff5c;搜一搜&…

机器学习实战27-基于双向长短期记忆网络 BiLSTM 的黄金价格模型研究

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下机器学习实战27-基于双向长短期记忆网络 BiLSTM 的黄金价格模型研究。本文针对黄金价格预测问题&#xff0c;展开基于改造后的长短期记忆网络BiLSTM的黄金价格模型研究。文章首先介绍了项目背景&#xff0c;随后详细…

青少年编程能力等级测评CPA C++(二级)试卷(1)

青少年编程能力等级测评CPA C&#xff08;二级&#xff09;试卷&#xff08;1&#xff09; 一、单项选择题&#xff08;共20题&#xff0c;每题3.5分&#xff0c;共70分&#xff09; CP2_1_1&#xff0e;下列C程序段中&#xff0c;对二维数组arr的正确定义是&#xff08; &am…

PCL滤波器之面试总结

体素滤波器&#xff1a;降采样&#xff0c;减小体量。 处理前 处理后 直通滤波器&#xff1a;获得想要的区域。 接着上一步继续处理 索引滤波&#xff08;ExtractIndices滤波器&#xff09;&#xff1a; 接上图&#xff1a;反选效果&#xff0c;实际上删除的是这几个点,上图…

Qml-Item的函数使用

Qml-Item的函数使用 Item的提供了一些函数用于处理item之间父子关系&#xff0c;焦点链&#xff0c;以及item之间的坐标转换&#xff0c;本文重点示范item之间的坐标转换 Item的函数 函数childAt(real x,real y) &#xff1a;在item所在坐标系中&#xff0c;返回点point(x,y…

python pip安装requirements.txt依赖与国内镜像

python pip安装requirements.txt依赖与国内镜像 如果网络通畅&#xff0c;直接pip安装依赖&#xff1a; pip install -r requirements.txt 如果需要国内的镜像&#xff0c;可以考虑使用阿里的&#xff0c;在后面加上&#xff1a; -i http://mirrors.aliyun.com/pypi/simple --…

(四)Python标识符与保留字

一、标识符规则 标识符用来识别变量、函数、类、模块以及对象的名称。 Python标识符可包括英文字母、数字以及下划线。 限制如下&#xff1a; 1、标识符第一个字符必须是字母表中字母或者下划线&#xff0c;变量名称间不得有空格&#xff1b; 2、Python标识符有大小写之分…

【SRE系列--DNS跨域转发】

1.DNS原理 1.1 简介 DNS(Domain Name Service的缩写)的作用就是根据域名查出IP地址。IP地址是由32位二进制数字组成&#xff0c;人们很难记住这些IP&#xff0c;相反&#xff0c;大家愿意使用比较容易记忆的主机名字。而电脑在处理IP数据报文时&#xff0c;是使用IP地址的&am…

高阶数据结构与算法——红黑树の奥秘

1.认识红黑树 1.1红黑树的概念 红⿊树是⼀棵⼆叉搜索树&#xff0c;他的每个结点增加⼀个存储位来表⽰结点的颜⾊&#xff0c;可以是红⾊或者⿊⾊。通过对任何⼀条从根到叶⼦的路径上各个结点的颜⾊进⾏约束&#xff0c;红⿊树确保没有⼀条路径会⽐其他路径⻓出2倍&#xff0c…

JDK安装环境配置保姆间教程

文章介绍了Java编程语言的基本知识&#xff0c;包括其创始人和发布年份&#xff0c;然后详细阐述了如何下载和安装JDK&#xff0c;以及如何配置JAVA_HOME和Path环境变量&#xff0c;以确保Java开发环境的正确设置。最后&#xff0c;作者提到在JDK1.5以后的版本中&#xff0c;无…