微信小程序 列表渲染 wx:for

微信小程序中的条件渲染和列表渲染,wx:if ,wx:elif,wx:else,wx:for,wx:key的使用,以及block标记和hidden属性的说明 当condition条件为true时,代码块渲染显示,为false时,代码块不进行渲染.可以结合 wx:elif=“{{condition}}” 和 wx:else来进行判断 1.2. block标记 可以使用block标记,一次性的控制多个组件的显示与隐藏,block标记本身并不进行渲染。 block并不是一个组件,它只是一个包裹性质的容器,不会再页面做任何渲染。从下面的例子来观察下,渲染出的页面结构有何特点: block标签未曾渲染,只是充当一个包裹性质的容器学过前端三剑客的应该看到这个属性就明白了,h 阅读详情

wx:for


在组件上使用wx:for控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件。

默认数组的当前项的下标变量名默认为index,数组当前项的变量名默认为item

<view wx:for="{{items}}">
  {{index}}: {{item.message}}
</view>
Page({    data:{
      items: [{
        message: 'foo',
      },{
        message: 'bar'
      }]
    }
})

使用wx:for-item可以指定数组当前元素的变量名

使用wx:for-index可以指定数组当前下标的变量名:

<view wx:for="{{array}}" wx:for-index="idx" wx:for-item="itemName">
  {{idx}}: {{itemName.message}}
</view>

wx:for也可以嵌套,下边是一个九九乘法表

<view wx:for="{{[1, 2, 3, 4, 5, 6, 7, 8, 9]}}" wx:for-item="i">
  <view wx:for="{{[1, 2, 3, 4, 5, 6, 7, 8, 9]}}" wx:for-item="j">
    <view wx:if="{{i <= j}}">
      {{i}} * {{j}} = {{i * j}}
    </view>
  </view>
</view>

block wx:for


类似block wx:if,也可以将wx:for用在<block/>标签上,以渲染一个包含多节点的结构块。例如:

<block wx:for="{{[1, 2, 3]}}">
  <view> {{index}}: </view>
  <view> {{item}} </view>
</block>

wx:key


如果列表中项目的位置会动态改变或者有新的项目添加到列表中,并且希望列表中的项目保持自己的特征和状态(如 <input/> 中的输入内容,<switch/> 的选中状态),需要使用 wx:key 来指定列表中项目的唯一的标识符。

wx:key 的值以两种形式提供

  1. 字符串,代表在 for 循环的 array 中 item 的某个 property,该 property 的值需要是列表中唯一的字符串或数字,且不能动态改变。
  2. 保留关键字 *this 代表在 for 循环中的 item 本身,这种表示需要 item 本身是一个唯一的字符串或者数字,如:

当数据改变触发渲染层重新渲染的时候,会校正带有 key 的组件,框架会确保他们被重新排序,而不是重新创建,以确保使组件保持自身的状态,并且提高列表渲染时的效率。

如不提供 wx:key,会报一个 warning, 如果明确知道该列表是静态,或者不必关注其顺序,可以选择忽略。

示例代码:

<switch wx:for="{{objectArray}}" wx:key="unique" style="display: block;"> {{item.id}} </switch>
<button bindtap="switch"> Switch </button>
<button bindtap="addToFront"> Add to the front </button>

<switch wx:for="{{numberArray}}" wx:key="*this" style="display: block;"> {{item}} </switch>
<button bindtap="addNumberToFront"> Add to the front </button>
Page({
  data: {
    objectArray: [
      {id: 5, unique: 'unique_5'},
      {id: 4, unique: 'unique_4'},
      {id: 3, unique: 'unique_3'},
      {id: 2, unique: 'unique_2'},
      {id: 1, unique: 'unique_1'},
      {id: 0, unique: 'unique_0'},
    ],
    numberArray: [1, 2, 3, 4]
  },
  switch: function(e) {
    const length = this.data.objectArray.length
    for (let i = 0; i < length; ++i) {
      const x = Math.floor(Math.random() * length)
      const y = Math.floor(Math.random() * length)
      const temp = this.data.objectArray[x]
      this.data.objectArray[x] = this.data.objectArray[y]
      this.data.objectArray[y] = temp
    }
    this.setData({
      objectArray: this.data.objectArray
    })
  },
  addToFront: function(e) {
    const length = this.data.objectArray.length
    this.data.objectArray = [{id: length, unique: 'unique_' + length}].concat(this.data.objectArray)
    this.setData({
      objectArray: this.data.objectArray
    })
  },
  addNumberToFront: function(e){
    this.data.numberArray = [ this.data.numberArray.length + 1 ].concat(this.data.numberArray)
    this.setData({
      numberArray: this.data.numberArray
    })
  }
})


微信小程序-wx:for 循环列表 获取了 N 条信息(具体有多少条不确定),如何在界面中动态呈现出来呢? .wxml 代码 <view wx:for="{{items}}" wx:for-index="index" wx:for-item="item"> {{index+1}}、{{item.title}} </view> 核心代码就是 wx:for,对应一个数组。 而 wx:for-index 指... 阅读详情

相关推荐

ATM火控电容改造实战:提升速凌无刷电机动力与系统稳定性

在嵌入式系统与电机驱动领域,电源完整性是保障电路稳定运行的核心基础。其核心原理在于通过合理的电容网络设计,为负载提供瞬时大电流并滤除高频噪声,从而维持电压稳定。这项技术的核心价值在于能显著提升系统的动态响应能力与可靠性,避免因电压跌落导致微控制器复位或功率器件过应力。典型的应用场景包括无人机电调、机器人关节驱动以及各类需要快速响应的伺服系统。本文聚焦于水弹发射器ATM火控系统的硬件迭代,通过详解电容的选型、布局与焊接流程,特别是针对速凌五代无刷电机的高启动电流特性,系统性地阐述了如何通过强化电源储能与芯片去

weixin_33868027的博客 559

wx:for详解(附wx:key注意事项)

之前有学过微信小程序的开发,今天看视频有进行了相关学习。之前也有学过Vue,与微信小程序语言有点相像,生命周期感觉都是大同小异。 之前的博客:Vue.js生命周期 Mr.J--Vue之v-for全解析 wx:for定义 官方文档:在组件上使用wx:for控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件。 默认数组的当前项的下标变量名默认为index,数组当前项的变量...

Lawless 3万+

【PLIO学习总结】laserMapping中的时间戳与状态更新逻辑

本文仅用于个人学习总结记录。如有错误,请批评指正。

larrydong的博客 1648

微信小程序开发系列(二十四)·wxml语法·列表渲染·wx:for-item 和 wx:for-index

索引:{{ index }}, 水果名称:{{ fruitItem.name }}

时光の尘的博客 5572

Stata实战:5步搞定PSM倾向得分匹配(附完整代码与常见报错解决)

本文详细介绍了使用Stata进行PSM(倾向得分匹配)的5步实战流程,包括数据预处理、模型构建、匹配算法选择、匹配质量诊断和结果解释。提供完整代码示例和常见报错解决方案,帮助研究者高效完成实证分析,提升匹配成功率。

weixin_29214559的博客 592

用python自动复制粘贴excel表里某一列的数据到另一个表中

昨天接到人事小姐姐求助减轻复制粘贴的重复工作量,分享一下代码 半路新手上路 耶 把 2.xlsx 表里的第二列 的数据复制粘贴到 test.xlsx的第一列 python3.6.2 from openpyxl import Workbook from openpyxl import load_workbook from openpyxl.writer.excel import Exc...

weixin_33854644的博客 2万+

【微信小程序】基础篇 -- WXML 模板语法 - 列表渲染 -- wx:for & wx:key(十二)

大家好,又见面了,我是夜阑的狗🐶,本文是专栏【微信小程序开发教程】专栏的第12篇文章;今天开始学习微信小程序的第八天💖💖💖,开启新的征程,记录最美好的时刻🎉,每天进步一点点。不知不觉已经学习微信小程序八天了,估计大佬们一天就学完这些内容了吧,我还在慢吞吞的学完,然后在看官方文档总结写写文章。 此专栏是我是夜阑的狗微信小程序开发过程的总结,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。🌹 🌹 🌹也欢迎你,关注我。

JMFive的博客 1万+

高通 vs MTK vs 海思:三大平台 ISP 架构横向对比与实战差异分析

随着移动影像能力成为智能终端差异化竞争的核心维度,ISP(Image Signal Processor)架构日益重要。高通、MTK、海思三大 SoC 厂商在 ISP 设计上各具特色,不仅在图像处理链路、模块集成度、算法加速路径等方面存在显著差异,同时也决定了终端厂商在成像质量、调试复杂度与扩展能力上的实际表现。本文将基于真实平台项目经验,横向对比三大主流平台的 ISP 架构关键指标,系统分析其在实际开发过程中的能力边界、工程成本与调优空间,帮助工程师更精准地进行平台选型与优化策略制定。

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 3934

【微信小程序】列表渲染wx:for

哈喽大家好,本期是微信小程序专栏第十二期,本期我们将学习列表渲染wx:for。注意:每期内容是连载呢,建议大家可以看看往期内容,更好理解噢~以上就是今天的学习内容啦~如果有兴趣的话可以订阅专栏,持续更新呢~咱们下期再见~

颜颜yan_的博客 5075

【Matlab】多旋翼无人机视觉伺服跟踪控制程序

本文介绍了基于Matlab的多旋翼无人机视觉伺服跟踪控制程序开发方法。该系统采用视觉感知、坐标转换、伺服控制和仿真验证四个核心模块,通过HOG+SVM目标检测、Shi-Tomasi特征提取和PID双闭环控制算法实现动态目标跟踪。详细阐述了相机标定、目标检测、坐标转换及伺服控制等关键环节的Matlab实现代码,并进行了仿真验证。结果表明该系统在±0.1m的跟踪精度下可实现100Hz的实时处理,适用于室内外复杂场景。文章还提出了工程应用中的优化建议,为无人机视觉伺服系统的开发提供了完整的技术方案。

unber的博客 507

概念解析 | 事件相机的原理 (含仿真代码)

在我们熟悉的世界里,传统相机就像一个勤勉的绘画师,每隔固定的时间就为我们勾勒出一幅完整的画面。但是,大自然中有太多瞬息万变的精彩场景,这种"定时绘画"的方式往往难以捕捉。于是,一种全新的"观察者"应运而生 -事件相机(Event Camera)。事件相机,就像是一群极其敏感的"像素哨兵",它们不再按部就班地等待指令,而是主动感知周围的变化,只有在光线强度发生显著变化时才会发出信号。这种革命性的设计,让事件相机拥有了传统相机难以企及的优势:超高的时间分辨率、极低的延迟、宽广的动态范围,以及出色的能效比。

NLOS的博客 1423

微信小程序 - 条件渲染(wx:if、hidden)与列表渲染(wx:for)

微信小程序 - 条件渲染(wx:if、hidden)与列表渲染(wx:for)

weixin_52173250的博客 3930

深入剖析Zynq AMP模式下CPU1中断响应机制:从原理到创新实践

在异构计算领域,Zynq-7000系列SoC的AMP(Asymmetric Multiprocessing)模式堪称多核编程的瑞士军刀。独立运行环境:CPU0运行Linux,CPU1运行FreeRTOS或裸机程序硬件资源独占:CPU0管理DDR,CPU1使用OCM(片上内存)中断隔离:默认所有中断路由到CPU0这种架构非常适合需要实时响应的工业控制系统——比如用CPU0处理网络通信,CPU1负责电机控制。AMP模式下中断路由的底层原理多维度性能优化技巧工业级可靠性的实现方案。

QQ_778132974的博客 493

微信小程序中的列表渲染wx:for和wx:key

wx:for 在组件上使用 wx:for 控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件。 默认数组的当前项的下标变量名默认为 index,数组当前项的变量名默认为 item <view wx:for="{{array}}"> {{index}}: {{item.message}} </view> Page({ data: { array: [{ message: 'foo', }, { message: 'bar'

weixin_50564041的博客 1828

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

微信小程序开发系列(二十三)·wxml语法·列表渲染wx:for和wx:key的使用

列表渲染:就是指通过循环遍历一个数组或对象,将其中的每个元素渲染到页面上。在组件上使用 wx:for 属性绑定一个数组或对象,既可使用每一项数据重复渲染当前组件。每一项的变量名默认为 item,下标变量名默认为inde。在使用 wx:for 进行遍历的时候,建议加上 wx:key 属性,wx:key 的值以两种形式提供:字符串:代表需要遍历的array中item的某个属性,该属性的值需要是列表中唯一的字符串或数字,且不能动态改变。

时光の尘的博客 6453

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

快马AI一键生成:用 wx:for 实现微信小程序动态列表渲染

通过这个案例,我掌握了wx:for的基本用法,也体会到了 AI 辅助开发的高效。微信小程序的列表渲染其实并不复杂,关键是要理解数据驱动视图的思想。使用像快马这样的平台,可以让开发者更专注于业务逻辑,省去很多重复劳动。如果你也想快速上手微信小程序开发,不妨试试InsCode(快马)平台,真的能节省不少时间。

StarfallRaven13的博客 1073

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

微信小程序数据列表渲染:简单易懂wx:for (本地数据渲染案例)(wx:key的作用)

主要解决数据列表渲染问题 1、 这是官方给出的案例 wx:for 在组件上使用 wx:for 控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件。 默认数组的当前项的下标变量名默认为 index,数组当前项的变量名默认为 item <view wx:for="{{array}}"> {{index}}: {{item.message}} </view...

WebView 4804

微信小程序开发 条件渲染wxif,hidden;列表渲染wx:for

微信小程序中的条件渲染和列表渲染,使用wx:for,wx:elif,wx:else,hidden;

qq_35262929的博客 1069

微信小程序wx:for列表渲染

小程序列表渲染十分方便,先写好页面结构,根据页面结构创建相应的数组结构,再把数组中的数据和页面进行绑定,就可以完成列表渲染 wx:for wx:for-index和wx:for-item可以省略,如果需要自定义数据绑定时也需要相应的调整。 <view wx:for="{{array}}" wx:for-index="id" wx:for-item="item"> {{id}}: {{item.message}} </view> 完整的js格式,包含数组的创建,数组中包.

shanggui96的博客 592

微信小程序——列表渲染(wx:for)

项的变量名默认为item wx:for--item--可以指定数组当前元素的变量名 下标变量名默认为index wx:for--index--可以指定数组当前下标的变量名 wx:key ⽤来提⾼数组渲染的性能 wx:key 绑定的值 有如下选择 1. string 类型,表⽰ 循环项中的唯⼀属性 如 2. 保留字 *this ,它的意思是 item 本⾝ ,*this 代表的...

yezongzhen的博客 5207

微信小程序wx:for循环列表渲染

列表渲染 wx:for 语法: wx:for={{xxx}} 书写位置:某一个组件的属性部分 此时可以在该指令所在的组件上 通过: {{index}}:数组下标 {{item}}:数组当前项 这两种方式来分别插入索引和值 在组件上使用wx:for控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件。 默认数组的当前项的下标变量名默认为index,数组当前项的变量名默认为item <view wx:for="{{array}}"> {{index}...

asteriaV的博客 5627

微信小程序 条件渲染 wx:if和列表渲染 wx:for

wx:if在框架中,我们用wx:if="{{condition}}"来判断是否需要渲染该代码块:<view wx:if="{{condition}}&#34...

陌然的博客 2764

微信小程序学习笔记-列表渲染wx:for

在.wxml块中, 在<view> </view>中可以添加循环语句, 实现在网页中循环输出几项东西 同样的,需要在.js的data中先添加数组或对象名字块,然后其中可以输入很多有关信息 具体在wxml中格式为 具体实现如下 wx:for="{{数组或者对象}}" wx:for-item="循环项的名称" wx:for-index="循环项的索引" 注意一些特殊情况 ...

Qingzhao_hw的博客 286

微信小程序中实现列表渲染(wx:for)

我们经常在vue页面中用v-for语句来实现列表渲染,那在微信小程序wxml页面中也可以用类似于v-for作用的语句wx:for来实现列表的渲染,如下所示: 在wxml页面中: <view class="list_box listTwo"> <view class="item" wx:for="{{listTwo}}" wx:key="label"> <view class="icon_bg"> <im

HuLuWa1997的博客 2448
上一篇: 微信小程序入门教程--列表渲染多层嵌套循环及wx:key的使用
下一篇: 运行SSH框架的Javaweb项目时,提示Java.lang.ClassNotFoundException:org.apache.commons.lang.xwork.StringUtils。
It_BeeCoder
博客等级 码龄10年 967粉丝 238原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值