微信小程序入门之模板语法(02)

模板语法

WXML(WeiXin Markup Language)是框架设计的⼀套标签语⾔,结合基础组件、事件系统,可以构 建出⻚⾯的结构。
1. 数据绑定
1.1. 普通写法

<view> {
    
    {
    
     message }} </view>
Page({
    
    
  data: {
    
    
    message: 'Hello MINA!'
 }
})

1.2. 组件属性

<view id="item-{
    
    {id}}"> </view>
Page({
    
    
  data: {
    
    
    id: 0
 }
})

1.3. bool类型
不要直接写 checked=“false”,其计算结果是⼀个字符串

<checkbox checked="{
    
    {false}}"> </checkbox>

2.运算
2.1. 三元运算

<view hidden="{
    
    {flag ? true : false}}"> Hidden </view>

2.2. 算数运算

<view> {
    
    {
    
    a + b}} + {
    
    {
    
    c}} + d </view>
Page({
    
    
  data: {
    
    
    a: 1,
    b: 2,
    c: 3
 }
})

2.3. 逻辑判断

<view wx:if="{
    
    {length > 5}}"> </view>

2.4. 字符串运算

<view>{
    
    {
    
    "hello" + name}}</view>
Page({
    
    
  data:{
    
    
    name: 'MINA'
 }
})

2.5. 注意
花括号和引号之间如果有空格,将最终被解析成为字符串
3. 列表渲染
3.1. wx:for
项的变量名默认为 item wx:for–item 可以指定数组当前元素的变量名
下标变量名默认为 index wx:for–index 可以指定数组当前下标的变量名
wx:key ⽤来提⾼数组渲染的性能
wx:key 绑定的值 有如下选择

  1. string 类型,表⽰ 循环项中的唯⼀属性 如
list:[{
    
    id:0,name:"炒饭"},{
    
    id:1,name:"炒面"}]
wx:key="id"
  1. 保留字 *this ,它的意思是 item 本⾝ ,*this 代表的必须是 唯⼀的字符串和数组。
list:[1,2,3,4,5]
wx:key="*this"

代码:

<view wx:for="{
    
    {array}}" wx:key="id">
 {
    
    {
    
    index}}: {
    
    {
    
    item.message}}
</view>
Page({
    
    
  data: {
    
    
    array: [{
    
    
      id:0,
      message: 'foo',
   }, {
    
    
      id:1,
      message: 'bar'
   }]
 }
})

3.2. block
渲染⼀个包含多节点的结构块 block最终不会变成真正的dom元素

<block wx:for="{
    
    {[1, 2, 3]}}" wx:key="*this" >
  <view> {
    
    {
    
    index}}: </view>
  <view> {
    
    {
    
    item}} </view>
</block>

4. 条件渲染
4.1. wx:if
在框架中,使⽤ wx:if="{ {condition}}" 来判断是否需要渲染该代码块:

 <view wx:if="{
    
    {false}}">1</view>
  <view wx:elif="{
    
    {true}}">2</view>
  <view wx:else>3</view>

4.2. hidden

<view hidden="{
    
    {condition}}"> True </view>

类似 wx:if
频繁切换 ⽤ hidden
不常使⽤ ⽤ wx:if


未完待续…

猜你喜欢

转载自blog.csdn.net/qq_44273429/article/details/108068239