码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【小程序】WXML模板语法


    文章目录

    • 小程序API的三大分类
    • WXML语法--数据绑定
      • 使用Mustache语法
      • Mustache语法的应用场景
    • WXML语法--事件绑定
      • 事件类型:
      • 事件属性:
      • target和currentTarget的区别
      • bindtap的语法格式
    • setData方法给data赋新值
    • 事件传参
    • bindinput语法
    • 应用-实现文本框和data之间的数据同步
    • 条件渲染
      • wx:if
      • 结合< block >使用wx:if
      • hidden
    • 列表渲染
      • wx:for
      • wx:for-index和wx:for-item
      • wx:key

    小程序API的三大分类


    在这里插入图片描述

    WXML语法–数据绑定


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

    使用Mustache语法

    在这里插入图片描述

    index.wxml

    
    <view>{{info}}view>
     
    
    • 1
    • 2
    • 3

    index.js
    修改Page中data内容

    data: {
        info: 'hello world'
      },
    
    • 1
    • 2
    • 3

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

    Mustache语法的应用场景

    在这里插入图片描述

    • 绑定内容
      同上一步操作

    • 绑定属性
      index.wxml

    
    <view>{{info}}view>
    <image src="{{imgSrc}}" mode="widthFix">image>
    
    • 1
    • 2
    • 3

    index.js

    data: {
        info: 'hello world',
        imgSrc: 'http://www.itheima.com/images/logo.png'
      },
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

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

    index.js

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

    在这里插入图片描述

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

    index.js(data中)

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

    在这里插入图片描述

    WXML语法–事件绑定


    事件类型:

    在这里插入图片描述

    事件属性:

    在这里插入图片描述

    target和currentTarget的区别

    在这里插入图片描述

    bindtap的语法格式

    index.wxml

    
    <button type="primary" bindtap="btnTapHandler">按钮button>
    
    
    • 1
    • 2
    • 3

    index.js

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

    写入console中

    在这里插入图片描述

    setData方法给data赋新值


    index.wxml

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

    index.js

      data: {
        count: 0
      },
      CountChange(){
        this.setData({
          count: this.data.count + 1
        })
      },
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

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

    事件传参


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

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

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

    index.wxml

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

    index.js

      btnTap2(e){
        this.setData({
          count: this.data.count + e.target.dataset.info
        })
      },
    
    • 1
    • 2
    • 3
    • 4
    • 5

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

    bindinput语法


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

    在这里插入图片描述

    index.wxml

    <input bindinput="inputHandler">input>
    
    • 1

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

    index.js

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

      inputHandler(e){
        console.log(e.detail.value)
      },
    
    • 1
    • 2
    • 3

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

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


    在这里插入图片描述

    条件渲染


    wx:if

    
    <view wx:if="{{type === 1}}">男view>
    <view wx:elif="{{type === 2}}">女view>
    <vidw wx:else>保密vidw>
    
    • 1
    • 2
    • 3
    • 4
    Page({
      data: {
        msg: '你好',
        type: 1
      },
    
    • 1
    • 2
    • 3
    • 4
    • 5

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

    结合< block >使用wx:if

    
    <block wx:if="{{true}}">
      <view>view1view>
      <view>view2view>
    block>
    
    • 1
    • 2
    • 3
    • 4
    • 5

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

    hidden

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

    在这里插入图片描述

    列表渲染


    wx:for

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

    在这里插入图片描述

    wx:for-index和wx:for-item

    在这里插入图片描述

    <view wx:for="{{array}}" wx:for-index="idx"
     wx:for-item="it">
      索引是:{{idx}} 当前项是:{{it}}
     view>
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    wx:key

    在这里插入图片描述

    <view wx:for="{{userList}}" wx:key="id" >
      {{item.name}}
    view>
    
    • 1
    • 2
    • 3

    在这里插入图片描述

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

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

  • 相关阅读:
    如何参与开源项目 - 细说 GitHub 上的 PR 全过程
    导数求函数最大值和最小值
    go的面向对象学习
    MySQL 部署:初始化建议关注的参数
    问:问卷中的多选题数据怎么整理?
    Java-微服务-谷粒商城-1-环境搭建&项目初始化
    140.深度学习分布式计算框架-3
    9、8锁现象彻底的理解锁(锁的只有两个东西,一个是对象,一个是Class模板(static修饰))
    RocketMq源码分析(二)--nameServer启动流程
    关于loss.backward()optimizer.step()optimizer.zero_grad()的顺序
  • 原文地址:https://blog.csdn.net/m0_65431212/article/details/127245200
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号