vuejs之路之--条件渲染

本文详细介绍了Vue.js中条件渲染的方法,包括v-if、v-else、v-else-if的使用及区别,template元素的应用场景,以及如何利用key属性管理可复用元素。同时对比了v-if与v-show在性能上的不同表现。

顾名思义,就是根据条件的不同来渲染,只有当条件为真的时候才显示:

总结之......

1.就是v-if,v-else,v-else-if之间的关系,只有其中某一个的值为真的时候才会渲染,但是有一点要注意的是,v-else,v-else-if必须要紧跟着v-if或者v-else-if之后才行,否则vuejs将不会识别

2.template元素通常可以作为包装元素,包装一个元素块(里面可以有多个元素,但是在渲染的时候这个包装元素不会被渲染进去)

<template v-if = "!add">
			<h1>{{datas}}</h1>
			<h2>{{datas}}</h2>
			<h3>{{datas}}</h3>
		</template>
3.用key管理可复用的元素, Vue 为你提供了一种方式来声明“这两个元素是完全独立的——不要复用它们”。只需添加一个具有唯一值的 key 属性即可:

具体可见官网:key属性管理可复用元素

v-show

可以达到同样的效果,只不过v-show是通过控制css来控制元素的显示与否的,而v-if则是通过元素的生成和销毁来控制的,所以v-if和v-show还是有区别的--相对而言v-if 有更高的切换开销,因为在切换的时候需要重新生成新的元素,或者使元素销毁掉;而 v-show 有更高的初始渲染开销,因为v-show是通过css来控制显示与否的,无论显示不显示都会进行渲染。因此,如果需要非常频繁地切换,则使用 v-show 较好;如果在运行时条件不太可能改变,则使用 v-if 较好;

还有一点,v-show 不支持 <template> 语法,也不支持 v-else




Vue.js 是一个流行的前端框架,提供了一种简单而强大的方式来处理动态渲染页面。v-for 是 Vue.js 中最常用的指令之一,用于循环渲染列表数据。下面我们就来详解一下 Vue.js 中的 v-for 指令。 ## v-for 指令 v-for 指令可以循环渲染一个数组或对象的属性,它的语法格式如下: ```html <div v-for="(item, index) in items" :key="index">{{ item }}</div> ``` 上面的代码中,items 是一个数组,v-for 指令会将数组中的每个元素渲染成一个 div 元素。在循环过程中,item 和 index 分别表示数组的元素和索引。 其中,:key 是必须的属性,用于给每个渲染出的元素指定一个唯一的标识符,以便 Vue.js 能够跟踪每个元素的状态变化。 在 v-for 指令中,还可以使用对象的属性进行循环渲染: ```html <div v-for="(value, key) in object" :key="key">{{ key }}: {{ value }}</div> ``` 上面的代码中,object 是一个对象,v-for 指令会将对象的每个属性渲染成一个 div 元素。在循环过程中,value 和 key 分别表示对象的属性值和属性名。 ## v-for 嵌套 在 Vue.js 中,v-for 指令可以嵌套使用,实现更复杂的渲染效果。例如,可以循环渲染一个二维数组: ```html <div v-for="row in matrix" :key="row[0]"> <div v-for="cell in row" :key="cell">{{ cell }}</div> </div> ``` 上面的代码中,matrix 是一个二维数组,v-for 指令会将每一行渲染成一个 div 元素,然后在每行中再循环渲染每个元素,即每个单元格渲染成一个 div 元素。 ## v-for 和 v-if 结合使用 在 Vue.js 中,v-for 指令和 v-if 指令可以结合使用,实现更灵活的渲染效果。例如,可以根据条件过滤渲染的元素: ```html <div v-for="item in items" v-if="item.visible" :key="item.id">{{ item.name }}</div> ``` 上面的代码中,items 是一个数组,v-for 指令会将数组中的每个元素渲染成一个 div 元素。在渲染过程中,只有 visible 属性为 true 的元素才会被渲染。 ## 总结 v-for 指令是 Vue.js 中常用的指令之一,用于循环渲染列表数据。在使用 v-for 指令时,需要注意给每个渲染出的元素指定一个唯一的标识符,以便 Vue.js 能够跟踪每个元素的状态变化。另外,v-for 指令还可以嵌套使用,实现更复杂的渲染效果。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值