版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第微信小程序如何实现列表渲染和条件渲染目录概述:循环渲染:渲染目标是列表时:渲染目标为字典时:总结
概述:
要实现列表渲染我们首先要介绍一下block标签.
该标签不会再列表中做任何渲染,一般当做容器使用.
我们可以在标签中加入限定元素来实现控制渲染效果.
例如,当我们需要渲染某个限定条件时可以写成:
blockwx:if="{{case_length}}"
/block
而当我们需要循环渲染某个列表时可以写成:
labelwx:for="{{len_items}}"
/block
当然此处的len_items不仅仅可以是列表,还可以是字典.
循环渲染:
渲染目标是列表时:
默认数组的当前项的下标变量名默认为index,数组当前项的变量名默认为item
viewwx:for="{{array}}"
{{index}}:{{item.message}}
/view
Page({
data:{
array:[{
message:'foo',
},{
message:'bar'
使用wx:for-item可以指定数组当前元素的变量名,
使用wx:for-index可以指定数组当前下标的变量名:
viewwx:for="{{array}}"wx:for-index="idx"wx:for-item="itemName"
{{idx}}:{{itemName.message}}
/view
样例:
radio-groupbindchange="getlen_select1"
labelwx:for="{{len_items}}"
view
radiocolor="#007aff"value="{{}}"/{{index}}:{{}}
!--blockwx:if="{{index==0}}"viewbutton收起列表/button/view/block--
/view
/label
/radio-group
len_items:[{
name:'纳米'
},{
name:'微米'
},{
name:'毫米'
},{
name:'厘米'
},{
name:'米',
checked:true
},{
name:'公里'
},{
name:'英尺'
},{
name:'英寸'
},{
name:'码'
},{
name:'英里'
},{
name:'海里'
渲染目标为字典时:
当items为字典时index为主键值而不是像数组时那样的数组下标.
样例:
weight_items:{
"千克":{
proportion:1
"克":{
proportion:1000
"吨":{
proportion:0.001
"磅":{
proportion:2.204623
"克拉":{
proportion:5000
"毫克":{
proportion:1000000
"盎司":{
proportion:35.27396
"短吨(美制)":{
proportion:0.001102
"长吨(英制)":{
proportion:0.000984
"斤":{
proportion:2
"两":{
proportion:20
"钱":{
proportion:2000
radio-groupbindchange="getlen_select1"
labelwx:for="{{weight_items}}"wx:key="*this"
view
radiocolor="#007aff"value="{{index}}"/{{index}}
/view
/label
/radio-group
wx:key如果列表中项目的位置会动态改变或者有新的项目添加到列表中,并且希望列表中的项目保持自己的特征和状态(如input中的输入内容,switch的选中状态),需要使用wx:key来指定列表中项目的唯一的标识符。
wx:key的值以两种形式提供
字符串,代表在for循环的array中item的某个property,该property的值需要是列表中唯一的字符串或数字,且不能动态改变。保留关键字*this代表在for循环中的item本身,这种表示需要item本身是一个唯一的字符串或者数字。当数据改变触发渲染层重新渲染的时候,会校正带有key的组件,框架会确保他们被重新排序,而不是重新创建,以确保使组件保持自身的状态,并且提高列表渲染时的效率。
如不提供wx:key,会报一个warning,如果明确知道该列表是静态,或者不必关注其顺序,可以选择忽略。
条件渲染:在使用时我们不仅仅可以用ifelifelse判断例子如下:
viewwx:if="{{length5}}"1/view
viewwx:elif="{{length2}}"2/view
viewwx:else3/view
样例:
view
blockwx:if="{{!length_select1}}"
view
viewbuttonbindtap="hidelist_len1"收起列表/button/view
radio-groupbindchange="getlen_select1"
labelwx:for="{{weight_items}}"wx:key="*this"
view
radiocolor="#007aff"value="{{index}}"/{{index}}
/view
/label
/radio-group
/view
/block
blockwx:else=""
viewbuttonbindtap="displaylist_len1"请选择已知单位/button/view
/block
/view
wx:if和hidden因为wx:if之中的模板也可能包含数据绑定,所以当wx:if的条件值切换时,框架有一个局部渲染的过程,因为它会确保条件块在切换时销毁或重新渲染。
同时wx:if也是惰性的,如果在初始渲染条件为false,框架什么也不做,在条件第一次变成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 1.3 劳动教育的发展历程
- 冬期专项施工方案
- ibm财务外包合同
- 三维影片外包合同
- 业务分包外包合同
- 交通工程外包合同
- 供暖外包合同
- 企业某车间外包合同
- 供水营销外包合同
- 修缮学校外包合同
- Python语言基础学习通超星期末考试答案章节答案2024年
- 前程无忧行测题库
- 学前教育普及普惠督导评估内容和标准量化评分表
- JT-T-1230-2018机动车发动机冷却液无机阴离子测定法离子色谱法
- 广东省广雅中学2025届数学高一下期末联考试题含解析
- 兄弟宅基地分割协议书完整版
- 房地产项目资产收购协议
- 绿化保洁物业工作总结
- 名誉权纠纷答辩状范本
- 工业机器人操作与编程课件
- 2021年湖北省新高考物理试卷(附答案详解)
评论
0/150
提交评论