Vue列表渲染

一、使用v-for进行列表渲染

Vue中列表渲染的语法格式如下:

<标签  v-for = " (index, item) in 遍历对象 " :key = "key值"> {{ item.属性名 }} </标签>   

/* 这里的key是唯一值,可以用index,也可以用item.id */

(一)遍历数组

我们以遍历一组人员信息为例:

 

(二)遍历对象

语法格式:

<标签  v-for = " (value, key) in 遍历对象 " :key = "key"> {{ value }} </标签>   

注意v-if中是value写在前,key写在后 

 

 

(三)遍历字符串

语法格式:

<标签  v-for = " (char, index) in 字符串 " :key = "index"> {{ char }} </标签>   

(四)遍历指定次数

<标签  v-for = " (number, index) in 数字" :key = "index"> {{ number}} </标签>   

二、key的作用和原理

我们先来看一个问题:在v-for列表渲染中不加key关键字,每个人的信息后跟上一个输入框,现在我们往数据中添加个人信息。

我们将每一行个人信息后的input框添加上信息: 

 

点击添加信息按钮,会发现输入框中的内容错位了

当我们不写的key属性的时候,默认将数组遍历的index作为key 

下图讲解了key的原理:

① 当页面生成新的虚拟DOM的时候会和原来的虚拟DOM进行比较。

② 主要是通过key值相同的元素进行比较。

③ 在key=0 的元素中,比较虚拟DOM中的信息,老刘-30和张三-18不一致,改变;两个都是input元素,一致,保留原来的input(因为是虚拟DOM,里面没有value),于是新的DOM就变成了 "老刘-30 [张三-18] "

④ key=1 和 key=2 同理,当key=3 旧的DOM页面中没有key为3的值,就直接往DOM中添加key=3 的节点。

如果我们将key设置为p.id,老刘信息id为004,DOM中新生成一个节点

综上所述,如果我们进行逆序添加、逆序删除和含有input类节点不使用key或者是将key设置为index,将会导致页面渲染效率低和页面input节点错位的问题。

如果不存在以上问题,单纯地进行页面展示,使用index作为key标识是没有问题的。否则使用唯一标识。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringCloud-Gateway

一、介绍 &#xff08;1&#xff09;网关服务 &#xff08;2&#xff09;功能&#xff1a;断言、路由、过滤 &#xff08;3&#xff09;能避免用户直接访问到业务主机 二、项目搭建 a、编写pom.xml&#xff08;注意移除web框架&#xff0c;gateway中自带有&#xff09; &l…

【Mybatis】基于Mybatis插件+注解,实现敏感数据自动加解密

一、介绍 业务场景中经常会遇到诸如用户手机号&#xff0c;身份证号&#xff0c;银行卡号&#xff0c;邮箱&#xff0c;地址&#xff0c;密码等等信息&#xff0c;属于敏感信息&#xff0c;需要保存在数据库中。而很多公司会会要求对数据库中的此类数据进行加密存储。 敏感数据…

SpringBoot面试题2:SpringBoot与SpringCloud 区别?SpringBoot和Spring、SpringMVC的区别

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:SpringBoot与SpringCloud 区别? Spring Boot 和 Spring Cloud 是 Spring 生态系统中的两个关键组件,它们有以下区别: 定位:Spring Boot 用于简…

数据结构(一)—— 数据结构简介

文章目录 一、基本概念和术语&#xff1f;1.1、数据1.2、数据元素1.3、数据项&#xff08;属性、字段&#xff09;1.4、数据对象1.5、数据结构 二、逻辑结构和物理结构&#xff08;存储结构&#xff09;2.1、逻辑结构1、定义2、分类&#xff08;线性结构和非线性结构&#xff0…

[23] T^3Bench: Benchmarking Current Progress in Text-to-3D Generation

3D生成蓬勃发展&#xff0c;主流方法通过事例比较和用户调查来评价方法好坏&#xff0c;缺少客观比较指标&#xff1b;本文提出Bench&#xff0c;首次综合比较了不同生成方法&#xff1b;具体来说&#xff0c;本文设计了质量评估&#xff08;Quality Assessment&#xff09;和对…

分布式存储系统Ceph应用详解

Ceph的应用 一、Ceph 存储池(Pool)1.1 Ceph存储池的基本概念1.2 原理1.3 一个Pool资源池应该包含多少PG数&#xff1f;1.4 Ceph 存储池相关管理命令1.4.1 创建1.4.2 查看1.4.3 修改1.4.4 删除 二、 CephFS文件系统MDS接口三、创建CephFS文件系统MDS接口3.1 服务端操作Step1 在管…

[开源]基于Vue+ElementUI+G2Plot+Echarts的仪表盘设计器

一、开源项目简介 基于SpringBoot、MyBatisPlus、ElementUI、G2Plot、Echarts等技术栈的仪表盘设计器&#xff0c;具备仪表盘目录管理、仪表盘设计、仪表盘预览能力&#xff0c;支持MySQL、Oracle、PostgreSQL、MSSQL、JSON等数据集接入&#xff0c;对于复杂数据处理还可以使用…

单链表经典OJ题

目录 ​编辑 题目&#xff1a; 一、移除链表元素&#xff1a; 本质&#xff1a; 解题思路&#xff1a; 本题分为两种解法&#xff1a; 我们使用解法二&#xff1a; 注意事项&#xff1a; 完整代码&#xff1a; 题目&#xff1a; 一、移除链表元素&#xff1a; 本质&…

【LeetCode】15. 三数之和

1 问题 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三元组。…

Webmin 远程命令执行漏洞_CVE-2019-15107

Webmin 远程命令执行漏洞_CVE-2019-15107 文章目录 Webmin 远程命令执行漏洞_CVE-2019-15107在线漏洞详情&#xff1a;漏洞描述&#xff1a;版本影响&#xff1a;环境搭建漏洞复现使用BP进行抓包POC发送以下POST请求来执行命令id:复现成功 漏洞利用-shell反弹执行反弹指令bp的i…

div盒子放在页面正中间,添加旋转动画的时候,盒子向右下偏移

一、问题代码&#xff08;核心部分&#xff09; //盒子定位在页面正中心 #spinner { position: absolute; left: 50%; top: 50%; border: #2ecc71 solid 1px; transform: translate(-50%, -50%); animation: rotate 5s linear 2s forwards; transform-origin: 50% 50%; } keyfr…

边端小场景音视频流分发架构

备注&#xff1a;绿色线条&#xff0c;红色线条&#xff0c;蓝色线条&#xff0c;均是表示同一路流的不同的协议而已 1&#xff09;IPC本身的流媒体的能力有限&#xff0c;一般IPC支持的客户端数10~50个&#xff0c;媒体分发能力&#xff1a;10~20路&#xff0c;看设备品牌能力…