uni-app入门:WXML列表渲染与条件渲染

简介: WXML全称:wexin markup language,微信标签语言,可以理解为web中的html,今天来讲一下列表渲染,通过几个小案例掌握基本的使用,以下均以index页面进行讲解。

正文


   WXML全称:wexin markup language,微信标签语言,可以理解为web中的html,今天来讲一下列表渲染,通过几个小案例掌握基本的使用,以下均以index页面进行讲解。


1.列表渲染


1.1wx:for

   uniapp中使用wx:for进行列表渲染数据展示,其中默认索引形参为index,索引对应的值的形参默认为item。现自定义数组,然后进行遍历渲染展示。

index.js:

Page({
  data: {
   arr:[1,2,3,4,5]
  }
})


index.wxml:

<view wx:for="{{arr}}">索引index:{{index}},值:{{item}}</view>


展示数据如下:

fad382e265aa32bfaf1d58f7f58380f9_bd3036c90ba346da93955a937ea4cde6.png

   wx:for中的索引项和索引值的形参默认是index、item,是否可以进行自定义,答案是肯定的,现在自定义customIndex、customItem对默认的形参进行修改,需要借助对应的属性:wx:for-index、wx:for-item来实现。上面的数组列表遍历就就可以修改成如下:

index.wxml中:

<view wx:for="{{arr}}" wx:for-index="customIndex" wx:for-item="customItem">
索引index:{{customIndex}},值:{{customItem}}</view>


展示效果同上:

a631c5cddcaed46c64a8acf95fbe805a_2d9135b19bfa406c96961f114e57ced1.png


1.2wx:key

   上面的列表渲染实现之后,细心的同学可能会在控制台中看到如下警告信息:

afb80514eb2dd10e0710d03c8aa2c9a6_471b2e159fce45ebbf3bca8d271f5bab.png

   警告的大概意思是需要使用wx:key提高列表渲染的性能,使用wx:key指定每项的唯一标识。至于wx:key的数值一般为列表中唯一的字段值。

   上面的案例customIndex是每一项的唯一标识,所以可以指定wx:key的值为customIndex。修改后的index.wxml如下:

<view wx:for="{{arr}}" wx:for-index="customIndex" wx:for-item="customItem" wx:key="customIndex">
索引index:{{customIndex}},值:{{customItem}}</view>

修改之后结果正常显示,控制台的警告信息也会消失。

0601e2b0ba84ddc17c8de8e81bd9fbb7_c27b36c53edb4f21a01d7a689f7a8a8f.png


2.条件渲染


2.1 wx:if

   wx:if="{{条件表达式}}",表达式成立则组件显示,不成立则组件不显示。一般也与wx:elif、wx:else进行多条件比较。下面用案例进行说明:

   定义一个数字:num,如果是1则显示男,如果是2则显示女,其他的数显示未知。

index.js中:

Page({
  data: {
   num:1
  }
})


index.wxml中:

<view wx:if="{{num == 1}}">等于1显示男</view>
<view wx:elif="{{num == 2}}">等于2显示女</view>
<view wx:else>其他显示未知</view>


显示结果如下:

2201a13af8ddd09f8d7d35be0bfc4736_0767fcee052943df8c0e17e8fc88762f.png

   为了方便调试,修改num值后观察效果,可以直接从appData中修改num值,这样就可以不用频繁修改index.js中num值进行保存了,处理方式如下:

a4d0c08243d1d6bd4faf7523242ce6a7_7ddd00775a5344e295ef880943eddf73.png


2.2 wx:hidden

   说到控制组件是否显示就不得不说一下hidden属性,hidden值为true时也回控制组件不显示。

index.js中:

Page({
  data: {
   showView: true
  }
})


index.wxml中:

<view hidden="{{showView}}">是否展示view组件,true时隐藏,false时显示</view>


   hidden属性控制组件是否显示是通过添加样式:display: none来实现。可以打开控制台选中组件看下具体的样式信息:

aca862b5e092b63da75b17a806cc9543_05275eede03d4df781c5cf8fd77da4d1.png


   hidden与wx:if的区别在于前者是添加了样式:display: none,后者是重新创建或是删除对象实现的组件是否显示,从性能上来讲hidden性能更高,不过对于多重条件判断还是使用wx:if比较方便。


相关文章
|
6月前
uni-app 172标签列表和标签用户列表
uni-app 172标签列表和标签用户列表
76 1
|
14天前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
53 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
21天前
【Azure App Service】PowerShell脚本批量添加IP地址到Web App允许访问IP列表中
Web App取消公网访问后,只允许特定IP能访问Web App。需要写一下段PowerShell脚本,批量添加IP到Web App的允许访问IP列表里!
|
1月前
|
小程序 JavaScript 前端开发
uni app 入门
uni app 入门
34 2
|
3月前
|
小程序 前端开发 Java
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
JavaDog Chat v1.0.0 是一款基于 SpringBoot、MybatisPlus 和 uniapp 的简易聊天软件,兼容 H5、小程序和 APP,提供丰富的注释和简洁代码,适合初学者。主要功能包括登录注册、消息发送、好友管理及群组交流。
106 0
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
|
3月前
|
网络协议 物联网 测试技术
App Inventor 2 MQTT拓展入门(保姆级教程)
本文演示的是App和一个测试客户端进行消息交互的案例,实际应用中,我们的测试客户端可以看着是任意的、支持MQTT协议的硬件,通过订阅及发布消息,联网硬件与我们的App进行双向数据通信,以实现万物互联的智能控制效果。
201 2
|
5月前
|
搜索推荐
App Inventor 2 列表排序,函数式编程轻松实现高级排序算法
本文探讨了列表的函数式编程高级用法,允许根据自定义逻辑进行排序。不仅支持基本数据类型(文本和数字)的升序和降序排序,还能处理复杂结构类型中特定元素的排序。通过示例展示了如何定义比较函数来实现升序和降序,简化了排序操作。
64 0
|
5月前
|
监控 小程序 前端开发
基础入门-抓包技术&HTTPS协议&WEB&封包监听&网卡模式&APP&小程序
基础入门-抓包技术&HTTPS协议&WEB&封包监听&网卡模式&APP&小程序
172 0
|
5月前
|
移动开发 小程序 安全
基础入门-APP架构&小程序&H5+Vue语言&Web封装&原生开发&Flutter
基础入门-APP架构&小程序&H5+Vue语言&Web封装&原生开发&Flutter
|
6月前
uni-app 162初始化会话列表功能
uni-app 162初始化会话列表功能
37 0

热门文章

最新文章

下一篇
无影云桌面