11.VUE中的条件渲染及列表渲染
v-if指令:控制一个模板标签是否在页面上显示 v-if后面跟着一个js表达式 这个表达式的返回值决定了div标签是否真实的挂载到页面上 通过v-if指令结合js表达式决定一个DOM元素是否在页面上展示【v-if指令变量值为false时 该元素不存在于DOM之上】
v-show指令:控制一个模板标签是否在页面上显示 【v-show指令对应的js表达式为false时 该标签对应的DOM在页面上依然存在 只不过以style="display: none;
"的形式挂载在页面上】
在经常需要隐藏/显示一个DOM元素时:使用v-show指令性能更高 因为不会频繁得将DOM从页面上删除再添加 v-if指令每次隐藏显示都要删除DOM再添加DOM 性能更低一些
v-else指令:v-if指令和v-else指令要紧贴着使用
VUE中的条件渲染 - 锐客网 {{message}}
bye world
{{message}}
this is A
this is B
this is others
文章图片
key值:v-if切换的时候 input中的内容并没有清空 这是因为VUE在重新渲染页面的时候会尽量的尝试复用页面上已经存在的DOM元素 【用户名和邮箱名复用了同一个input 复用的同时内容没有清空】所以采用key值的形式 当给某个元素标签添加key值的时候VUE会知道 该元素是页面上唯一的元素 如果两个key不一样 VUE就不会尝试复用该input标签【VUE虚拟DOM diff算法中用到的内容】
VUE的key值 - 锐客网 用户名:邮箱名:
数组循环:v-for="(item,index) of list" :key="item.id"
- 第一个参数:列表中的每一项的内容
- 第二个参数:每一项在页面中的索引下标
- 为了提升循环显示的性能 会给每个循环项添加唯一的key值 不推荐使用index作为key值:因为使用index作为key值 在频繁操作DOM元素相对应的数据时费性能【可能会让VUE 没办法充分复用DOM节点】
VUE的列表渲染 - 锐客网 {{item.text}}---{{index}}
文章图片
tips:当尝试修改数组中的内容时 不能直接通过下标的形式改变数组 只能通过几个VUE提供的数组变异方法操作数组 才能实现数据发生变化页面也发生变化这种效果
- 数组变异方法:pop push shift unshift splice sort reverse
文章图片
【11.VUE中的条件渲染及列表渲染】实现数据发生变化页面也发生变化方案二:改变引用地址【数组在js中是引用类型 】让其指向另外一个地址空间
文章图片
template占位符:模板占位符 可以用于包裹一些元素 但在循环的过程中不会被真的渲染在页面上
VUE的列表渲染 - 锐客网 {{item.text}}---{{index}}span:{{item.text}}
文章图片
对象循环:v-for="(item,key,index) of userInfo"
- 第一个参数:对象中的每一项的内容
- 第二个参数:对象的键名
- 第三个参数:每一项在页面中的索引下标
VUE的列表渲染 - 锐客网 {{item}}---{{key}}--{{index}}
文章图片
遍历对象得时候直接向对象中动态加值:无效
通过改变引用地址实现数据发生变化页面也发生变化:
文章图片
推荐阅读
- 热闹中的孤独
- JS中的各种宽高度定义及其应用
- 我眼中的佛系经纪人
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售
- Android中的AES加密-下
- 放下心中的偶像包袱吧
- C语言字符函数中的isalnum()和iscntrl()你都知道吗
- C语言浮点函数中的modf和fmod详解
- C语言中的时间函数clock()和time()你都了解吗
- (七)谈条件