微信小程序列表渲染开发教程9页_第1页
微信小程序列表渲染开发教程9页_第2页
微信小程序列表渲染开发教程9页_第3页
微信小程序列表渲染开发教程9页_第4页
微信小程序列表渲染开发教程9页_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微信小程序列表渲染具体开发方法:wx:for在组件上使用wx:for控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件。默认数组的当前项的下标变量名默认为index,数组当前项的变量名默认为item<view wx:for="array"> index: item.message</view>Page( data: array: message: 'foo', , message: 'bar' )使用 wx:for-item 可以指定数组当前元素的变量名,使用 wx:for-in

2、dex 可以指定数组当前下标的变量名:<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,

3、 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

4、> item </view></block>wx:key如果列表中项目的位置会动态改变或者有新的项目添加到列表中,并且希望列表中的项目保持自己的特征和状态(如 <input/> 中的输入内容,<switch/> 的选中状态),需要使用 wx:key 来指定列表中项目的唯一的标识符。wx:key 的值以两种形式提供. 字符串,代表在 for 循环的 array 中 item 的某个 property,该 property 的值需要是列表中唯一的字符串或数字,且不能动态改变。. 保留关

5、键字 *this 代表在 for 循环中的 item 本身,这种表示需要 item 本身是一个唯一的字符串或者数字,如:当数据改变触发渲染层重新渲染的时候,会校正带有 key 的组件,框架会确保他们被重新排序,而不是重新创建,以确保使组件保持自身的状态,并且提高列表渲染时的效率。如不提供 wx:key,会报一个 warning, 如果明确知道该列表是静态,或者不必关注其顺序,可以选择忽略。示例代码:<switch wx:for="objectArray" wx:key="unique" style="

6、;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;"> ite

7、m </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',

8、 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.objectArrayx this.data.o

9、bjectArrayx = this.data.objectArrayy this.data.objectArrayy = 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: functio

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论