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

目录

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.niftyadmin.cn/n/5419873.html

相关文章

CentOS 7安装MySQL及常见问题与解决方案(含JDBC示例与错误处理)

引言 MySQL是一个流行的开源关系型数据库管理系统&#xff0c;广泛应用于各种业务场景。在CentOS 7上安装MySQL后&#xff0c;我们通常需要使用JDBC&#xff08;Java Database Connectivity&#xff09;连接MySQL进行后端操作。 目录 引言 CentOS 7安装MySQL 使用JDBC连接My…

ubuntu20.04环境搭建:etcd+patroni+pgbouncer+haproxy+keepalived的postgresql集群方案

搭建基于etcdpatronipgbouncerhaproxykeepalived的postgresql集群方案 宿主机操作系统:ubuntu20.04 使用kvm搭建虚拟环境(如没有安装kvm&#xff0c;请先自行安装kvm) 1、安装kvm服务 ①、查看虚拟支持 如果CPU 支持硬件虚拟化则输出结果大于0&#xff0c;安装kvm-ok命令检…

React 第八章 React-router v6

React-router v6 前端路由概念React-router不同的历史模式Hash 模式HTML5 模式 如何配置路由嵌套路由声明式导航编程式导航路由重定向动态路由匹配路由懒加载 前端路由概念 前端路由是指在单页面应用中&#xff0c;通过改变 URL 来改变页面内容的一种技术。 早期的时候并不存…

ChatGPT 基本用法!ChatGPT4的prompt的使用例子!

授人以鱼&#xff0c;不如授人以渔。这句话在AI领域尤为贴切&#xff0c;尤其是在构建与AI模型交互的prompt&#xff08;提示&#xff09;时。OpenAI在Discord官方服务器上设有一个名为prompt-library的频道&#xff0c;这里聚集了各种创意和专业的prompt&#xff0c;涵盖了从写…

算法-双指针、BFS与图论-1101. 献给阿尔吉侬的花束

题目 思路 BFS可以搜环&#xff0c;有环也没有关系&#xff0c;如果有解&#xff1a;一定可以找到一条最小步数的合法的路径Python中 collections模块的详细用法介绍_python collections-CSDN博客引用自上述文章&#xff1a; append(x)&#xff1a;添加 x 到右端。appendleft(…

探索云原生数据库技术:构建高效可靠的云原生应用

数据库是应用开发中非常重要的组成部分&#xff0c;可以进行数据的存储和管理。随着企业业务向数字化、在线化和智能化的演进过程中&#xff0c;面对指数级递增的海量存储需求和挑战以及业务带来的更多的热点事件、突发流量的挑战&#xff0c;传统的数据库已经很难满足和响应快…

jupyterlab 设置

字体 pip install jupyterlab-fontsFira Code Regular 主题 pip install theme-darcula更改jupyter lab默认启动路径 https://blog.csdn.net/monster_MF/article/details/119248111 &#xff08;1&#xff09;找到jupyter_lab_config所在路径 winR&#xff0c;输入cmd&am…

搭建nacos集群,并通过nginx实现负载均衡

nacos、eureka、consul、zookeeper等都是常用的微服务注册中心&#xff0c;这篇文章详细介绍一下在Ubuntu操作系统上搭建一个nacos的集群&#xff0c;以及通过nginx的反向代理功能实现nacos的负载均衡。 目录 一、安装nacos 1、安装nacos 2、修改nacos配置文件 3、创建naco…