《二》微信小程序中的 WXML

用于描述页面的结构。类似于 ,支持写成单标签或者双标签,但是必须有严格的闭合,并且大小写敏感。

中的动态数据均来自对应 的 。数据绑定使用 语法(双大括)将变量包起来,可以作用于:

内容

属性:

运算:可以在 内进行简单的运算,支持的有如下几种方式:

三元运算:

算数运算:

逻辑判断:

字符串运算:

数据路径运算:

组合:也可以在 内直接进行组合,构成新的数组或对象。

双向绑定:

在 中,普通属性的绑定是单向的。如果使用 来更新 , 和输入框的中显示的值都会被更新为 ;但如果用户修改了输入框里的值,却不会同时改变 。

如果需要在用户输入的同时改变 ,需要借助双向绑定机制。此时,可以在对应项目之前加入 前缀:

双向绑定同样可以使用在自定义组件上。

这样,如果输入框的值被改变了, 也会同时改变,同时, 中所有绑定了 的位置也会被一同更新, 数据监听器也会被正常触发。

双向绑定的限制:

用于双向绑定的表达式只能是一个单一字段的绑定。

自定义组件中使用双向绑定:

双向绑定同样可以使用在自定义组件上。

当自定义组件的输入框的值变更时,自定义组件的 属性会同时变更,页面的 也会同时变更,页面 中所有绑定了 的位置也会被一同更新。

可以使用 遍历一个数组,即可使用数组中各项的数据重复渲染组件。数组当前项的下标默认为 ,数组当前项的变量名默认为 。

当 遍历的值是字符串时,会将字符串解析成字符串数组。

当 遍历的值是数字时,会从 1 开始遍历该数字。

当 遍历的值是对象时, 对应的就是 , 对应的就是 。

使用 可以指定数组当前元素的变量名,使用 可以指定数组当前下标的变量名。

可以将 用在 标签上,以渲染一个包含多节点的结构块。

就是一个占位符,自己本身并不会被渲染到页面上。

如果列表中项目的位置会动态改变或者会有新的项目添加到列表中,并且希望列表中的项目保持自己的特征和状态,需要使用 来指定列表中项目的唯一标识符。

如果不提供 ,会报一个 , 如果明确知道该列表是静态,或者不必关注其顺序,可以选择忽略。

的值以两种形式提供:

字符串:表示 循环中 的某个 ,该 的值需要是列表中唯一的字符串或数字,且不能动态改变。保留关键字 : 表示 循环中的 本身,这种表示需要 本身是一个唯一的字符串或者数字,不能是数组或对象。

和 、 类似,小程序内部也是用了虚拟 ,当某一层有很多相同的节点时,希望插入、删除节点时,可以更好地复用节点,因此需要 属性。

使用 来判断是否需要渲染该代码块,也可以用 和 来添加一个 块。

因为 是一个控制属性,需要将它添加到一个标签上。如果要一次性判断多个组件标签,可以使用一个 标签将多个组件包装起来,并在上边使用 控制属性。

并不是一个组件,它仅仅是一个包装元素,不会在页面中做任何渲染,只接受控制属性。

是所有组件默认都拥有的属性。

:如果条件为 ,则渲染条件块;如果条件为 ,则什么也不做。也就是说,当 的条件值切换时,条件块会一直销毁或重新渲染,有更高的切换消耗。:不论条件为 或者为 ,组件始终会被渲染,只是通过 控制显示与隐藏。有更高的初始渲染消耗。

因此,如果需要频繁切换的情景下,用 更好,如果在运行时条件不大可能改变则 较好。

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

模板拥有自己的作用域,只能使用 传入的数据以及模板定义文件中定义的 模块。

定义模板:

在内定义代码片段,使用 属性作为模板的名字。

使用模板:

模版的引用需要用 标签,该标签的 属性为需要引用模版的路径。模版的使用需要用 标签,使用 属性来区分模版文件中定义的模版。在调用页面的 文件中使用 传入模版页面中所需要的数据。在调用页面的 中引用了 后,模版的样式并不会引用, 需要在调用页面的 文件中引用 文件。在调用页面的 文件中定义模板页面中的绑定方法。

可以对 文件进行拆分,通过 和 这两种方式进行引用。

:可以将目标文件中的除了 外的整个代码引入,相当于是直接将代码拷贝到 所在的位置。

:可以在调用文件中使用目标文件中定义的 模板。

有作用域的概念,即只会 目标文件中定义的 ,而不会 目标文件 的 。

例如: , ,在 中可以使用 定义的 ,在 中可以使用 定义的 ,但是 不能使用 定义的 。

© 版权声明
THE END
分享