转载-微信小程序-WXML

作者: 一曲广陵散 | 来源:发表于2016-11-08 08:55 被阅读3746次

WXML

WXML(weixin markup language)是
框架设计的一套标签语言,结合基础组件,事件系统,
可以构建出页面的结构

一 数据绑定

数据绑定.png
wxml中的动态数据均来自对应的page中的data

1 简单绑定

数据绑定使用mustache语法(双大括号)将变量包起,可以作用于:

(1)内容

简单绑定.png

(2)组件属性(需要在双括号中)

组件属性.png

(3)控制属性(需要在双括号中)

控制属性.png

(4)关键字(需要在双引号之内)

2 运算

可以在{{}}中进行简单的运算,支持下面的几种方式:

(1)三元运算

三元运算.png

(2)算数运算

算术运算.png

(3)逻辑判断

逻辑运算.png

(4)字符串运算

字符串运算.png

(5)数据路径运算

数据路径运算.png

3 组合

可以在mustache内直接进行组合,构成新的对象或者数组

(1)数组

数组.png

(2)对象

对象.png 运算符(...).png 组合的间接表达.png 变量名相同被覆盖.png

二 列表渲染

列表渲染.png

1 wx:for

在组件上使用wx:for控制属性绑定一个数组,
可以使用数组中的各项数据重复渲染该组件
默认数组的当前项的下标变量名是index,
数组当前项的变量名默认为item
列表渲染(1).png
使用wx:for-item可以指定数组当前元素的变量名
使用wx: for-index可以指定数组当前下标的变量名
列表渲染2.png
wx:for也可以嵌套,
列表渲染3.png

2 block wx:for

类似block wx:if,
可以将wx:for用在<block/>标签上,
渲染一个包含多个节点的结构块
列表渲染4.png

3 wx: key

如果列表中项目的位置会动态改变或者有新的项目添加到列表中,
并且希望列表中的项目保持自己的特征和状态
(如 <input/> 中的输入内容,<switch/>的选中状态)
需要使用wx:key指定列表中项目的唯一标识符
wx:key的值有两种形式提供:
(1)字符串,代表在
for循环的array中item的某个property,
该property的值需要时列表中唯一的字符串或者数字,
不能动态改变
(2)保留关键字,*this代表在for循环中item本身,
表示需要item本身是一个唯一的字符串或者数字,
如:当数据改变触发渲染层重新渲染的时候,
会校正带有key的组件,框架会确保他们被重新排序,
而不是重新创建,确保使组件保持自身的状态
并且提高列表渲染时候的效率
注意:如果不提供wx:ley,会报warning
如果明确知道该列表是静态,或者不必关注其顺序,可以选择忽略
列表渲染5.png 列表渲染6.png

三 条件渲染

条件渲染.png

1 wx:if

在框架中,用wx:if=“{{condition}}”来判断是否需要渲染该代码块
条件渲染1.png
可以使用wx:elif 和 wx:else 添加一个else块
条件渲染2.png

2 block wx:if

wx:if是一个控制属性,需要将其添加到一个标签上,
如果想一次性判断多个组件标签,可以使用<block/>标签将多个组件包装起来,使用wx:if控制属性
条件渲染3.png
注意:<block/>不是一个组件,仅仅是一个包装元素,
不会在页面中做任何渲染,只接受控制属性

wx:if 和hidden的比较

因为wx:if之中的模板可能包含数据绑定,
当wx:if的条件值切换的时候,框架有一个局部渲染的过程,
它会确保条件块在切换时候销毁和重新渲染
同时,wx:if也是惰性的
如果初始渲染条件是false,框架什么也不做,
在条件第一次变成真,才开始局部渲染
hidden简单,组件始终会被渲染,只是简单的控制显示和隐藏
wx:if有更高的切换消耗
hidden有更高的初始渲染消耗,
如果需要频繁切换情景,用hidden
如果在运行时条件不大可能改变,wx:if较好

四 模板

模板.png
wxml提供模板,可以在模板中定义代码片段,然后在不同地方调用

1 定义模板

使用name属性,作为模板的名字,然后在
<template/>定义代码片段,
定义模板.png

2 使用模板

使用is属性,声明需要使用的模板,然后将模板所需的data传入
使用模板.png
is属性可以使用mustache语法,来动态决定具体需要渲染哪个模板
动态使用模板.png

3 模板的作用域

模板拥有自己的作用域,只能使用data传入数据

五 事件

事件.png

相关文章

网友评论

    本文标题:转载-微信小程序-WXML

    本文链接:https://www.haomeiwen.com/subject/uryouttx.html