| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> 13_从零构建微信小程序项目_数据交互_WXML语法详解 -> 正文阅读 |
|
[移动开发]13_从零构建微信小程序项目_数据交互_WXML语法详解 |
????????WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构。 一、数据绑定????????WXML 中的动态数据均来自对应 Page 的 data。 简单绑定????????数据绑定使用 Mustache 语法(双大括号)将变量包起来,可以作用于: 内容
组件属性(需要在双引号之内)
控制属性(需要在双引号之内)
关键字(需要在双引号之内) ????????true:boolean 类型的 true,代表真值。 ????????false: boolean 类型的 false,代表假值。 ????????注:js的data里面的变量名,不能是关键字;如果插值表达式里面写了true或false,那么就是boolean值;
????????特别注意:不要直接写 checked="false",其计算结果是一个字符串,转成 boolean 类型后代表真值。 运算????????可以在 {{}} 内进行简单的运算,支持的有如下几种方式: 三元运算
算数运算
????????view中的内容为 3 + 3 + d。 逻辑判断
字符串运算
数据路径运算
二、列表渲染wx:for????????在组件上使用 wx:for 控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件。 ????????默认数组的当前项的下标变量名默认为 index,数组当前项的变量名默认为 item
????????使用 wx:for-item 可以指定数组当前元素的变量名, ????????使用 wx:for-index 可以指定数组当前下标的变量名:
block wx:for?????????? ?类似 block wx:if,也可以将 wx:for 用在<block/>标签上,以渲染一个包含多节点的结构块。例如:
wx:key????????如果列表中项目的位置会动态改变或者有新的项目添加到列表中,并且希望列表中的项目保持自己的特征和状态(如 input 中的输入内容,switch 的选中状态),需要使用 wx:key 来指定列表中项目的唯一的标识符。 ????????wx:key 的值以两种形式提供: ????????当数据改变触发渲染层重新渲染的时候,会校正带有 key 的组件,框架会确保他们被重新排序,而不是重新创建,以确保使组件保持自身的状态,并且提高列表渲染时的效率。 ????????如不提供 wx:key,会报一个 warning, 如果明确知道该列表是静态,或者不必关注其顺序,可以选择忽略。
三、条件渲染wx:if????????在框架中,使用 wx:if="" 来判断是否需要渲染该代码块:
????????也可以用 wx:elif 和 wx:else 来添加一个 else 块:
block wx:if????????因为 wx:if 是一个控制属性,需要将它添加到一个标签上。如果要一次性判断多个组件标签,可以使用一个 <block/> 标签将多个组件包装起来,并在上边使用 wx:if 控制属性。
wx:if vs hidden????????因为 wx:if 之中的模板也可能包含数据绑定,所以当 wx:if 的条件值切换时,框架有一个局部渲染的过程,因为它会确保条件块在切换时销毁或重新渲染。 ????????同时 wx:if 也是惰性的,如果在初始渲染条件为 false,框架什么也不做,在条件第一次变成真的时候才开始局部渲染。 ????????相比之下,hidden 就简单的多,组件始终会被渲染,只是简单的控制显示与隐藏。 ????????一般来说,wx:if 有更高的切换消耗而 hidden 有更高的初始渲染消耗。因此,如果需要频繁切换的情景下,用 hidden 更好,如果在运行时条件不大可能改变则 wx:if 较好。
四、模板????????WXML提供模板(template),可以在模板中定义代码片段,然后在不同的地方调用。 ????????我们要把精彩文章这一小块作为一个模版;以后定义这样的结构,直接引入模版即可; 定义模板????????使用 name 属性,作为模板的名字。然后在<template/>内定义代码片段,如: ????????1、在app.json的pages里面定义"pages/template/articleTemplate/articleTemplate" ????????2、在articleTemplate.wxml里面定义template组件,给其添加name,并自定义名称articleTemplate ????????3、在组件中写相应的结构(从之前的代码中复制),把里面的静态文本都替换为插值表达式; ????????4、在articleTemplate.wxss里面定义结构相关样式;
使用模板????????1、import可以在该文件中使用目标文件定义的template,在index.wxml中使用import引入articleTemplate模版;
????????2、在index.wxss里面使用@import引入模版所需样式;
????????3、使用 is 属性,声明需要的使用的模板,然后将模板所需要的 data 传入;
|
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 20:11:00- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |