微信小程序模板语法

WXML(WeiXin Markup Language)是框架设计的⼀套标签语⾔,结合基础组件事件系统,可以构建出⻚⾯的结构。

数据绑定

// 普通写法
<view> {{ message }} </view>

Page({
  data: {
    message: 'Hello MINA!'
	}
})


// 组件属性
<view id="item-{{id}}"> </view>

Page({
  data: {
    id: 0
 }
})


//  bool类型
// 不要直接写 checked=false,其计算结果是⼀个字符串
<checkbox checked="{{false}}"> </checkbox>

运算

花括号和引号之间如果有空格,将最终被解析成为字符串

// 三元运算
<view hidden="{{flag ? true : false}}"> Hidden </view>

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

// 逻辑判断
<view wx:if="{{length > 5}}"> </view>

// 字符串运算
<view>{{"hello" + name}}</view>
Page({
  data:{
    name: 'MINA'
 }
})

列表渲染

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"
    
  • 保留字 *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'
   }]
 }
})

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

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

条件渲染

wx:if:在框架中,使⽤ wx:if=“{{condition}}” 来判断是否需要渲染该代码块:不常使⽤使用

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

hidden :频繁切换使用

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

⼩程序事件的绑定

⼩程序中绑定事件,通过bind关键字来实现。如 bindtap bindinput bindchange 等

不同的组件⽀持不同的事件,具体看组件的说明即可。

// wxml
<input bindinput="handleInput" />

// page
Page({
  // 绑定的事件
  handleInput: function(e) {
    console.log(e);
    console.log("值被改变了");
 }
})

// 特别注意
// 绑定事件时不能带参数 不能带括号 以下为错误写法
	<input bindinput="handleInput(100)" />
  
// 事件传值 通过标签⾃定义属性的⽅式 和 value
  <input bindinput="handleInput" data-item="100" />

// 事件触发时获取数据
  handleInput: function(e) {
      // {item:100}
     console.log(e.currentTarget.dataset)

      // 输入框的值
     console.log(e.detail.value);
   }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值