![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=1738890537-TbSoZLB7M6QDo3zZUD6qUuGJ321CqZvN-0-839a6ac2b9623f4751c908c455c05a76)
视图层代码如下。
![](https://epubservercos.yuewen.com/F2C35D/26581507309218206/epubprivate/OEBPS/Images/Figure-P33_9462.jpg?sign=1738890537-NEI5epfz6qvwU48wPyZw6FzAVxtSYKwX-0-b5e53f52be50565a3bb3c82c7e2235d1)
运行结果如图1-14所示。
![](https://epubservercos.yuewen.com/F2C35D/26581507309218206/epubprivate/OEBPS/Images/Figure-P33_5264.jpg?sign=1738890537-Z6ry2NoTCVpNnMw1kOck7NPNwV92rhQe-0-c87cf7f942cd07d857b824c18a3d7787)
图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=1738890537-epDuostuGAS4EJ52Do75NOkK5LooHe0d-0-47792e36f0f4fb080f8ef51937d8d8a3)
视图层代码如下。
![](https://epubservercos.yuewen.com/F2C35D/26581507309218206/epubprivate/OEBPS/Images/Figure-P34_9467.jpg?sign=1738890537-3gSiJEoQiI6F3q0iAY7Z5XWCFcz2WoeM-0-e206711a9af0210ab67e5061fe32c132)
运行结果如图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=1738890537-lhhQr2FC2Tk0maDMfU1aPAAmTy8tCUYQ-0-5e5e5dfd5559230bc2a8740fc88cf4cb)
图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=1738890537-qcHpWTEsHqXkDAJOc9anoWmPKxezMzYV-0-59612f40b8390ebe55cf8a378bb05616)
视图层代码如下。
![](https://epubservercos.yuewen.com/F2C35D/26581507309218206/epubprivate/OEBPS/Images/Figure-P35_9470.jpg?sign=1738890537-ndpRHZ4SnnKQcRFxvAU2vnE31qK1zCGM-0-e5a34d28417abbfe144db3a960d76734)
运行结果如图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=1738890537-ZaIyQh2CMhrWvYzENhFlLWNQAsNwNylG-0-f66fc9ca5003f4e099474d4750f0a2ff)
图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=1738890537-qunLlzft5ShYKUTwjowQWGnCIcSv4MSk-0-4b7c163dffc7922d67a36eb3367f6632)
运行结果如图1-17所示。
![](https://epubservercos.yuewen.com/F2C35D/26581507309218206/epubprivate/OEBPS/Images/Figure-P36_3564.jpg?sign=1738890537-fXw8spdT0OOScoxbGDsp1r4zZjteNDqS-0-6e437adb511ffea29a1e55642b7b4a52)
图1-17 v-for遍历数字