-
2020-03-07 20:57:05
首先是if条件判断,如下代码段:先给出条件判断表达式,接上问号,第一个值是为true的结果,冒号后面是为false的结果
<view>{{10%2==0?"偶数":"奇数"}}</view> <!--if条件判断-->
再在js当中定义了一个list列表。在定义列表如下代码所示:给出一个简单的列表。
list:[ { id:0, name:"月月鸟" }, { id:1, name:"月月大鸟" } ]
怎么获取列表的值呢,这个使用就要使用wx:for了,先wx:for给出要循环的对象,这里也就是list列表,wx:for-index和wx:for-item的值就好比于for循环当中的i和j。最后的wx:key只是对循环做一个优化,节省时间,给出的值必须是在列表当中是唯一的值,好比主键
<view wx:for="{{list}}" wx:for-index="index" wx:for-item="item" wx:key="id"> <!--列表循环,索引和值,以及优化索引(给出唯一列)--> 索引:{{index}}----{{item.name}}--{{item.id}} </view>
需要注意的是,这里的{{index}}获取的值是索引值,从0开始。
当然在前面定义的person对象也可以使用wx:for进行取值:地址链接<!--如果只有一层循环,可以省略wx:for-index 和 wx:for-item--> <view wx:for="{{person}}" wx:key="name"> 属性:{{index}}--值:{{item}} </view>
再就是wx:if,表示的意思就是是否移除该标签:运行后,在控制台当中,与console同级的Wxml当中耒阳看到在等于false的值的标签是看不到了的。
<view wx:if="{{true}}">显示</view> <view wx:if="{{false}}">隐藏</view>
使用hidden属性,只是将其隐藏。
<view hidden="{{true}}">hiddden</view>
更多相关内容 -
微信小程序列表渲染功能之列表下拉刷新及上拉加载的实现方法分析
2020-08-28 17:49:47主要介绍了微信小程序列表渲染功能之列表下拉刷新及上拉加载的实现方法,结合实例形式分析了微信小程序列表下拉刷新及上拉加载的相关实现方法与技巧操作,需要的朋友可以参考下 -
微信小程序-微信小程序渲染html
2019-08-06 04:55:17微信小程序渲染html 支持的特性: 大部分的普通HTML标签(未全部测试) , <video>, <audio> , , , 等表格标签 标签转`` HTML entities 七牛图片裁剪 自定义插件 不支持<form>, ,等表单元素. 使用... -
微信小程序 列表渲染,数组更新
2022-06-21 10:01:28微信小程序渲染的列表页面,点击按钮更新对应的元素,具体b方案:对应的按钮,增加一个属性data-index ="{{index}}" 这个是数组的行索引,当点击按钮的时候,我知道需要对数组那一行的元素进行更新...我们先来看一下背景:
这个是一个列表页面,需要实现的是,对应的商品数量可以修改的,那么也就是我点击上面的+
号的时候,数量依次递增
我们先来分析一下,这两行商品是通过数组渲染的,点击加号修改的数量,其实是修改的数组中的元素,并且我们还需要确定修改的数组的那一行的元素我们来看列表代码:
<checkbox-group bindchange="checkboxChange"> <view wx:for="{{goodsList}}" wx:for_item="item" wx:key="index" class="goods_item"> <checkbox value="{{item.rowguid}}" style="position: relative;top: -45px;"></checkbox> <image src="{{item.picurl}}" lazy-load="true" mode="heightFix" ></image> <text class="goods_title">{{item.goodsname+"..."}}</text> <text class="goods_ggxh">{{item.ggxhname}}</text> <text class="goods_price">¥{{item.buyprice}}</text> <view class="goods_addnum"> <button size="mini" data-index="{{index}}" bindtap="subBookNum">-</button> <input class="ggxh_num_input" type="number" value="{{item.buynum}}"> {{item.buynum}} </input> <button size="mini" data-index="{{index}}" bindtap="addBookNum">+</button> </view> </view> </checkbox-group>
<button size="mini" data-index="{{index}}" bindtap="addBookNum">+</button>
这个是点击+号对应的按钮,增加一个属性data-index ="{{index}}" 这个是数组的行索引,当点击按钮的时候,我知道需要对数组那一行的元素进行 更新
对应的事件:addBookNum
addBookNum:function(e){ let index=e.currentTarget.dataset.index; let buynum=this.data.goodsList[index].buynum; let f = 'goodsList[' + index + '].buynum' this.setData({ [f]:buynum+1 }) },
可以看出的是,当点击+号按钮的时候,首先是获取到当前点击行的索引,然后获取到数组中对应的元素,并获取到当前的数量,最后对数量进行更新
响应的点击-号,也是这样进行操作
代码:
subBookNum:function(e){ let index=e.currentTarget.dataset.index; let buynum=this.data.goodsList[index].buynum; let f = 'goodsList[' + index + '].buynum' if(buynum>1){ this.setData({ [f]:buynum-1 }) } }, addBookNum:function(e){ let index=e.currentTarget.dataset.index; let buynum=this.data.goodsList[index].buynum; let f = 'goodsList[' + index + '].buynum' this.setData({ [f]:buynum+1 }) },
希望对你有所帮助
-
微信小程序 教程之列表渲染
2021-01-03 07:16:11微信小程序 教程之列表渲染 微信小程序 教程之条件渲染 微信小程序 教程之数据绑定 微信小程序 教程之WXML wx:for 在组件上使用wx:for控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件。 默认数组的... -
微信小程序 列表排行
2019-03-30 19:19:22微信小程序 列表排行表渲染具体开发方法: wx:for 在组件上使用wx:for控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件。 默认数组的当前项的下标变量名默认为index,数组当前项的变量名默认为item -
微信小程序多列表渲染数据开关互不影响的实现
2020-12-28 17:47:28最近在学习小程序,正好发现一个问题,微信小程序多列表渲染数据开关怎么互不影响,记录一下,分享给大家 <!--pages/list/list.wxml--> <view class=time>{{filter.replaceStar(index)}} <view wx:... -
微信小程序06 条件渲染与列表渲染
2022-03-31 11:17:52在小程序中,使用wx:if="{{condition}}"来判断是否需要渲染该代码块。 <view wx:if="{{condition}}">True</view> 也可以用wx:elif 和 wx:else来添加else判断: <view wx:if="{{type === 1}}">男&...一、条件渲染
(一)wx:if
在小程序中,使用wx:if="{{condition}}"来判断是否需要渲染该代码块。
<view wx:if="{{condition}}">True</view>
也可以用wx:elif 和 wx:else来添加else判断:
<view wx:if="{{type === 1}}">男</view> <view wx:elif="{{type === 2}}">女</view> <view wx:else>保密</view>
演示:
如果type的初始值为1,则页面渲染为“男”
如果type初始值为2,页面渲染为2
其他值,页面渲染为保密(二)结合使用wx:if
可以通过一次性控制多个组件的显示与隐藏,并不是一个组件,只是一个包裹性质的容器,不会在页面做任何渲染。
<block wx:if="{{true}}"> <view>view1</view> <view>view2</view> </block>
true为显示,false为隐藏。
(三)hidden
直接使用hidden="{{condition}}"也能控制元素的显示与隐藏,条件为true为隐藏,条件为false为显示。
注:wx:if 和hidden的区别
1、wx:if以动态创建和移除的方式,控制元素的显示与隐藏;hidden用切换样式的方法(display:none/block;)控制元素的显示与隐藏。
需要频繁切换时,建议使用hidden
控制条件复杂时,建议使用wx:if,搭配wx:if/wx:else进行展示与隐藏的切换。<view hidden="{{flag}}">条件为true的时候隐藏元素,否则显示</view> <view wx:if="{{flag}}">这是使用wx:if控制的元素</view>
显示:
二、列表渲染
(一)wx:for
通过wx:for可以根据指定的数组,循环渲染重复的结构组件。
wxml:<view wx:for="{{arr1}}"> 索引是:{{index}}, 当前项是:{{item}} </view>
js:
data: { type:2, flag:true, arr1:['苹果','香蕉','梨'] },
(二)wx:key
建议为渲染出来的列表项指定唯一的Key值,从而提高代码效率。
wxml:<view wx:for="{{userList}}" wx:key="id">{{item.name}}</view>
js:
data: { type:2, flag:true, arr1:['苹果','香蕉','梨'], userList:[ {id:1,name:'张三'}, {id:2,name:'李四'}, {id:3,name:'王五'} ] },
-
微信小程序开发(一):服务器获取数据列表渲染操作示例
2020-10-15 06:14:48主要介绍了微信小程序开发服务器获取数据列表渲染操作,结合实例形式分析了微信小程序后台获取服务器数据及前台列表渲染相关操作实现技巧,需要的朋友可以参考下 -
【微信小程序】条件渲染和列表渲染
2022-07-16 20:43:17本文讲解了微信小程序的事件传参细节,input 事件的介绍和使用,以及`wxml`中比较重要的条件渲染和列表渲染🍒🍒 观众老爷们好啊,牛牛又更新了,上文我们详细了解了微信小程序中的事件绑定,那么今天我们就来讲讲WXML语法中的列表渲染和条件渲染,它俩也是非常重要的知识点,赶紧学起来吧。
🍒🍒 不过首先,我们想来补充一下数据传参的知识点以及常用的input事件用法。一,事件传参
首先我们需要知道,微信小程序中事件处理函数的传参,并不能直接在绑定时间的同时做,也就是说以下这样操作。
<view bindtap="tapName(2)">错误</view>
是不行的,如此编译器只会将整个
tapName(2)
识别成事件处理函数的名字。如果想要传参,需要为组件提供自定义属性,格式如此——
data-*
,*
代表该自定义属性的名字。具体实现如下:
<view bindtap="tapName" data-info="{{2}}"></view>
然后我们在事件处理函数中,只需要通过
event.target.dataset.info
即可获取该传入的参数。还记得之前说过事件对象
event
中的target
属性吗,里面就是记录触发事件组件的一些属性值,上面用到的原理就是这里。小tip:
需要注意的是,对于已经确认为数值的参数,我们采用Mustache
语法,也就双括号括住参数,而如果我们只是用双引号包围,如下:<view bindtap="tapName" data-info="2"></view>
解析到的
data-info
的值将会是一个字符串,"2"
。二,input事件使用
input
事件在小程序开发中是比较常用的,具体表述就是为文本框绑定事件,当内容发生变化触发。如下设置:
<input type="text" bidninput="changetext"></input>
一般我们使用该事件时,需要在对应的事件处理函数获取到
input
文本框的输入值,可以如下进行操作:changetext(e){ console.log(e.detail.value) }
e.detail.value
就是对应着变化后的最新值。三,条件渲染
条件渲染其实就相当于在
WXML
中的if
语句,利用条件判断是否渲染某一个或一部分的组件。语法为
wx:if="{{condition}}"
,通过判断里面的condition
增加来渲染,如果为true
,则渲染组件。除了
if
,还有与之配套的elif
和else
。<view wx:if="{{type==1}}">男</view> <view wx:if="{{type==2}}">女</view> <view>不详</view>
当type为1,只有第一个
view
组件被渲染,当type为2,只有第二个组件被渲染,如果均不满足,则只渲染第三个组件。其实条件渲染除了if还有hidden可以做到。
语法为
hidden= "{{condition}}"
,hidden
为组件属性,当里面condition
条件值为false
,组件不隐藏,为true
,组件隐藏。说到这里大家可能发觉,我们还不知道如何一次性控制多组件展示隐藏。
微信小程序中有一个
<block>
,它并不是组件,只是有包裹性质的容器,即使写进wxml
,也不会被渲染(调试器也不会看到它的存在),我们可以利用它来实现。<block wx:if="{{info==1}}"> <view>a</view> <view>b</view> <view>c</view> </block>
if和hidden对比:
从本质上,
if
是动态创建和移除组件- 而
hidden
是通过改变样式,设置display
为none
或block
实现的
从使用上,当我们需要频繁的切换时,建议使用
hidden
,而当控制条件复杂时,特别需要用到elseif效果的时候,建议使用if
。四,列表渲染
列表渲染其实从理解上,就是在
wxml
语法中的for语句
,实现循环。语法为
wx:for="{{array}}"
,根据指定数组,循环渲染复杂的组件,注意,双括号中的是数组哦。使用中,我们一般同时还有给其设定唯一key
值,语法为wx:key
。比如我们的数组如下:
user:[ {id:1, name:"apple"}, {id:2, name:"add"}, {id:3, name:"abandon"} ]
这样我们可以设置
wx:key="id"
,当我们调用里面的name
,循环会根据key遍历,调用时key
为何值,调用就是哪一个name
值。<view wx:for="{{user}}" wx:key="id">{{name}}<view>
需要注意的是,设置key不需要使用{{}}
如果数组没有这种
id
属性,我们可以直接设定key为index
,如wx:key="index"
,也是可以循环遍历数组。好啦,本次小程序的文章到这里就结束啦,如果对您有帮助的话,可以继续关注牛牛后续的文章呀,您的支持是我们创作的最大动力!
🍒牛牛最近发现一款刷题神器,各大互联网大厂的面试真题,还有超大面试题库。
🍒里面还有很多大佬的面经,赶紧卷起来!!
点击直接访问债见~~
-
微信小程序列表渲染(循环渲染)
2019-02-23 16:41:06一个简单例子,介绍微信小程序如何实现列表渲染(循环渲染) 2. 例子 js代码中准备数据(数组): data: { smiles: [ "../../image/weather/smile1.png", "../../image/weather/soso.png", ... -
微信小程序文章列表功能完整实例
2020-10-15 06:22:38主要介绍了微信小程序文章列表功能,结合完整实例形式详细分析了微信小程序文章列表功能具体布局、样式、功能相关实现技巧,需要的朋友可以参考下 -
【微信小程序】条件渲染 列表渲染 原来这样用?
2022-06-28 20:53:47wx:if 与 hidden 的对比WXML 模板语法 - 列表渲染1. wx:for2. 手动指定索引和当前项的变量名3. wx:key 的使用 也可以用 wx:elif 和 wx:else 来添加 else 判断: js: 因为type的值为1,所以: 例如:... -
微信小程序WXML-列表渲染与事件绑定
2022-06-21 20:56:062.2 wx:for 控制属性绑定一个数组, 即可使用数组中的各项数据重复渲染该组件。 默认数组的当前项 下标变量默认为index,数组当前项的变量默认为item。 使用 可以指定数组当前元素的变量名 -
微信小程序学习之 实现列表渲染和条件渲染.
2022-06-22 11:32:50要实现列表渲染我们首先要介绍一下标签.该标签不会再列表中做任何渲染,一般当做容器使用.我们可以在标签中加入限定元素来实现控制渲染效果.例如,当我们需要渲染某个限定条件时可以写成: 而当我们需要循环渲染某个... -
微信小程序wxml列表渲染原理解析
2020-10-15 22:34:32主要介绍了微信小程序wxml列表渲染原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 -
微信小程序列表渲染九九乘法表
2022-01-05 13:07:45<viewclass='con'> <viewwx:for="{{[1,2,3,4,5,6,7,8,9]}}"wx:for-item="i"> <viewstyle='display:inline-block;width:35px'wx:for="{{[1,2,3,4,5,6,7,8,9]}}"wx:for-item="j">... -
微信小程序 之 条件渲染、列表渲染
2021-12-23 19:19:40条件渲染 wx:if 在框架中,使用 wx:if="" 来判断是否需要渲染该代码块: <view wx:if="{{condition}}"> True </view> 也可以用 wx:elif 和 wx:else 来添加一个 else 块: <view wx:if="{{length >... -
微信小程序点击列表跳转到对应详情页过程解析
2021-01-19 20:51:56这篇文章主要介绍了微信小程序点击列表跳转到对应详情页过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 点击列表跳转到对应详情页: 用自定义属性... -
微信小程序开发——列表渲染带有button的template,点击获取列表索引
2022-04-19 17:04:25template里的button,点击获取此button在列表中的索引值,进而实现不同的点击效果 -
微信小程序 列表渲染 wx:for
2018-05-22 16:59:22wx:for在组件上使用 wx:for 控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件。默认数组的当前项的下标变量名默认为 index,数组当前项的变量名默认为 item<view wx:for="{{array}}&... -
微信小程序 社交交友 微信 (源代码+截图)
2022-06-21 18:06:25微信小程序 社交交友 微信 (源代码+截图)微信小程序 社交交友 微信 (源代码+截图)微信小程序 社交交友 微信 (源代码+截图)微信小程序 社交交友 微信 (源代码+截图)微信小程序 社交交友 微信 (源代码+截图)... -
微信小程序实现城市列表选择
2020-12-10 11:52:01本文实例为大家分享了小程序实现城市列表选择的具体代码,供大家参考,具体内容如下 实现效果预览 实现功能简介 城市的选择 按中文/拼音/首字母条件搜索 按首字字母快速定位到城市位置 目录结构 主要代码 app... -
微信小程序开发(五)小程序条件渲染和列表渲染
2020-11-25 23:47:14说到条件,相比大家都是很熟悉的...同样在微信小程序也是有条件渲染的,下面就来具体操作一下。 条件渲染 我们先制定一个规则,小明考试成绩出来了,如果在80分及以上是红分,如果小于60分是不及格,如果在60分到79分之 -
微信小程序中实现列表渲染(wx:for)
2021-10-03 21:40:51我们经常在vue页面中用v-for语句来实现列表渲染,那在微信小程序wxml页面中也可以用类似于v-for作用的语句wx:for来实现列表的渲染,如下所示: 在wxml页面中: <view class="list_box listTwo"> <view ... -
微信小程序 下拉列表的实现实例代码
2020-08-31 03:50:54主要介绍了微信小程序 下拉列表的实现实例代码的相关资料,需要的朋友可以参考下