-
2022-01-19 13:17:36
获取用户基本信息
1. 用户未授权(首次登陆)
button open-type=‘getUserInfo’
2. 用户已经授权(再次登陆)
wx.getUserInfo一、语法说明
1. wx:if=’条件’
2. wx:elif=’条件‘
3. wx:else
(1)wx:if
在框架中,使用wx:if=""来判断是否需要渲染该代码块
也可以使用 wx:elif 和 wx:else 来添加一个else块
二、 wx:if VS hidden
1. hidden 用法:<view hidden='{{true}}'></view>
2. wx:if 等同于 v-if, 条件为 false 的时候不加载,条件切换的时候决定元素销毁或者重新加载渲染
3. hidden 等同于 v-show, 始终加载元素, 条件切换的时候决定元素的显示和隐藏
示例:
当没有获取用户信息时,为按钮显示,图片隐藏
当获取用户信息后,为按钮隐藏,图片显示
更多相关内容 -
小程序 条件渲染
2018-01-06 12:14:48微信小程序数据绑定-条件渲染微信小程序数据绑定-条件渲染 -
微信小程序 条件渲染详解
2020-09-01 12:02:21主要介绍了微信小程序 条件渲染详解的相关资料,需要的朋友可以参考下 -
微信小程序开发(五)小程序条件渲染和列表渲染
2020-11-25 23:47:14说到条件,相比大家都是很熟悉的...同样在微信小程序也是有条件渲染的,下面就来具体操作一下。 条件渲染 我们先制定一个规则,小明考试成绩出来了,如果在80分及以上是红分,如果小于60分是不及格,如果在60分到79分之说到条件,相比大家都是很熟悉的了,要么符合什么什么条件,要么不符合什么什么条件,在我们的编程里就是if else,从if开始到else结束。比如我们说小明的考试成绩出来了,如果分数大于60分及格,不然就是不及格,那么我们的条件语句就可以写成下面这个样子。
if(score > 60){ 及格 }else{ 不及格 }
同样在微信小程序也是有条件渲染的,下面就来具体操作一下。
条件渲染
我们先制定一个规则,小明考试成绩出来了,如果在80分及以上是红分,如果小于60分是不及格,如果在60分到79分之间就是及格。
微信小程序是不能直接使用if else进行判断的,要加上wx前缀比如if就是wx:if,else就是wx:else,else if要注意是这个样子的wx:elif;注意是 e l i f。
接下来我们就可以来编写我们的条件约束了:
首先不及格,条件是分数score小于60分:
<view wx:if="{{score < 60 }}"> 不及格</view>
然后红分,条件是分数在80及以上的分数:
<view wx:elif="{{score >= 80 }}"> 红分</view>
最后就还剩下60分到79分的及格:
<view wx:else="{{score >= 80 }}"> 及格</view>
先输入一下80分看一下效果,我们可以看到显示的是红分:
我们在输入一个不及格的分数看一下效果:
最后输入一个及格的分数:
三个分数对应三个结果,说明我们的条件语句没有写错。这里额外提一点,小程序的判断一个对象是否为空,使用的是==’’,注意的是等号后面不是双引号""而是单引号‘’这里也举个例子:
我们判断小明的名字是否为空:
<view wx:if="{{name !== ''}}">我有名字叫:{{name}}</view> <view wx:else>我没有名字</view>
我们现在data里面声明一个name,然后给他一个空值,来看一下效果:
data: { score:70, name:"" },
这里名字为空,走了else
我们再给data里面的name设置一个值,比如叫小明,这里就走了if
小程序的条件渲染就这么多了,其实也很简单明了,如果符合if里面的条件就执行if里面的操作,不然就执行else里面的操作。列表渲染
我们知道现在很多市面上的APP都有很多列表数据,但是那么多列表数据我们不可能每一条数据就在wxml文件里面手动添加一个view去显示,这个不现实,也不利于修改和维护;所以这就要用到小程序的列表渲染,列表渲染可能不好理解,其实就是通过for循环来循环展示数据。
操作步骤:
1.首先在页面onLoad回调里面创建一个list的数据并添加,但是这里添加的时候要注意,前面说到给data赋值的时候是this.setData(对象名),但是我们现在创建是数据是一个集合,不能直接set到data里面去,因为data只能接收一个对象,所以我们要通过{}的形式进行赋值,我们现在data里面创建一个数据源进行接收:data: { //创建集合数据并初始化 list:[] },
2.在onLoad里面创建模拟数据并set到data里面去:
onLoad: function (options) { var dataList = [{ img:"../../images/code-cloud-callback-config.png", name:"小明" },{ img:"../../images/code-db-inc-dec.png", name:"小明2" },{ img:"../../images/code-db-onAdd.png", name:"小明3" },{ img:"../../images/code-db-onQuery.png", name:"小明4" }] /** * 给data添加数据 * data传入的需要是一个对象,不能直接传list this.setData(dataList) 是不允许的 * 传入list需要通过以下方法 */ this.setData({ list:dataList }) },
3.我们在控制台的AppData中就可以看到data中list的数据了:
4.接下来回到index.wxml文件,先创建一个view代表整个list,也就是整个模块,然后在创建一个block,用block来包裹集合里面的子项,也就是item,然后在block执行for循环操作;最后在block里面创建一个view,这一个view就是一个item,item里面包含一张图片、一个名字、以及当前item的下标索引:<!--miniprogram/pages/index/index.wxml--> <text>小程序条件渲染和列表渲染</text> <view class="list"> <!-- block包裹住item wx:for="{{list}}" list就是data里面的数据源 wx:for-item="item" 定义item的变量名,我们要获取list数据源中item的值就要通过变量名去获取,比如img就是item.img wx:for-index="itemId" 定义item索引的变量名,在小程序中item索引有一个默认的变量名index --> <block wx:for="{{list}}" wx:for-item="item" wx:for-index="itemId"> <view class="item"> <view class="item_img"> <image src="{{item.img}}"></image> </view> <view class="item_name">name:{{item.name}}</view> <view class="item_index">index:{{itemId}}</view> </view> </block> </view>
5.这里就可以查看最终效果了:
index.wxss文件的代码很简单,随便写了一个样式,还是贴一下吧:/* miniprogram/pages/index/index.wxss */ .list{ display: flex; padding: 0 30rpx; flex-direction: row; justify-content: space-between; flex-wrap: wrap; } .item{ width: 48%; } .item img{ width: 100%; height: 100rpx; }
小程序的条件渲染和列表渲染到这里就结束了。很简单,也很好理解。
-
微信小程序06 条件渲染与列表渲染
2022-03-31 11:17:52一、条件渲染 (一)wx:if 在小程序中,使用wx:if="{{condition}}"来判断是否需要渲染该代码块。 <view wx:if="{{condition}}">True</view> 也可以用wx:elif 和 wx:else来添加else判断: <view wx:...一、条件渲染
(一)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:'王五'} ] },
-
【微信小程序】条件渲染 列表渲染 原来这样用?
2022-06-28 20:53:47目录WXML 模板语法 - 条件渲染1. wx:if2. 结合 使用 wx:if3. hidden4. wx:if 与 hidden 的对比WXML 模板语法 - 列表渲染1. wx:for2. 手动指定索引和当前项的变量名3. wx:key 的使用 也可以用 wx:elif 和 wx:else ...目录
WXML 模板语法 - 条件渲染
🍊1. wx:if
在小程序中,使用 wx:if="{{ condition }}" 来判断是否需要渲染该代码块:<view wx:if="{{condition}}">ture</view>
也可以用 wx:elif 和 wx:else 来添加 else 判断:<view wx:if="{{type==1}}">type==1</view> <view wx:elif="{{type==2}}">type==2</view> <view wx:else>type==3</view>
js:
Page({ data: { type:1 }, })
因为type的值为1,所以:
例如:
WXML:
<view wx:if="{{type==1}}">主色调</view> <view wx:elif="{{type==2}}">普通按钮</view> <view wx:else>无</view> <button type="primary" size="mini" wx:if="{{type==1}}">主色调</button> <button size="mini" wx:if="{{type==2}}">普通按钮</button>
JS和上面的一样
效果:
🍋2. 结合 <block> 使用 wx:if
如果要 一次性控制多个组件的展示与隐藏 ,可以使用一个 <block></block> 标签将多个组件包装起来,并在 <block> 标签上使用 wx:if 控制属性,示例如下:<block wx:if="{{true}}"> <view>view1</view> <view>view2</view> <view>view3</view> </block>
注意: <block> 并不是一个组件 ,它只是一个包裹性质的容器, 不会在页面中做任何渲染。🍉3. hidden
在小程序中,直接使用 hidden="{{ condition }}" 也能控制元素的显示与隐藏:<view hidden="{{false}}">hidden</view>
hidden 中 false 表示不隐藏组件
true表示隐藏组件🍓4. wx:if 与 hidden 的对比
① 运行方式不同wx:if 以 动态创建和移除元素 的方式,控制元素的展示与隐藏hidden 以 切换样式 的方式(display: none/block;),控制元素的显示与隐藏② 使用建议频繁切换 时,建议使用 hidden控制条件复杂 时,建议使用 wx:if 搭配 wx:elif、wx:else 进行展示与隐藏的切换WXML 模板语法 - 列表渲染
🥭1. wx:for
通过 wx:for 可以根据指定的数组,循环渲染重复的组件结构,语法示例如下:<view wx:for="{{arry}}"> 索引是:{{index}},item项是:{{item}} </view>
JS:
Page({ data: { arry:['橘子','苹果','香蕉'] } })
默认情况下,当前循环项的 索引 用 index 表示; 当前循环项 用 item 表示。效果:🍍2. 手动指定索引和当前项的变量名
使用 wx:for-index 可以指定 当前循环项的索引 的变量名使用 wx:for-item 可以指定 当前项 的变量名示例代码如下:🥝3. wx:key 的使用
类似于 Vue 列表渲染中的 :key ,小程序在实现列表渲染时,也建议为渲染出来的列表项指定唯一的 key 值, 从而 提高渲染的效率 ,示例代码如下:<view wx:for="{{userList}}" wx:key="id"> {{item.name}} </view>
JS:
Page({ data: { userList:[ {id:1,name:'热'}, {id:2,name:'爱'}, {id:3,name:'编'}, {id:4,name:'程'}, {id:5,name:'的'}, {id:6,name:'小'}, {id:7,name:'白'}, {id:8,name:'白'}, ] } })
效果:
-
微信小程序 之 条件渲染、列表渲染
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-03 09:53:01这篇文章主要介绍了微信小程序页面渲染实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 条件渲染:wx:if, wx:elif, wx:else ... -
微信小程序条件渲染 wx:if 与hidden的区别 及多条件的渲染用法
2020-08-05 15:57:44在框架中,使用 wx:if="" 来判断是否需要渲染该代码块: 先从官方文档来说 示例 <view wx:if="{{currentId!=1}}"> True </view> <view hidden="{{currentID!=1}}">True </view> 最大的区别... -
微信小程序条件渲染
2018-01-18 20:55:07微信小程序条件渲染 01简单的条件渲染 代码: // pages/test/test.js Page({ data: { id:1, bol:true }, //事件处理函数 bindtoLog:function(){ wx.switchTab({ url: '../logs/logs', }) }, ... -
微信小程序 教程之列表渲染
2021-01-03 07:16:11微信小程序 教程之条件渲染 微信小程序 教程之数据绑定 微信小程序 教程之WXML wx:for 在组件上使用wx:for控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件。 默认数组的当前项的下标变量名默认为... -
微信小程序条件渲染hidden与wx:if的比较和不生效问题
2019-07-02 11:50:52微信小程序条件渲染hidden与wx:if的比较和不生效问题导读一、定义二、hidden、wx:if的区别三、hidden不生效 导读 本篇文章将为你详细讲解微信小程序里的hidden和wx:if这两个属性的使用和区别。后面也会说到... -
微信小程序 教程之条件渲染
2020-12-28 23:54:28微信小程序 教程之条件渲染 微信小程序 教程之数据绑定 微信小程序 教程之WXML wx:if 在MINA中,我们用wx:if=”{{condition}}”来判断是否需要渲染该代码块: ”{{condition}}”> True 也可以用wx:elif和wx:else... -
微信小程序--条件渲染&列表渲染
2020-01-23 22:50:08条件渲染: wx:if 表示判断单个组件 block wx:if 表示判断块,也即判断多个组件 wx:if 在微信小程序框架里,使用wx:if = "{{condition}}"来判断是否需要渲染该代码块 <view wx:if= "{{condition}}"> true &... -
微信小程序练习demo:数据绑定条件渲染练习(源代码+截图)
2022-06-19 19:00:51微信小程序练习demo:数据绑定条件渲染练习(源代码+截图)微信小程序练习demo:数据绑定条件渲染练习(源代码+截图)微信小程序练习demo:数据绑定条件渲染练习(源代码+截图)微信小程序练习demo:数据绑定条件渲染练习... -
微信小程序 条件渲染 wx:if
2018-05-22 17:03:40来判断是否需要渲染该代码块:<view wx:if="{{condition}}"> True </view>也可以用wx:elif和wx:else来添加一个else块:<view wx:if="{{length > 5}}"... -
最全面的微信小程序渲染图片的方式
2020-11-22 14:06:39在小程序中渲染图片时,对于大图会出现图片比例失调的问题,小程序的文档中有如下介绍 image 1、正常渲染图片 在开发者工具中调试 <!-- imagetest.wxml --> <view class="con"> <view>未使用... -
微信小程序教程系列之视图层的条件渲染(10)
2020-08-30 19:11:15主要为大家详细介绍了微信小程序教程系列之视图层的条件渲染,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 -
【微信小程序】条件渲染和列表渲染
2022-07-16 20:43:17本文讲解了微信小程序的事件传参细节,input 事件的介绍和使用,以及`wxml`中比较重要的条件渲染和列表渲染 -
微信小程序 条件渲染 wx:if和列表渲染 wx:for
2020-06-08 10:24:00wx:if在框架中,我们用wx:if="{{condition}}"来判断是否需要渲染该代码块:<view wx:if="{{condition}}"... -
微信小程序开发WXML语法之条件渲染用法
2020-06-01 12:06:53在框架中,使用wx:if=""来判断是否需要渲染该代码块 <view wx:if="{{condition}}"> True </view> 也可以用 wx:elif 和 wx:else 来添加一个 else 块: <view wx:if="{{length > 5}}"> 1 <... -
支付宝小程序条件渲染a:if及checkbox用法
2020-03-17 13:17:17<view class="checkbox-text"> <checkbox-group onChange="onChange" name="libs"> <label class="checkbox" > <checkbox value="{{checkbox}}" checked="{{checked}... -
微信小程序列表渲染和条件渲染
2020-03-07 20:57:05首先是if条件判断,如下代码段:先给出条件判断表达式,接上问号,第一个值是为true的结果,冒号后面是为false的结果 <view>{{10%2==0?"偶数":"奇数"}}</view> <!--if条件判断--> 再在js当中定义... -
钉钉小程序渲染数据识别换行
2019-10-31 16:22:30小程序@TOC 钉钉小程序渲染数据识别换行 钉钉小程序直接使用text标签 后台返回数据\n 处理 -
小程序条件渲染、声明模板 和 模板引入 block if hidden import include
2020-09-17 08:49:43条件渲染 语法 Wx:if wx:elif wx:else 优秀 不错 一般 .Block 不是组件,只是一个包裹元素,可以用作列表渲染及条件渲染。 <block wx:if="{{score > 90}}"> <view >优秀</view> <view >... -
前端实习第2、3天总结--支付宝小程序学习(数据渲染)
2021-11-15 15:28:11数据绑定 在.js文件的date中写上自己的数据,然后在.axml...使用a:if="{{condition}}"来进行条件渲染 列表渲染 在date中添加数组或者对象数据,然后使用a:for来渲染显示。 a:for-index="index"a:for-item="item.. -
学习微信小程序WXML之条件渲染
2018-04-16 21:18:42文档:条件渲染 · 小程序 这是一个解决今天吃什么这一大难题的一小段代码。 <!--index.wxml --> <view>今天吃什么?</view> <view wx:if="{{condition ...