- Vue.js核心技术解析与uni-app跨平台实战开发
- 袁龙
- 586字
- 2023-08-25 11:34:37
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=1739236916-rDZ575lEGOOWhlYmRT9ILQsZ0UNBYU7R-0-95e6a60091b50207ec231fc68befd2c2)
视图层代码如下。
![](https://epubservercos.yuewen.com/F2C35D/26581507309218206/epubprivate/OEBPS/Images/Figure-P33_9462.jpg?sign=1739236916-DRSPmumY4uPZQ4YbGNm6oDBHSvCjwEtT-0-25ae53bae649b11b0ade4bf4c84b50a2)
运行结果如图1-14所示。
![](https://epubservercos.yuewen.com/F2C35D/26581507309218206/epubprivate/OEBPS/Images/Figure-P33_5264.jpg?sign=1739236916-lmyjyFQ3WKior5YhhxiqkWEmXCEBMoYL-0-ca3af06fe85a9421a259fe56489c3e17)
图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=1739236916-j6zNLg2kP98Mrm6tB634jlp5CTZj72ix-0-e17139bbebbc0fbdb3b46e05463e42ea)
视图层代码如下。
![](https://epubservercos.yuewen.com/F2C35D/26581507309218206/epubprivate/OEBPS/Images/Figure-P34_9467.jpg?sign=1739236916-halxYxVzjVCSuoBVCy8AlID4eaVMcIBV-0-7dcef45bd570aeb24e0b8fab415454cf)
运行结果如图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=1739236916-wyk8k5bEczBTdcHFQeAC4aIkeZuNzJhz-0-5507e595ea5cf53ff7abf4c86f1bc1bc)
图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=1739236916-4hKo7p1BmIB1sNfwLT6t42O6FRA99B4P-0-cfbf34165e5fc7afe9b2d7f298ed8375)
视图层代码如下。
![](https://epubservercos.yuewen.com/F2C35D/26581507309218206/epubprivate/OEBPS/Images/Figure-P35_9470.jpg?sign=1739236916-EVEF6KDyIym74Q5neNyaqb9wf8dZvuze-0-9ea73f28b6b7d64a110c07d95beeb771)
运行结果如图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=1739236916-uL17aKB8Xmgi441yUBXWszEnLRdpMmUD-0-8755966483b6786e7c48e1b7fe2b226c)
图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=1739236916-hBtAulkDDf5ZOPmWCcNtMoUuhreHwsCs-0-680d1d31c9ad350e8661e44a78d41727)
运行结果如图1-17所示。
![](https://epubservercos.yuewen.com/F2C35D/26581507309218206/epubprivate/OEBPS/Images/Figure-P36_3564.jpg?sign=1739236916-UiuRP1zRlDPskqi0b7FpkMVIR1sBL3NT-0-b0aeb529b1bd3a36bfe0804b7a418e83)
图1-17 v-for遍历数字