WXML——数据绑定与数据渲染(4)

快捷键:shift+alt,鼠标下拉,然后shift+ctrl+键盘右箭头,可选中一块内容

快捷键:ctrl+/ 注释
数据绑定使用 Mustache 语法(双花括号)将变量包起来

1.标签

标签显示的内容位于俩个标签之间的空白部分,标签的属性位于标签内部

<text>  文本标签,行内元素,不会换行,除非有换行符
<view>  文本标签,块级元素,会换行,但块内不会换行,哪怕有换行符,相当于dis
<checkbox>复选框
<block>占位符标签,用于页面渲染,写代码时可以看见,小程序运行时会移除
1. 标签中属性的使用
<text data_num="{{num}}">自定义属性</text>
//组件属性(需要在双引号之内)
//num在js文件的data中定义,标签属性在调试器WXML中查看
2. bool类型充当属性(满足才显示,不满足文本内容不会显示)
<checkbox checked="{{ischeck}}"></checkbox>
<checkbox checked="{{false}}"></checkbox>
//字符串和花括号间一定不能多加括号,不然会识别失败
//控制属性(bool变量)需要在双引号之内
//关键字(true、false等)也需要在双引号之内

在这里插入图片描述

2.运算

在Mustache 语法花括号中只能加入表达式,而不能加入语句
表达式:简单的数字运算,字符串的拼接,逻辑运算,加减运算,字符串拼接,三元表达式
语句:if-else,switch,do-while,for等等
在这里插入图片描述

3.数据渲染

  • 标签属性中的列表渲染有 wx:else, wx:for, wx:key
  • 条件渲染有wx:if
列表渲染wx:for
  • 在组件上使用 wx:for 控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件。默认数组的当前项的下标变量名默认为 index,数组当前项的变量名默认为 item
  • 格式:wx:for="{{数组}}" wx:for-item="循环项的名称" wx:for-index="循环项的索引 wx:key="关键字"
  • 格式:wx:for="{{对象}}" wx:for-item="对象的值" wx:for-index="对象的属性"
列表渲染wx:key

数组或对象中唯一关键值,用来提高列表渲染的性能

  • wx:key==“唯一值”或wx:key==“*this”
  • 若绑定的是一个字符串,这个字符串一定是循环数组中的唯一属性
  • 若使用this,当循环项是一个普通数组,数组内容this可以直接作为循环项
  • 当出现数组的嵌套循环,绑定的名称不要重名wx:for-item="item" wx:for-index="index"
  • 默认情况下,wx:for-item="item" wx:for-index="index"不需要写,程序默认就是item和index(但只有在数组不嵌套时才可以省略)
    在这里插入图片描述

block标签的作用

占位符标签,用于页面渲染,写代码时可以看见,小程序运行时会移除标签
但,用于渲染,其实却不进行渲染,只进行属性控制,包装元素

<view>
  <block 
    wx:for="{{persion}}" 
    wx:for-item="value" 
    wx:for-index="key"
    wx:key="age"
  >
  属性:{{key}}
  --
  值:{{value}} 
  </block>
</view>

这是view标签的
在这里插入图片描述
这是block标签的
在这里插入图片描述

条件渲染 wx:if

格式:wx:if wx:elif wx:else
条件满足,才会显示内容

<view wx:if="{{num>10000}}">比一万大</view> 
<view wx:elif="{{num>1000}}">比一千大</view> 
<view wx:else="{{num>100}}">100</view> 

以上代码只会显示比一千大

条件渲染 hidden

<view hidden>隐藏</view>//只加属性,直接隐藏
<view hidden="{{false}}">躲藏</view>//加上字符串表达式,false不隐藏,true隐藏

hidden只是隐藏标签,但wx:if只执行成立的标签,不成立的会删除,元素会被重新排列,可能影响性能,浪费资源。
hidden则是通过添加样式的方式切换显示。
因此,标签不会频繁出现,优先使用wx:if,标签要频繁切换显示,就用hidden

<view wx:if="{{num>10000}}">比一万大</view> 
<view wx:elif="{{num>1000}}">比一千大</view> 
<view wx:else="{{num>100}}">100</view> 
<view hidden>隐藏</view>
<view hidden="{{false}}">躲藏</view>

如下图所示,在调试器中可以发现,第一和三行代码都直接被删除了,只有wx:elif这一句因为成功运行而保留,而俩个hidden不管是否隐藏,标签仍然存在,只是样式中display变成了none
因此,hidden属性不要和display属性一起使用,hidden会被覆盖
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值