我们每天都在做着各种各样的选择,在做出选择之前都需要根据一些条件进行判断,比如:如果明天下雨了,我就不出门了。计算机软件之所以能够完成各种复杂多样的操作,也少不了条件判断的能力。
如果 条件满足,才能做某件事情
如果 条件不满足,就做另一件事情,或者什么也不做
人在对事物的判断时的逻辑跟计算机软件做判断的逻辑是很不一样的。人类主要靠主观意向来做判断,而计算机的判断就是靠一个个具象的文字或者数据来进行对比比较,一就是一,而就是二。
比如这样一个场景:如果现在是下午三点,那么我需要回复一封邮件
对于计算机来说,想要完成时间的判断,需要先获取到当前的时间,然后拿着这个时间跟“下午三点”做比较,如果相等,那么就去执行回复邮件的事情。
可对于人来说,我们直接看一眼时间的同时就完成了时间到没到的判断,我们似乎不需要拿着一个时间去跟另一个时间做对比才知道条件是否成立,这就是人类跟计算机做判断的区别。
在不同的条件下显示不同的内容
在众多的场景下,我们可以根据条件判断来在相同的程序页面来显示不同的内容,下边我们举两个例子:
如 图1 ⬇️ 所示,在没有预约活动时,活动详情页面显示的是蓝色的立即预约按钮,当成功预约活动之后,活动详情页的按钮会变成白色的取消预约按钮,如果活动已经结束了,那么在活动详情页显示的是灰色的活动结束按钮。
Tips:
根据判断当前的时间是否已经是活动的结束的时间来选择是否显示活动结束
根据判断报名表中是否有该用户的报名数据来选择是否显示取消预约
如 图2 ⬇️ 所示,如果访问这个页面的人是管理员,那么这个页面显示的是管理员的图标以及管理员能够做的操作;如果这个人是会员,那么显示的是会员的基本信息、到期时间还有会员的能够操作的内容,如果只是普通用户,那么就需要让其登陆成为会员。
Tips:
根据用户表中的用户角色来进行判断用户访问了该页面时候应该显示哪些内容
如何用 Zion 来实现显示不同的内容 - 条件式容器
在 Zion 中,提供了一个名为【条件式容器】的组件,在该组件中,可以根据需要显示的情况来添加对应的子容器来显示不同的内容。而后在对应的子容器中配置对应的判断条件,当条件成立时,就显示对应子容器的内容。
1. 为条件式容器添加子容器
如 下图3 ⬇️ 所示,在条件式容器的右边栏的内容中,输入子容器的名称来添加需要的子容器。
2. 为条件式子容器添加判断条件
如 下图4 ⬇️ 所示,点击选中某个子容器,点击其内容中的条件字样来配置相应的判断条件。
Tips:
条件式容器的判断顺序是从左往右进行判断的,当上一个条件成立时,则直接显示对应子容器中的内容,如果上一个条件不成立,则进入下一个条件的判断。
如何用 Zion 来实现显示不同的内容 - 条件数据
如 下视频1 ⬇️ 所示,当只是某个数据或者文字需要在不同的条件下显示不同的内容时,可以利用【条件数据】来实现。例如 视频中所做的是,判断当会员积分大于等于1000时显示的是会员等级就是“铂金”,否则判断积分是否大于等于500,如果是的话就显示会员等级为“黄金”。
此处为语雀视频卡片,点击链接查看:条件数据.mp4
视频1
在不同的条件下执行不同的行为
如 下视频2 ⬇️ 所示,当没有输入客户姓名时,点击报名,会提示请输入姓名,而当填写完全了报名信息之后再点击报名按钮,就会跳转到新的页面
此处为语雀视频卡片,点击链接查看:RPReplay_Final1672390358.MP4
视频2
Tips:
通过判断输入框中是否填写了内容来选择是显示提示还是跳转到新页面
如何用 Zion 来实现执行不同的行为
如 视频3 ⬇️ 所示,在 Zion 中,提供了【逻辑事情-条件】行为来帮助用户在不同的条件下执行不同的行为。
此处为语雀视频卡片,点击链接查看:ScreenFlow.mp4
视频3
Tips:
在同一个【条件】行为中通过点击 + 号来添加多个判断条件,每个判断条件在成立时,均能够配置对应的其它行为。条件判断的顺序是从上往下依次进行的,当上一个条件成立时,就执行条件成立时配置的行为,否则就进入下一个条件的判断。
作为读取数据的过滤条件
在较多的场景下,我们需要对读取过来的数据进行筛选过滤,找出符合条件的数据来进行展示,此时就需要在读取数据时设置过滤条件(例如Excel中的筛选条件)。
例子:班级表中存储着所有班级同学的个人信息,此时我们需要读取的是班级所有男同学的信息,那么就需要在读取数据的时候设置“性别 等于 男”的条件,来读取所有男同学的信息。
如何在 Zion 中设置过滤条件
设置过滤条件的前提是需要读取远程数据,在 Zion 中能够读取远程数据(数据库数据)的有“页面”本身和“列表类组件”。
如 图5 ⬇️ 所示,在给列表中添加了班级的远程数据后,即可在其中添加过滤条件“性别 等于 男”。
Tips:
远程数据中的过滤条件默认都是“与”的关系,也就是在多个条件下,这多个条件是并列的关系。详细可往下看【逻辑条件判断部分】
单条件判断
定义:只设置了一个判断条件,当条件成立时就显示某个内容或者执行某个行为,如 视频3 ⬆️ 中所示的,只设置了判断姓名输入框为空的情况
“总是”处理的情况
定义:只设置了一个判断条件,当条件不成立时就显示其它的内容或者执行其它的行为,如 视频3 ⬆️所示的,当未填姓名不成立,那么就说明已经填写了姓名,在 Zion 中就是“总是”的情况,就不需要再次设置输入框非空的条件,而是直接执行想要做的事情即可。
“从不”处理的情况
定义:设置了“从不”之后,相当于这个条件一直都是不成立的情况。
比较条件判断
定义:一个判断条件通常是对一个数据的结果进行大小进行比较,所以定义了常规如大于、等于、小于等比较运算符进行数据的对比。
如 下图⬇️ 所示,在 Zion 中配置比较条件时,第一个选择的就是需要的比较运算符,而后是比较的数据的类型,转换为算式的话这个条件的表达式为:远程数据/profile/积分 >= 1000
Tips:
一定要是相同类型的数据才可以进行比较,比如整数跟整数可以比较,但整数跟文字不能比较
特殊的比较运算符
运算符
定义
作用/使用场景
为空
数据是空的,也就是没有数据
判断输入框中没有数据
非空
数据不是空的,也就是有数据
判断输入框中有数据
集合为空
集合中没有数据
判断某个集合里没有数据
集合非空
集合中有数据
判断某个集合里有数据
包含
在某个集合中存在某个数据
判断某个集合中是否存在某个数据
微信权限判断
主要作用是为了检查手机是否授权如下内容的权限,如果授权了就说明该条件成立:
摄像头(camera):打开摄像头
用户信息(user info):授权用户信息(用户名、头像 )
地理位置(user location):授权用户地理位置
运动步数(WeChat run data):暂不支持
录音功能(record):暂不支持
保存至相册(save to photos album)
操作系统类型判断
主要作用是为了检查打开该小程序的设备是如下哪一种型号,如果是对应的型号,就说明该条件成立:
iOS
Android
Mac
Windows
Devtools
多条件判断
逻辑条件判断
定义:一个判断条件由几个条件组成,这几个条件可能需要同时满足或者满足其一或者都不满足时,这个判断条件才成立,此时就需要使用到“逻辑运算符”来把这几个条件按照逻辑进行连接。常规的逻辑运算符由如下三种“与”、“或”、“非”。
逻辑运算符“与”
定义:“与”表示并且的意思,在判断 【条件1 与 条件2】这个条件时,表示的意思就是条件1、条件2要同时成立,这个判断条件才算成立。
例子:条件1:会员等级是黄金;条件2:消费金额大于等于100;当用户的会员等级是黄金,并且消费金额大于等于100时,才能够参与满减活动。
在 Zion 中添加“与”条件 ⬇️(条件式容器跟条件数据的配置方法也一致):
此处为语雀视频卡片,点击链接查看:与条件.mp4
逻辑运算符“或”
定义:“或”表示“或者”的意思,在判断 【条件1 或 条件2】这个条件时,表示的意思就是条件1、条件2只要有其中一个条件成立,这个判断条件就算成立。
例子:条件1:会员等级是黄金;条件2:消费金额大于等于100;当用户的会员等级是黄金,或者消费金额大于等于100时,就能够参与满减活动。
在 Zion 中添加“或”条件 ⬇️(条件式容器跟条件数据的配置方法也一致):
此处为语雀视频卡片,点击链接查看:或条件.mp4
逻辑运算符“非”
定义:“非”表示“不是/不等于”的意思,在判断 【非 条件1 】这个条件时,表示的意思就是条件1不成立的情况下,整个条件就成立。
例子:条件1:会员等级是黄金;当用户的会员等级不是黄金时,就能够参与满减活动。
在 Zion 中添加“非”条件 ⬇️(条件式容器跟条件数据的配置方法也一致):
此处为语雀视频卡片,点击链接查看:非条件.mp4
Tips:
“非”运算符在大多数情况下可以通过其他的条件配置形式来直接完成,比如刚刚的“非”黄金会员实际上可以直接配置为不等于黄金会员即可。
条件判断的嵌套
定义:在某一个条件成立之后,在这个条件下还有新的条件判断的情况,我们称为条件嵌套。
例子:如 下图 ⬇️ 所示,如果你的工龄大于等于5年,司龄小于等于2年的,有4天年假,司年龄大于2年小于5年的有5天年假,工龄小于5年的只有3天年假。
在 Zion 中配置嵌套条件判断 ⬇️:
此处为语雀视频卡片,点击链接查看:条件嵌套.mp4
Tips:
对于条件式容器来说,嵌套条件的配置就是在条件式子容器中增加新的条件式容器即可。
对于条件式数据来说,暂不支持配置嵌套条件。
嵌套条件的判断顺序:先进行外层条件的判断,当上一个外层条件不成立,则进入到下一个外层条件的判断,当某个外层条件成立时,就会进入到其内层进行内部条件的判断,直到某个内层条件成立,终止条件判断。