欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > 小程序 wxml 语法 —— 41列表渲染 - 进阶用法

小程序 wxml 语法 —— 41列表渲染 - 进阶用法

2025/3/12 17:40:18 来源:https://blog.csdn.net/qq_37388085/article/details/146123364  浏览:    关键词:小程序 wxml 语法 —— 41列表渲染 - 进阶用法

这一节讲解列表渲染的两个进阶用法:

  1. 如果需要对默认的变量名和下标进行修改,可以使用 wx:for-item 和 wx:for-item:
    • 使用 wx:for-item 可以指定数组当前元素的变量名
    • 使用 wx:for-index 可以指定数组当前下标的变量名
  2. 将 wx:for 用在 标签上,以渲染一个包含多个节点的结构块
    • 并不是一个组件,它仅仅是一个包装元素,不会在页面中做任何渲染,只接受控制属性;
    • 标签在 wxml 中可以用于组织代码结构,支持列表渲染、条件渲染等;

下面打开微信开发者工具,演示一下这两个进阶用法:

进阶用法一

  • 在 pages/cate/cate.js 中添加数据声明,如下:

    Page({data: {numList: [1,2,3],fruitList: [{id: 1, name: '🍎'},{id: 2, name: '🍋'},{id: 3, name: '🍅'}],obj: {name: 'tom',age: 10}}
    })
    
  • 在 pages/cate/cate.wxml 中添加进阶用法一的演示代码,如下:

    <!-- 如果需要修改默认的变量名,需要使用 wx:for-item 属性-->
    <!-- 如果需要修改默认的下标变量名,需要使用 wx:for-index 属性-->
    <!-- 两个属性需要和 wx:for 写到同一个组件上 -->
    <!-- 在重命名后,需要使用最新的变量名获取数据信息 -->
    <!-- 数组 -->
    <view wx:for="{{ fruitList }}" wx:key="id" wx:for-item="fruitItem" wx:for-index="i">{{ fruitItem.name }}
    </view><!-- 对象 -->
    <view wx:for="{{ obj }}" wx:key="key" wx:for-item="value" wx:for-index="key">{{ value }} - {{ key }}
    </view>
    

    刷新页面,可以看到具体的演示效果如下:

    在这里插入图片描述

进阶用法二

在 pages/cate/cate.js 中添加数据声明,如下:

Page({data: {numList: [1,2,3],fruitList: [{id: 1, name: '🍎', price: 66},{id: 2, name: '🍋', price: 77},{id: 3, name: '🍅', price: 88}],obj: {name: 'tom',age: 10}}
})

在 pages/cate/cate.wxml 中添加页面样式,如下:

<!-- 方法一 -->
<view wx:for="{{ fruitList }}" wx:key="id" wx:for-item="fruitItem" wx:for-index="i"><view>名字:{{ fruitItem.name }}</view><view>价格:{{ fruitItem.price }}</view>
</view><!-- 方法二 -->
<!-- block 不是一个组件,只是渲染元素 -->
<!-- 也就是只是包装元素,可以组织代码结构,支持列表渲染 -->
<!-- block 不会在页面中做任何渲染,只接受控制属性 -->
<block wx:for="{{ fruitList }}" wx:key="id" wx:for-item="fruitItem" wx:for-index="i"><view>名字:{{ fruitItem.name }}</view><view>价格:{{ fruitItem.price }}</view>
</block>

刷新页面,可以看到具体效果如下:

在这里插入图片描述
参考视频:尚硅谷微信小程序开发教程

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词