微信小程序开发系列(二十五)·wxml语法·条件渲染wx:if, wx:elif, wx:else 属性组以及hidden 属性的使用

news2024/10/2 17:17:17

目录

1.  使用 wx:if、wx:elif、wx:else 属性组   

2.  使用 hidden 属性


        条件渲染主要用来控制页面结构的展示和隐藏,在微信小程序中实现条件渲染有两种方式:

1.  使用 wx:if, wx:elif, wx:else 属性组

2.  使用 hidden 属性

        wx:if 和 hidden 二者的区别:

1.  wx:if:当条件为 true时将结构展示出来,否则结构不会进行展示,通过移除/新增节点 的方式来实现。

2.  hidden:当条件为 true 时会将结构隐藏,否则结构会展示出来,通过 display 样式属性 来实现的。

        找到cart.js文件,创建一个属性:

Page({ 

  data:{
    num: 1
  } 
  
})

        找到cart.wxml文件,编写代码:


<view>num 等于 {{ num }}</view>

        添加按钮,加入事件更新num:

<button type="primary" bind:tap="updateNum">更新num</button>

        找到cart.wxml文件,定义事件:

  // 更新num
  updateNum(){
    this.setData({
      num: this.data.num + 1
    })
  }


拓展:

        我们每次重新编辑,页面就会返回最初页面,来回查找过于麻烦,那么我们可以如下图操作:

        这样就能实现刷新后返回本页面。


1.  使用 wx:if、wx:elif、wx:else 属性组   

        找到cart.wxml文件,编写如下代码:


<!-- wx:if 属性组 -->
<!-- wx:if wx:elif wx:else -->
<!-- 只有对应的条件成立,属性所在的组件才会进行展示 -->
<view wx:if="{{ num == 1 }}">num 等于 {{ num }}</view>
<view wx:elif="{{ num == 2 }}">num 等于 {{ num }}</view>
<view wx:else>num 大于 2, 目前 num 等于 {{ num }}</view>

<button type="primary" bind:tap="updateNum">更新num</button>

        个人理解,可以将wx:if、wx:elif、wx:else看作为C语言中的if、else if、else语句,当if满足条件后else if和else将会跳过,若if不满足,但else if满足,则跳过else,若if和else if都不满足,则执行else:

        点击“更新num”,对num进行加一操作,使其满足另外两个条件,点击一次:

        再次点击:


注意事项一:wx:elif wx:else 不能单独使用,使用必须结合 wx:if 来使用

<!-- wx:elif wx:else 不能单独使用,使用必须结合 wx:if 来使用 -->
<!-- <view wx:if="{{ num == 1 }}">num 等于 {{ num }}</view> -->
<view wx:elif="{{ num == 2 }}">num 等于 {{ num }}</view>
<view wx:else>num 大于 2, 目前 num 等于 {{ num }}</view>

        当把 wx:if注释掉,会发现执行报错:

        而分别注释掉wx:elif 和wx:else,会发现仍能正常使用:


注意事项二:使用了 wx:if 属性组的组件不能被打断,组件必须连贯才可以

        例如:我们在其中随机加入一个view组件: 

<!-- 使用了 wx:if 属性组的组件不能被打断,组件必须连贯才可以 -->
<view wx:if="{{ num == 1 }}">num 等于 {{ num }}</view>
<view></view>
<view wx:elif="{{ num == 2 }}">num 等于 {{ num }}</view>
<view wx:else>num 大于 2, 目前 num 等于 {{ num }}</view>

        对发现运行报错:

2.  使用 hidden 属性

         找到cart.js文件,在data中添加数据:

  data:{
    num: 1,
    isFlag: true
  } ,

        找到cart.wxml文件,添加代码:

<!-- 使用 hidden 属性 -->
<!-- 当条件为 true 时会将结构隐藏,否则结构会展示出来,通过 display 样式属性 来实现的。 -->
<view hidden="{{ !isFlag }}">如果 isFlag 是 true,展示结构,否则隐藏结构</view>

        我们上面给isFlag赋值为true,则对其取反是flash,而hidden当条件为 true 时会将结构隐藏,否则结构会展示出来,因此此时会展示出来:

        点击复选框,则会隐藏:

区别:

wx:if 控制结构的展示和隐藏,是通过新增和移除结构来实现的

hidden 属性控制结构的展示和隐藏,是通过 css 的 display 属性来实现的

微信小程序开发_时光の尘的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1505104.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VMware 安装 MS-DOS 6.22

VMware 安装 MS-DOS 6.22 0. 准备工作创建虚拟机下载安装包装入安装软盘 1. 安装界面2. 创建分区3. 格式化分区4. 安装参考资料 提醒&#xff1a;如果你是为了 int 13 来的&#xff0c;我试了没用 0. 准备工作 创建虚拟机 先创建一个 DOS 虚拟机右健我们创建的DOS 虚拟机 >…

15.Webpack进阶使用

一.Webpack 自动生成 html 文件 1. 插件 html-webpack-plugin 作用&#xff1a; 在 Webpack 打包时生成 html 文件&#xff0c;并引入其他打包后的资源 2. 步骤&#xff1a; 下载 html-webpack-plugin 本地软件包到项目中 npm i html-webpack-plugin --save-dev配置 webpack…

DataGrip 2023:让数据库开发变得更简单、更高效 mac/win

JetBrains DataGrip 2023是一款功能强大的数据库IDE&#xff0c;专为数据库开发和管理而设计。通过DataGrip&#xff0c;您可以连接到各种关系型数据库管理系统(RDBMS)&#xff0c;并使用其提供的一组工具来查询、管理、编辑和开发数据库。 DataGrip 2023软件获取 DataGrip 2…

TimescaleDB 集群安装部署

文章目录 1.安装环境2.安装TimescaleDB2.1. 安装PostgreSQL2.2.安装Timescaledb插件2.3.配置TimescaleDB 3.集群配置4.创建数据库5.测试 开源中间件 # TimescaleDBhttps://iothub.org.cn/docs/middleware/ https://iothub.org.cn/docs/middleware/timescale/timescale-deploy-…

SPI读取TLE5012B编码器角度数据_ACM32G103

买到一个带编码器的电机&#xff0c;卖家留出来读取编码器数据的接口有SPI 具体的原理图如下&#xff1a; P2标注的是SPI的接口&#xff0c;其中MISO和MOSI是硬件连接到一起的 使用ACM32G103的硬件SPI2去读取其角度数据 原理大概如下&#xff1a; 1、先发送读取数据的指令&…

在colab上训练YOLOv5

在colab上训练YOLOv5 参考链接&#xff1a;知乎 牛头检测 1.首先在自己的本地电脑上下载YOLO 新建一个文件夹YOLO&#xff0c;输入以下命令下载压缩包&#xff1a; cmd git clone https://github.com/ultralytics/yolov5.git2.将YOLO压缩包上传到colab 首先在colab上新建一…

CSS中有哪些方式可以隐藏页面元素(区别详解)

文章目录 一、前言二、实现方式display:nonevisibility:hiddenopacity:0设置height、width属性为0position:absoluteclip-path小结 三、区别参考文献 一、前言 在平常的样式排版中&#xff0c;我们经常遇到将某个模块隐藏的场景 通过css隐藏元素的方法有很多种&#xff0c;它…

STM32驱动W5500作为客户端进行通讯

STM32驱动W5500作为客户端进行通讯 模块简介引脚说明接线代码部分代码测试是否通讯成功 模块简介 SR-ES1内嵌Wiznet的W5500芯片&#xff0c;使用硬件逻辑门电路实现TCP/IP协议栈的传输层及网络层&#xff08;如&#xff1a;TCP&#xff0c;UDP&#xff0c;ICMP&#xff0c;IPv…

Linux:非常实用的Linux命令

非常实用的Linux命令 系统服务管理 systemctl systemctl命令是Systemd系统和服务管理器的一部分&#xff0c;用于控制systemd系统和服务管理器。Systemd是大多数最新的Linux发行版使用的初始化系统和服务管理器&#xff0c;它用于启动守护进程并管理它们的运行。systemctl提…

element-ui plus v2.60 终于修复了 radio checkbox 取值不明确的问题,label value 值

element-ui plus v2.60 终于修复了 radio checkbox 取值不明确的问题&#xff0c;label value 值 昨天想反馈这个关于 label 和 value 的问题的时候&#xff0c;发现新版本已经修正这个问题了。 一、ElementUI 旧版关于 label 和 value 的问题 从之前 element-ui 用过来的&a…

第十一篇 - 应用于市场营销视频场景中的人工智能和机器学习技术 – Video --- 我为什么要翻译介绍美国人工智能科技巨头IAB公司(1)

IAB平台&#xff0c;使命和功能 IAB成立于1996年&#xff0c;总部位于纽约市。 作为美国的人工智能科技巨头社会媒体和营销专业平台公司&#xff0c;互动广告局&#xff08;IAB- the Interactive Advertising Bureau&#xff09;自1996年成立以来&#xff0c;先后为700多家媒体…

论文阅读《FENET: FOCUSING ENHANCED NETWORK FOR LANE DETECTION》

ABSTRACT 受人类驾驶专注力的启发&#xff0c;这项研究开创性地利用聚焦采样&#xff08;Focusing Sampling&#xff09;、部分视野评估&#xff08;Partial Field of View Evaluation&#xff09;、增强型 FPN 架构和定向 IoU 损失&#xff08;Directional IoU Loss&#xff…

【Pytorch】新手入门:基于sklearn实现鸢尾花数据集的加载

【Pytorch】新手入门&#xff1a;基于sklearn实现鸢尾花数据集的加载 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1f448; 希望…

递归、搜索与回溯算法简介

何为递归&#xff1a;递归就是递去归来&#xff0c;函数自己调用自己的情况。 不在意递归的细节展开图 把递归的函数当成黑盒&#xff08;给黑盒一个东西&#xff0c;它就能完成想要的事&#xff09; 相信黑盒一定能完成这个任务 深度优先遍历和深度优先搜索都是指一个东西dfs…

STM32---通用定时器(一)理论基础

写在前面&#xff1a;在STM32F103中有众多的定时器&#xff0c;其中包括两个基本定时器&#xff0c;基本定时器的内容已经在上节进行了介绍&#xff0c;基本定时器的功能、结构、使用都较为简单。而STM32F1中还含有4个通用定时器&#xff08;TIM2\3\4\5&#xff09;,这些定时器…

So you think you understand IP fragmentation?

文章目录 前言一、Why care?二、Prevention三、Well-understood?四、Introducing fragquiz五、A novel (?) algorithm六、Reader challenge七、traceroute八、ICMP参考资料 前言 本文来自&#xff1a;https://lwn.net/Articles/960913/ February 7, 2024This article was …

数据库的基本数据类型

基本数据类型之整型 【1】整型的分类 tinyint smallint mediumint int bigint 【2】整型的符号 符号不是用来限制位数的而是用来控制显示长度的 【3】tinyint 是否带符号 默认情况下是带符号, 默认带的符号是 号 超出最大范围 超出会报错 【4】unsigned(无符号) 每…

【C语言】文件操作篇-----程序文件和数据文件,文件的打开和关闭,二进制文件和文本文件,fopen,fclose【图文详解】

欢迎来CILMY23的博客喔&#xff0c;本篇为【C语言】文件操作篇-----程序文件和数据文件&#xff0c;文件的打开和关闭&#xff0c;二进制文件和文本文件【图文详解】&#xff0c;感谢观看&#xff0c;支持的可以给个一键三连&#xff0c;点赞关注收藏。 前言 在了解完动态内存管…

【PHP安全】PHP伪协议

PHP伪协议&#xff1a; file:// #访问本地文件系统http:// #访问HTTPs网址ftp:// #访问ftp URLphp:// #访问输入输出流zlib:// #压缩流data:// #数据&#xff08;RFC 2397&#xff09;ssh2:// #security shell2expect:// #处理交互式的流glob:// #查找匹配的文件路径phar:// #P…

【神经网络与深度学习】深度神经网络(DNN)

概述 深度神经网络&#xff08;Deep Neural Networks&#xff0c;DNN&#xff09;是一种由多个隐藏层组成的神经网络模型。每个隐藏层由多个神经元组成&#xff0c;这些神经元通过权重和激活函数进行信息传递和计算。 深度神经网络通过多层的非线性变换&#xff0c;可以学习到…