【小程序】WXML模板语法

小程序API的三大分类


在这里插入图片描述

WXML语法–数据绑定


先把app.json中的pages中index的顺序排在list前面

使用Mustache语法

在这里插入图片描述

index.wxml

<!--index.wxml-->
<view>{{info}}</view>
 

index.js
修改Page中data内容

data: {
    info: 'hello world'
  },

效果:
在这里插入图片描述

Mustache语法的应用场景

在这里插入图片描述

  • 绑定内容
    同上一步操作

  • 绑定属性
    index.wxml

<!--index.wxml-->
<view>{{info}}</view>
<image src="{{imgSrc}}" mode="widthFix"></image>

index.js

data: {
    info: 'hello world',
    imgSrc: 'http://www.itheima.com/images/logo.png'
  },

在这里插入图片描述

  • 三元运算
    index.wxml
<!--index.wxml-->
<view>{{info}}</view>
<image src="{{imgSrc}}" mode="widthFix"></image>
<view>{{randomNum >= 5 ?'随机数大于等于5':'随机数小于5'}}</view>

index.js

data: {
    info: 'hello world',
    imgSrc: 'http://www.itheima.com/images/logo.png',
    randomNum: Math.random() * 10 //生成10以内的随机数
  },

在这里插入图片描述

  • 算数运算
    index.wxml
<view>生成100以内的随机数:{{randomNum * 100}}</view>

index.js(data中)

randomNum: Math.random().toFixed(2) //生成一个带两位小数的随机数

在这里插入图片描述

WXML语法–事件绑定


事件类型:

在这里插入图片描述

事件属性:

在这里插入图片描述

target和currentTarget的区别

在这里插入图片描述

bindtap的语法格式

index.wxml

<!--index.wxml-->
<button type="primary" bindtap="btnTapHandler">按钮</button>

index.js

Page({
  btnTapHandler(e){ //按钮的 tap 事件处理函数
    console.log(e)  //事件参数对象 e
  },
  

写入console中

在这里插入图片描述

setData方法给data赋新值


index.wxml

<button type="primary" bindtap="btnTapHandler">按钮</button>
<button type="primary" bindtap="CountChange">+1</button>

index.js

  data: {
    count: 0
  },
  CountChange(){
    this.setData({
      count: this.data.count + 1
    })
  },

效果:
在这里插入图片描述
在这里插入图片描述

事件传参


错误示例
在这里插入图片描述
正确
在这里插入图片描述

{{2}}是传递数值2,直接2是传递字符2

写法:
index.wxml中使用data-参数,传参
index.js中使用e.target.dataset接受参数

index.wxml

<button type="primary" bindtap="btnTap2" data-info="{{2}}">+2</button>

index.js

  btnTap2(e){
    this.setData({
      count: this.data.count + e.target.dataset.info
    })
  },

效果:
在这里插入图片描述
在这里插入图片描述

bindinput语法


作用:通过input事件来响应文本框输入事件

在这里插入图片描述

index.wxml

<input bindinput="inputHandler"></input>

注意:
wx中的< input >便签是对称的,但是不会同步显示 < /input >需要自己加上,否则报错在这里插入图片描述

index.js

配合e.detail.value获取文本框输入数据

  inputHandler(e){
    console.log(e.detail.value)
  },

效果:
在这里插入图片描述
输入一个打印一次:
在这里插入图片描述

应用-实现文本框和data之间的数据同步


在这里插入图片描述

条件渲染


wx:if

<!--index.wxml-->
<view wx:if="{{type === 1}}"></view>
<view wx:elif="{{type === 2}}"></view>
<vidw wx:else>保密</vidw>
Page({
  data: {
    msg: '你好',
    type: 1
  },

在这里插入图片描述
可以在AppData中修改type值
在这里插入图片描述

结合< block >使用wx:if

<!--index.wxml-->
<block wx:if="{{true}}">
  <view>view1</view>
  <view>view2</view>
</block>

在这里插入图片描述
改为false后全部隐藏

hidden

<view hidden="{{false}}">条件为true隐藏,条件为false显示</view>

在这里插入图片描述

列表渲染


wx:for

<view wx:for="{{array}}">
  索引是:{{index}}当前是:{{item}}
</view>
Page({
  data: {
    msg: '你好',
    type: 1,
    array:['苹果','华为','小米']
  },

在这里插入图片描述

wx:for-index和wx:for-item

在这里插入图片描述

<view wx:for="{{array}}" wx:for-index="idx"
 wx:for-item="it">
  索引是:{{idx}} 当前项是:{{it}}
 </view>

在这里插入图片描述

wx:key

在这里插入图片描述

<view wx:for="{{userList}}" wx:key="id" >
  {{item.name}}
</view>

在这里插入图片描述

  • 前面没加key值的控制台发出警告

在这里插入图片描述
为其加上key值,警告消失

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值