# 5.模板语法
WXML(WeiXinMarkupLanguage)是框架设计的⼀套标签语⾔,结合基础组件 (opens new window)、事件系统 (opens new window),可以构建出⻚⾯的结构
# 1. 数据绑定
# 1.1. 普通写法
<view> {{ message }} </view>
1
Page({
data: {
message: 'Hello MINA!'
}
})
1
2
3
4
5
2
3
4
5
# 1.2. 组件属性
<view id="item-{{id}}"> </view>
1
Page({
data: {
id: 0
}
})
1
2
3
4
5
2
3
4
5
# 1.3. bool类型
不要直接写checked=false,其计算结果是⼀个字符串
<checkbox checked="{{false}}"> </checkbox>
1
# 2. 运算
# 2.1. 三元运算
<view hidden="{{flag ? true : false}}"> Hidden </view>
1
# 2.2. 算数运算
<view> {{a + b}} + {{c}} + d </view>
1
Page({
data: {
a: 1,
b: 2,
c: 3
}
})
1
2
3
4
5
6
7
2
3
4
5
6
7
# 2.3. 逻辑判断(⭐⭐)
<view wx:if="{{length > 5}}"> </view>
1
# 2.4. 字符串运算
<view>{{"hello" + name}}</view>
1
Page({
data:{
name: 'MINA'
}
})
1
2
3
4
5
2
3
4
5
# 2.5. 注意
花括号和引号之间如果有空格,将最终被解析成为字符串
# 3. 列表渲染
# 3.1. wx:for
项的变量名默认为 item wx:for-item 可以指定数组当前元素的变量名 下标变量名默认为 index wx:for-index 可以指定数组当前下标的变量名 wx:key ⽤来提⾼数组渲染的性能 wx:key 绑定的值有如下选择
- string 类型,表⽰循环项中的唯⼀属性如
list:[{id:0,name:"炒饭"},{id:1,name:"炒面"}]
wx:key="id"
1
2
3
2
3
2.保留字 *this ,它的意思是 item本⾝,*this代表的必须是唯⼀的字符串和数组。
list:[1,2,3,4,5]
wx:key="*this"
// this就是这个item, 加 * 表示取这个值的索引
1
2
3
4
2
3
4
代码:
<!-- 8.列表循环
1.wx:for="{{数组或对象}}" wx:for-item="循环项的名称" wx:for-index="循环项的索引"
2.wx:key="唯一的值" 用来提高列表渲染性能
1.wx:key 绑定一个普通的字符串, 那么这个字符串 肯定 是循环数组中的 对象的唯一属性
2.wx:key="this" 就表示 你的数组 是一个普通的数组 *this 表示是 循环项
[1,2,3,44,5]
["1","222","adfdf"]
3.当出现 数组的嵌套循环的时候 尤其注意 以下绑定的名称 不要重名
wx:for-item="item" wx:for-index="index"
4.默认情况下 我们不写
wx:for-item="item" wx:for-index="index"
小程序也会把 循环项的名称 和 索引的名称 item 和 index
只有一层循环的话 (wx:for-item="item" wx:for-index="index") 可以省略
9.对象循环
1. wx:for="{{对象}}" wx:for-item="对象的值" wx:for-index="对象的属性"
2. 循环对象的时候, 最好把 item和index的名称都修改一下
wx:for-item="value" wx:for-index="key"
-->
<view>
<view wx:for="{{list}}" wx:key="id">
索引: {{index}}
------
值: {{item.name}}
</view>
</view>
<view>
<view>对象循环</view>
<view wx:for="{{person}}" wx:key="this" wx:for-item="value" wx:for-index="key">
属性:{{key}}
----
值: {{value}}
</view>
</view>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# 3.2. block
渲染⼀个包含多节点的结构块block最终不会变成真正的dom元素
<!--
10. block
1.占位符的标签
2.写代码的时候, 可以看到这标签存在
3.页面渲染 小程序会把它移除掉
-->
<view>
<block wx:for="{{list}}" wx:key="id" class="mylist">
索引: {{index}}
------
值: {{item.name}}
</block>
</view>
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# 4. 条件渲染
# 4.1. wx:if
在框架中,使⽤ wx:if="" 来判断是否需要渲染该代码块:
<view wx:if="{{false}}">1</view>
<view wx:elif="{{true}}">2</view>
<view wx:else>3</view>
1
2
3
2
3
# 4.2. hidden
<view hidden="{{condition}}"> True </view>
1
# 类似 wx:if
频繁切换 ⽤ hidden
不常使⽤ ⽤ wx:if
← 4.小程序配置文件 6.⼩程序事件的绑定 →