【微信小程序】WXML的模板语法与WXSS模板样式(一)

简介: 【微信小程序】WXML的模板语法与WXSS模板样式

WXML的模板语法


数据绑定


  • 数据绑定的基本原则


  • (1)在data中定义数据


  • (2)在WXML中使用数据


Page({
  data:{
    //字符串典型的数据
    info:'int data',
    //数据类型的数据
    msgList:[{msg:'hello'},{msg:'world'}]
  }
})
  • Mustache语法


  • 语法的格式


  • 应用场景


<view>{{要绑定的数据名称}}</view>

①绑定内容


绑定属性


③运算(三元运算、算术运算)


  • 动态绑定内容
Page({
  data:{info:'int data'}
})


//页面结构
<view>{{info}}</view>


  • 动态绑定属性


Page({
  data:{imgSrc:'https://wx2.sinaimg.cn/mw690/006HhBxply1hjb88sv9dtj31tk10m14k.jpg'}
})


//页面结构
<image src='{{imgSrc}}'></image>


  • 三元运算
Page({
  data:{randomNum:Math.random()*10} //生成10以内的随机数
})


//页面结构
<view>{{randomNum >=5 ? '随机数字大于等于5 ':'随机数字小于5'}}</view>

小程序常用事件


类型 绑定方式 事件描述
tap bindtap或bind:tap 手指触摸后马上离开,类似于HTML中的click事件
input bindinput 或bind:input 文本框的输入事件
change bindchange或bind:change 状态改变时触发

事件对象的属性列表



属性 类型 说明
type String 事件类型
timeStamp Integer 页面打开到触发事件所经过的毫秒数
target Integer 触发事件的组件的一些属性值集合
currentTarget Object 当前组建的一些属性值结合
detail Object 额外的信息
touches Array 触摸事件,当前停留在屏幕中的触摸点信息的数据
changedTouches Array 触摸事件,当前变化的触摸点信息的数据



条件渲染


1、wx:if是否需要


在小程序中,使用wx:if="{{conditon}}"来判断是否需要渲染该代码块


<view wx:if="{{condition}}">True</view>


也可用wx:elif 和wx:else来添加else判断


<view wx:if="{{type===1}}">1</view>
<view wx:elif="{{type===2}}">2</view>
<view wx:else>4</view>


2、结合<block> 使用wx:if


如果要一次性控制多个组件的展示与隐藏,可以使用一个<block></block>标签将多个组件包装起来,并在<block>标签上使用wx:if控制属性


<block wx:if="{{true}}">
  <view>view1</view>
  <view>view2</view>
</block>


注意:并不是一个组件,他只是一个包裹性质的容器,不会在页面中做任何渲染


3、hidden


在小程序中,直接使用hidden="{{condition}}"也能控制元素的显示与隐藏


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


4、wx:if 与hidden的对比


①运行方式不同

wx:if以动态创建和移除元素的方式,控制元素的显示与隐藏

hidden以切换样式的方式,控制元素的显示与隐藏


②使用建议

频繁切换时,建议使用hidden

控制条件复杂时,建议使用wx:if搭配wx:elif ,wx:else进行展示与隐藏


5、wx:for


通过wx:for可以根据指定的数组,循环渲染重复的组件结构,语法示例如下:


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


默认情况下,当前循环项的索引用index表示;当前循环项用item表示


6、wx:key的使用


类似于Vue列表渲染中的:key小程序在实现列表渲染时,也建议为渲染出来的列表项指定唯一的key值,从而提高渲染的效率,示例代码如下:


data:{
  userList:[
    {id:1,name:"2"},
    {id:2,name:"3"},
    {id:3,name:"5"}
  ]
}




目录
相关文章
|
1月前
|
小程序 搜索推荐 API
微信小程序:自定义关注公众号组件样式
尽管关注公众号组件的样式固定且不可修改,但产品经理的需求却需要个性化的定制。在这种情况下,我们需要寻找解决方案,以满足这些特殊需求,尽管这可能有点棘手。
60 0
微信小程序:自定义关注公众号组件样式
|
2月前
|
JSON 小程序 前端开发
towxml的使用,在微信小程序中快速将markdown格式渲染为wxml文本
本文介绍了在微信小程序中使用`towxml`库将Markdown格式文本渲染为WXML的方法。文章提供了`towxml`的概述、安装步骤、以及如何在小程序中配置和使用`towxml`进行Markdown解析的详细说明和代码示例。
|
3月前
|
小程序
Taro@3.x+Vue@3.x+TS开发微信小程序,根据系统主题展示不同样式(darkMode)
本文介绍如何在Taro项目中配置深色模式。通过在`src/app.config.ts`设置`darkmode`选项和在`theme.json`中定义主题变量,可以实现跟随系统主题的界面风格切换。
101 0
Taro@3.x+Vue@3.x+TS开发微信小程序,根据系统主题展示不同样式(darkMode)
|
3月前
|
小程序 JavaScript 前端开发
微信小程序开发必备前置知识:基本代码构成与语法
【8月更文挑战第8天】微信小程序的基本代码构成与语法
102 0
微信小程序开发必备前置知识:基本代码构成与语法
|
4月前
|
小程序
【微信小程序-原生开发】wxml 支持 includes (wxml中执行函数的方法)
【微信小程序-原生开发】wxml 支持 includes (wxml中执行函数的方法)
318 0
|
4月前
|
小程序 JavaScript 前端开发
【微信小程序-原生开发】实用教程06-轮播图、分类页签 tab 、成员列表(含Tdesign升级,切换调试基础库,设置全局样式,配置组件按需注入,添加图片素材,wx:for,生命周期 onLoad)
【微信小程序-原生开发】实用教程06-轮播图、分类页签 tab 、成员列表(含Tdesign升级,切换调试基础库,设置全局样式,配置组件按需注入,添加图片素材,wx:for,生命周期 onLoad)
145 0
|
1月前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
477 7
|
1月前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
529 1
|
1月前
|
小程序 前端开发 测试技术
微信小程序的开发完整流程是什么?
微信小程序的开发完整流程是什么?
111 7
ly~
|
2月前
|
存储 供应链 小程序
除了微信小程序,PHP 还可以用于开发哪些类型的小程序?
除了微信小程序,PHP 还可用于开发多种类型的小程序,包括支付宝小程序、百度智能小程序、抖音小程序、企业内部小程序及行业特定小程序。在电商、生活服务、资讯、工具、娱乐、营销等领域,PHP 能有效管理商品信息、订单处理、支付接口、内容抓取、复杂计算、游戏数据、活动规则等多种业务。同时,在企业内部,PHP 可提升工作效率,实现审批流程、文件共享、生产计划等功能;在医疗和教育等行业,PHP 能管理患者信息、在线问诊、课程资源、成绩查询等重要数据。
ly~
78 6