Vue基础(12)_Vue.js循环语句用法:列表渲染

js补充

术语解释
循环(loop):最基础的概念, 所有重复的行为。
递归(recursion): 在函数内调用自身, 将复杂情况逐步转化成基本情况。
(数学)迭代(iterate) :在多次循环中逐步接近结果。
(编程)迭代(iterate) :按顺序访问线性结构中的每一项。
遍历(traversal) :按规则访问非线性结构中的每一项。

for...in 循环【ES5】

for...in 语句迭代一个对象的所有可枚举字符串属性(除 Symbol 以外),包括继承的可枚举属性。
语法:
for (variable in object){
... 
}
参数:
variable:在每次迭代时接收一个字符串属性名。它可以通过使用 const、let 或 var 进行声明,也可以是一个赋值目标(例如,先前声明的变量、对象属性或解构模式)。使用 var 声明的变量不会局限于循环内部,即它们与 for...in 循环所在的作用域相同。
object:被迭代非符号可枚举属性的对象。

for of 循环【ES6】

for...of 语句执行一个循环,该循环处理来自可迭代对象的值序列。可迭代对象包括内置对象的实例,例如 ArrayStringTypedArrayMapSetNodeList(以及其他 DOM 集合),还包括 arguments 对象、由生成器函数生成的生成器,以及用户定义的可迭代对象。

语法:
for (variable of iterable){
...
}
参数:
variable:每次迭代时从序列接收一个。可以是用 const、let 或 var 声明的变量,也可以是赋值目标(例如之前声明的变量、对象属性或解构模式)。使用 var 声明的变量不会局限于循环内部,即它们与 for...of 循环所在的作用域相同。
iterable:可迭代对象。循环操作的序列值的来源。

for...of 与 for...in 之间的区别

for...in 和 for...of 语句都用于迭代某个内容,它们之间的主要区别在于迭代的对象。for...in 语句用于迭代对象的可枚举字符串属性,而 for...of 语句用于迭代可迭代对象定义的要进行迭代的值

举例:

        Object.prototype.objCustom = function () { };Array.prototype.arrCustom = function () { };const iterable = [3, 5, 7];iterable.foo = "hello";for (const i in iterable) {console.log(i);}// "0"、"1"、"2"、"foo"、"arrCustom"、"objCustom"for (const i in iterable) {if (Object.hasOwn(iterable, i)) {console.log(i);}}// "0" "1" "2" "foo"for (const i of iterable) {console.log(i);}// 3 5 7

分析:

1、iterable 对象继承了 objCustom 和 arrCustom 属性,因为其原型链中同时包含了 Object.prototype 和 Array.prototype。

2、for...in 循环仅打印了 iterable 对象的可枚举属性。它不会打印数组中的元素 3、5、7 或 "hello",因为它们不是属性,而是值。它打印了数组的索以及 arrCustom 和 objCustom,它们是实际的属性。

3、第二个循环与第一个循环类似,但它使用 Object.hasOwn() 来检查找到的可枚举属性是否为对象的自有属性,即非继承属性。如果是,则打印该属性。属性 0、1、2 和 foo 被打印,因为它们是自有属性。属性 arrCustom 和 objCustom 没有被打印,因为它们是继承属性。

4、for...of 循环迭代并打印 iterable 按照数组(数组是可迭代的)定义要进行迭代的值。对象的元素 3、5、7 被打印,但对象的属性没有被打印。

Vue.js 循环语句用法:列表渲染

在 Vue 中,循环语句主要通过 v-for 指令来实现,用于遍历数组或对象,生成对应数量的元素。在元素上使用 v-for 指令,根据源数据的数组或对象进行循环渲染元素。

遍历数组:

v-for="(item, index) in items" :key="..."   

可选值:index

遍历对象:

v-for="(value, key, index) in object" :key="..."  

可选值:key、index

可遍历:数组、对象、字符串(用的很少)、指定次数(用的很少)。
key 的作用: 使用 v-for 渲染列表时,必须为每个项提供一个唯一的 key 属性,以便 Vue 能够识别每个项的唯一性,从而进行高效的 DOM 更新
​嵌套循环: 可以嵌套使用多个 v-for 来渲染多维数组或对象结构。
补充:v-for 中的 in 和 of 是遍历数据时的两个常用关键字,它们的主要区别在于:in 更通用,可以遍历数组、对象和整数范围;而 of 专注于遍历可迭代对象(如数组、字符串、Set、Map 等)。

举例:

<!DOCTYPE html>
<html lang="zh"><head><meta charset="UTF-8"><title>Vue.js循环语句用法:列表渲染</title><script type="text/javascript" src="../js/vue.js"></script>
</head><body><div id="root"><h2 style="color:chocolate;">Vue.js循环语句用法:列表渲染</h2><!-- 遍历对象数组 --><h3>遍历人员列表</h3><ul><li v-for="p in persons" :key="p.id">{{p.id}}--{{p.name}}-{{p.age}}</li></ul><!-- 遍历对象 --><h3>遍历汽车信息</h3><ul><li v-for="(value,key,index) in car" :key="key">{{index}}--{{key}}--{{value}}</li></ul><!-- 遍历字符串(用的很少) --><h3>遍历字符串(用的很少)</h3><ul><li v-for="(char,index) in str" :key="index">{{index}}--{{char}}</li></ul><!-- 遍历指定次数(用的很少) --><h3>遍历指定次数(用的很少)</h3><ul><!-- 遍历5次 --><li v-for="(number,index) in 5" :key="index">{{index}}--{{number}}</li></ul></div><script>new Vue({el: '#root',data: {persons: [{ id: '001', name: '张三', age: 21 },{ id: '002', name: '李四', age: 22 },{ id: '003', name: '王五', age: 23 }],car: {name: '奥迪A8',price: '70万',color: '蓝色'},str: 'hello'}})</script>
</body></html>

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

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

相关文章

Linux入门(十三)动态监控系统监控网络状态

top与ps 命令很相似&#xff0c;它们都是用来显示正在执行的进程&#xff0c;top与ps大的区别是top在执行一段时间可以更新正在运行的进程。 #-d 更新秒数 如果不写-d 那默认是3秒更新 # -i 隐藏不活跃进程 top -d 5交互操作 P 按cpu使用大小排序&#xff0c;默认此项 M 按内存…

Java 中 MySQL 索引深度解析:面试核心知识点与实战

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Java 中 MySQL 索引深度解析&#xff1a;面试…

Kafka集成Flume/Spark/Flink(大数据)/SpringBoot

Kafka集成Flume Flume生产者 ③、安装Flume&#xff0c;上传apache-flume的压缩包.tar.gz到Linux系统的software&#xff0c;并解压到/opt/module目录下&#xff0c;并修改其名称为flume Flume消费者 Kafka集成Spark 生产者 object SparkKafkaProducer{def main(args:Array[S…

debian12.9或ubuntu,vagrant离线安装插件vagrant-libvirt,20250601

系统盘: https://mirror.lzu.edu.cn/debian-cd/12.9.0/amd64/iso-dvd/debian-12.9.0-amd64-DVD-1.iso 需要的依赖包,无需安装ruby( sudo apt install -y ruby-full ruby-dev rubygems,后来发现不安装会有编译警告,还是安装吧 ) ,无需安装 zlib1g-dev liblzma-dev libxml2-de…

2025年软件测试面试八股文(含答案+文档)

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 Part1 1、你的测试职业发展是什么&#xff1f; 测试经验越多&#xff0c;测试能力越高。所以我的职业发展是需要时间积累的&#xff0c;一步步向着高级测试工程师…

[CSS3]响应式布局

导读 响应式就是一套代码, 兼容大中小不同的屏幕, 即网页内容不变, 网页布局随屏幕切换而改变 媒体查询 响应式布局的核心技术是媒体查询 媒体查询可以检测屏幕尺寸, 设置差异化的css 开发中的常用写法 使用范围属性, 划定屏幕范围 max-width 最大宽度min-width 最小宽度 …

在 Windows安装 make 的几种方式

在 Windows 上使用 make&#xff08;通常用于自动化构建 C/C 项目等&#xff09;有几种方法。以下是最常见的几种安装和使用方法&#xff1a; 文章目录 ✅ 方法一&#xff1a;使用 Chocolatey 安装 GNU Make&#xff08;推荐&#xff09;✅ 方法二&#xff1a;使用 WSL&#xf…

深度学习笔记25-RNN心脏病预测(Pytorch)

&#x1f368; 本文为&#x1f517;365天深度学习训练营中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 一、前期准备 1.数据处理 import torch.nn.functional as F import numpy as np import pandas as pd import torch from torch import nn dfpd.read_csv(r&…

Pytorch知识点2

Pytorch知识点 1、官方教程2、张量&#x1f9f1; 0、数组概念&#x1f9f1; 1. 创建张量&#x1f4d0; 2. 张量形状与维度&#x1f522; 3. 张量数据类型➗ 4. 张量的数学与逻辑操作&#x1f504; 5. 张量的就地操作&#x1f4e6; 6. 复制张量&#x1f680; 7. 将张量移动到加速…

池中锦鲤的自我修养,聊聊蓄水池算法

面试如泡池&#xff0c;蓄水似人生 起初你满怀期待跳进大厂池子&#xff0c;以为自己是天选之子&#xff0c;结果发现池子里早挤满了和你一样的“锦鲤候选人”。HR的渔网一撒&#xff0c;捞谁全看概率——这不就是蓄水池算法的精髓吗&#xff1f; 初入池&#xff08;i≤k&…

Linux应用开发之网络套接字编程

套接字&#xff08;Socket&#xff09;是计算机网络数据通信的基本概念和编程接口&#xff0c;允许不同主机上的进程&#xff08;运行中的程序&#xff09;通过网络进行数据交换。它为应用层软件提供了发送和接收数据的能力&#xff0c;使得开发者可以在不用深入了解底层网络细…

小白的进阶之路系列之六----人工智能从初步到精通pytorch数据集与数据加载器

本文将介绍以下内容: 数据集与数据加载器 数据迁移 如何建立神经网络 数据集与数据加载器 处理数据样本的代码可能会变得混乱且难以维护;理想情况下,我们希望我们的数据集代码与模型训练代码解耦,以获得更好的可读性和模块化。PyTorch提供了两个数据原语:torch.utils…

深入理解设计模式之中介者模式

深入理解设计模式之&#xff1a;中介者模式&#xff08;Mediator Pattern&#xff09; 一、什么是中介者模式&#xff1f; 中介者模式&#xff08;Mediator Pattern&#xff09;是一种行为型设计模式。它通过引入一个中介对象&#xff0c;来封装一组对象之间的交互&#xff0…

基于通义千问的儿童陪伴学习和成长的智能应用架构。

1.整体架构概览 我们的儿童聊天助手将采用典型的语音交互系统架构,结合大模型能力和外部知识库: 2. 技术方案分解 2.1. 前端应用/设备 选择: 移动App(iOS/Android)、Web应用,或者集成到智能音箱/平板等硬件设备中。技术栈: 移动App: React Native / Flutter (跨平台…

Python Day40

Task&#xff1a; 1.彩色和灰度图片测试和训练的规范写法&#xff1a;封装在函数中 2.展平操作&#xff1a;除第一个维度batchsize外全部展平 3.dropout操作&#xff1a;训练阶段随机丢弃神经元&#xff0c;测试阶段eval模式关闭dropout 作业&#xff1a;仔细学习下测试和训练代…

WordPress_suretriggers 权限绕过漏洞复现(CVE-2025-3102)

免责申明: 本文所描述的漏洞及其复现步骤仅供网络安全研究与教育目的使用。任何人不得将本文提供的信息用于非法目的或未经授权的系统测试。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权,请及时与我们联系,我们将尽快处理并删除相关内容。 前…

基于Spring Boot 电商书城平台系统设计与实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…

LeetCode 39.组合总和:回溯法与剪枝优化的完美结合

一、问题本质与形式化定义 1.1 题目形式化描述 输入&#xff1a;无重复整数数组candidates、目标值target输出&#xff1a;所有和为target的组合集合&#xff0c;满足&#xff1a; 元素可重复使用组合内元素非降序&#xff08;避免重复解&#xff09;解集无重复组合 1.2 问…

windows11安装编译QtMvvm

windows11安装编译QtMvvm 1 从github下载代码2 官方的Download/Installtion3 自行构建编译QtMvvm遇到的问题3.1 `qmake`问题执行命令报错原因分析qmake报错:找不到编译器 cl解决方案3.2 `make qmake_all`问题执行命令报错原因分析make命令未识别解决方案3.3 缺少`perl`问题执行…

unix/linux source 命令,其历史争议、兼容性、生态、未来展望

现在把目光投向unix/linux source命令的历史争议、兼容性、生态和未来展望,这能让我们更全面地理解一个技术点在更广阔的图景中所处的位置。 一、历史争议与设计权衡 虽然 source (或 .) 命令功能强大且不可或缺,但在其发展和使用过程中,也存在一些微妙的争议或设计上的权衡…