![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=1739241424-aHw5GzOtu26AXzQircNkVMawgRw2397V-0-1cf0bdae5e47e3b3c32ee304fe4e94c1)
视图层代码如下。
![](https://epubservercos.yuewen.com/F2C35D/26581507309218206/epubprivate/OEBPS/Images/Figure-P33_9462.jpg?sign=1739241424-uh145BoY3fITHKiVSdufIJbdWuOamuoc-0-8c9c3b4c80f429cd3976a853c60cb911)
运行结果如图1-14所示。
![](https://epubservercos.yuewen.com/F2C35D/26581507309218206/epubprivate/OEBPS/Images/Figure-P33_5264.jpg?sign=1739241424-XG6VyDghFGhriqSnkXaDiGMF9gIjjdl6-0-6b4014afb0b08a340b454c11142d4ce3)
图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=1739241424-xvweDYlocjG92cVrh36lJsdrlPD0KIO7-0-8af3732975c1d42cd1c0766b36f5482c)
视图层代码如下。
![](https://epubservercos.yuewen.com/F2C35D/26581507309218206/epubprivate/OEBPS/Images/Figure-P34_9467.jpg?sign=1739241424-kZFTKFLeSgpCMdMCTDYMxa4I79q7Ajpy-0-56651eadb85afec73c4cf9e0de7d81ef)
运行结果如图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=1739241424-F69kpdNibgefbu2moFEeqcQt8CxuaftA-0-f906258325e1695b021fdb195ccc7120)
图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=1739241424-oOq7Dtympseod3371nzHQ53N6Mdh7EpR-0-b28659235a27ecffd940a0df3774b850)
视图层代码如下。
![](https://epubservercos.yuewen.com/F2C35D/26581507309218206/epubprivate/OEBPS/Images/Figure-P35_9470.jpg?sign=1739241424-CtRXWKxEhrhVA4NBYN2uTEDTeogIorFL-0-524ed147270759597e955bedce2698f9)
运行结果如图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=1739241424-yk2vDRdpOM5n45Ww8arubWcFViXCNdVX-0-6625e02ff7ffb4a8a7cb49c81d4f49b2)
图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=1739241424-5WYZaf2ps883asrHK5BmSwZCIMquNfCQ-0-12b73ff01f71bccd12658f972d2ebe22)
运行结果如图1-17所示。
![](https://epubservercos.yuewen.com/F2C35D/26581507309218206/epubprivate/OEBPS/Images/Figure-P36_3564.jpg?sign=1739241424-UTciss0p1fh3SaEisCyCNHoPNdk08xpc-0-d1206c8882caede2f4b6ad037c471e04)
图1-17 v-for遍历数字