微信小程序 - 循环

前言

前端代码编写中,循环的使用是必不可少的,只要有相似内容的列表存在,大概率就会使用到循环,如:商品列表、每月收益、排行榜等。

数组/列表循环

使用wx的特殊语法来实现循环功能。

wx:for = "{{循环的列表(数组/对象)}}"

wx:for-item = "循环项的名称"

wx:for-index = "循环项的索引"

复制代码
.js 文件:
Page:{
    selectedGoods:[
        {name:'商品1',salePrice:100,originPrice:390,desc:'特价促销'},
        {name:'商品2',salePrice:130,originPrice:300,desc:'买一赠一'},
        {name:'商品3',salePrice:80,originPrice:200,desc:'甩货处理'},
    ]
}

.wxml 文件:
<block class="my_draw_canvas" 
    wx:for="{{selectedGoods}}"
    wx:for-item="item"
    wx:for-index="index">
    <view>{{index}}</view>
    <view>{{item.name}}</view>
    <view>{{item.salePrice}}</view>
    <view>{{item.originPrice}}</view>
    <view>{{item.desc}}</view>
</block>
    
结果:
    0
    商品1
    100
    390
    特价促销
    1
    商品2
    130
    300
    买一赠一
    2
    商品3
    80
    200
    甩货处理

注意⚠️:循环语句是固定的,要保证对象的唯一性,即wx:(循环) = "(循环值)",定了循环值,循环的就是循环值的内容。

当出现数组的嵌套循环的时候,要注意以下绑定的名称不要重名

wx:for-item="item"

wx:for-index="index"

对象循环

循环语句同数组/列表循环语句相同。

wx:for="{{数组或者对象}}"

wx:for-item="对象的值"

wx:for-index="对象的属性"

循环对象时可以根据对象的键值对对item、index赋值,如:可以把item和index的名称都修改为

wx:for-item="value"

wx:for-index="key

多层嵌套循环的情况下,在每一个view层级下再使用循环即可。注意:循环嵌套要更改item、index对应的值,另起一个单词。

复制代码
<view wx:if="{{profitSum}}" class="hava-profit">
    <view class="profit-content"
        wx:for="{{list}}"
        wx:for-item="value"
        wx:for-index="key">
      <view class="profit-title">({{key}}月)</view>
      <view class="profit-num">
        <text class="tip">合计</text>
        <text class="sum">{{(总计金额)}}</text>
      </view>
      <image class="icon" src="(网址/分割线)"></image>
      <view class="goods_content"
        wx:for="{{value}}"
        wx:for-item="goodsProfit"
        wx:for-index="goodsName">
        <text class="goods_name">{{goodsName}}</text>
        <text class="goods_progit">{{goodsProfit}}</text>
      </view>
    </view>
  </view>
相关推荐
WangHappy10 小时前
不写 Canvas 也能搞定!小程序图片导出的 WebView 通信方案
前端·微信小程序
小时前端15 小时前
微信小程序选不了本地文件?用 web-view + H5 一招搞定
前端·微信小程序·uni-app
icebreaker1 天前
Weapp-vite:原生模式之外,多一种 Vue SFC 选择
前端·vue.js·微信小程序
icebreaker1 天前
重走 Vue 长征路 Weapp-vite:编译链路与 Wevu 运行时原理拆解
前端·vue.js·微信小程序
大米饭消灭者4 天前
Taro是怎么实现一码多端的【底层原理】
微信小程序·taro
FliPPeDround5 天前
Vitest Environment UniApp:让 uni-app E2E 测试变得前所未有的简单
微信小程序·e2e·前端工程化
FliPPeDround5 天前
微信小程序自动化的 AI 新时代:wechat-devtools-mcp 智能方案
微信小程序·ai编程·mcp
吴声子夜歌5 天前
小程序——布局示例
小程序
码云数智-大飞5 天前
如何创建自己的小程序,码云数智与有赞平台对比
微信小程序
luffy54595 天前
微信小程序页面使用类似filter函数的wxs语法
微信小程序·小程序