![Vue.js核心技术解析与uni-app跨平台实战开发](https://wfqqreader-1252317822.image.myqcloud.com/cover/707/47216707/b_47216707.jpg)
上QQ阅读APP看书,第一时间看更新
1.8 v-for指令
作用:循环遍历普通数组、对象数组、对象、数字等。
1.8.1 遍历普通数组
v-for指令是Vue非常重要的指令之一,也是每个项目都要用到的指令,其作用是用来遍历数据。例如在data中定义数组,将数组中的每一项渲染到h1标签,代码如下。
M层代码如下。
![](https://epubservercos.yuewen.com/F2C35D/26581507309218206/epubprivate/OEBPS/Images/Figure-P33_9460.jpg?sign=1739897837-kGQuslT7tJEP26xkR6MbrPv31RIkjeHh-0-774a577c9020b43cd7a7518e50ac6a25)
视图层代码如下。
![](https://epubservercos.yuewen.com/F2C35D/26581507309218206/epubprivate/OEBPS/Images/Figure-P33_9462.jpg?sign=1739897837-yT4xuhqXJsNxfIuv2KI8jAnwFurFEMM5-0-ffb4114eb4dd0452a747bd9e2b54bcb9)
运行结果如图1-14所示。
![](https://epubservercos.yuewen.com/F2C35D/26581507309218206/epubprivate/OEBPS/Images/Figure-P33_5264.jpg?sign=1739897837-upzS6c3V3im1R1PxCoWpiWDbPlmFyJnY-0-53cbb3a6a7daf6c585ea6a77cbad3337)
图1-14 v-for遍历普通数组
<h1 v-for="(item,i) in arrList" :key="i">{{item}}</h1>
代码解析如下。
(1)v-for指令中,item表示的是数组里面的每一项,名字是可以随意命名的。
(2)i表示数组的索引,从0开始。
(3)使用v-for指令必须绑定key属性,key的属性值可以是不重复的数字或者字符串,也可以直接把数组索引作为key的属性值。
(4)数据使用插值表达式渲染。
1.8.2 遍历对象数组
上述代码只能遍历普通数组,v-for指令也可以遍历对象数组,代码如下。
M层代码如下。
![](https://epubservercos.yuewen.com/F2C35D/26581507309218206/epubprivate/OEBPS/Images/Figure-P34_9465.jpg?sign=1739897837-eiTCjnsQszlhsljnJQ8olNuMBQveG1yK-0-f6f8b246ec0a33a4709cee47808af393)
视图层代码如下。
![](https://epubservercos.yuewen.com/F2C35D/26581507309218206/epubprivate/OEBPS/Images/Figure-P34_9467.jpg?sign=1739897837-FNWJt0VI8bQQEZQxqYKDZk7EePggQ1iJ-0-be016e66bfffbda4c9bf925aa0b544d5)
运行结果如图1-15所示。
代码解析如下。
(1)绑定key属性的值是arrList数组对象中的id属性。
(2)item表示数组中的每一项,arrList数组中的每一项都是一个对象,需要对象中的哪个属性就用“item.属性”,例如{{item.name}}。
![](https://epubservercos.yuewen.com/F2C35D/26581507309218206/epubprivate/OEBPS/Images/Figure-P35_5272.jpg?sign=1739897837-ytYV1ZiQVRy9sMgqIzaCsDHgBpKJmaC7-0-ae886f3ef228ddd7ab01d5590f1611f3)
图1-15 v-for遍历对象数组
1.8.3 遍历对象
本节讲解使用v-for遍历对象,在M层定义普通对象,代码如下。
M层代码如下。
![](https://epubservercos.yuewen.com/F2C35D/26581507309218206/epubprivate/OEBPS/Images/Figure-P35_9469.jpg?sign=1739897837-YbGpPmRSicKihC9ui3JgnQTJ10ybBxte-0-00673ad137093d2d8333cb4b5c9ef891)
视图层代码如下。
![](https://epubservercos.yuewen.com/F2C35D/26581507309218206/epubprivate/OEBPS/Images/Figure-P35_9470.jpg?sign=1739897837-ReduS4C8FchRiaQ62wm86RfzEOGkDlNr-0-a8806551067807264fd0a59c3d1caf46)
运行结果如图1-16所示。
代码解析:v-for指令循环遍历对象是以键-值对形式,代码<li v-for="(val,key,i) in obj" :key="i">中第一个参数表示值,第二个参数表示键。
![](https://epubservercos.yuewen.com/F2C35D/26581507309218206/epubprivate/OEBPS/Images/Figure-P36_3559.jpg?sign=1739897837-dNO1kEaEUt0YkfIxgrCOxSlZeoeKehHu-0-e424006d900088aa6d105a358dbda431)
图1-16 v-for遍历对象
1.8.4 遍历数字
v-for指令还可以遍历数字,进行数字叠加,例如输出1~10,代码如下。
视图层代码如下。
![](https://epubservercos.yuewen.com/F2C35D/26581507309218206/epubprivate/OEBPS/Images/Figure-P36_9472.jpg?sign=1739897837-the7jCuHCueKc1z1Cy5xxLPmsoBwJ1tr-0-66f371abe053234ae2bc2cc53ed5f14f)
运行结果如图1-17所示。
![](https://epubservercos.yuewen.com/F2C35D/26581507309218206/epubprivate/OEBPS/Images/Figure-P36_3564.jpg?sign=1739897837-Q6GCpvQ12IRBRKvpNmSygB6WS56DEaFs-0-8b1648ba7be67117be064cb0caca5d11)
图1-17 v-for遍历数字