wxml 判断 小程序_小程序01---WXML

本文详细介绍了小程序的WXML语法,包括数据绑定、列表渲染(wx:for)、条件渲染(wx:if、wx:elif、wx:else)以及模板和引用的使用。通过实例展示了如何进行简单的数据运算、数组和对象的生成,以及wx:for和wx:if的区别。此外,还提到了模板的作用域和import与include的引用方式。
摘要由CSDN通过智能技术生成

WXML的语法

概述

WXML(WeiXin Markup Language)是一种标签语言,可以全面类比html。在小程序内起到了和html一样的作用。结合基础组件,事件系统可以构成页面的结构。

数据绑定

列表渲染

条件渲染

模板

引用

数据绑定

简单绑定

基础用法

双大括号{{}}的语法,对应的数据来自Page()中的data.

{{name}}

Page({

data:{

name:'zhang',

id:0,

bool:false

}

})

给组件的属性做简单绑定的时候,需要在双引号之内写。

控制属性,也要在双引号之内写。

布尔值关键字也要写在双引号之内。分别代表真值和假值。不能使用checked="false"。

运算

可以在{{}}内进行简单的运算。

{{a+b-c}}

{{"hello"+b}}

{{obj.key arr[0]}}

Page({

data:{

a:2,

b:3,

c:1,

obj:{

key:'hello'

},

arr:[1,2]

}

})

分别可以进行三目运算,简单的加减,条件判断,字符串拼接运算,数据的路径运算。

组合

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

{{item}}

Page({

data:{{

zero:0,

a:2,

b:3

}}

})

最终会分别生成数组和对象。

也可以用...扩展运算符对一个对象展开

Page({

data:{

obj1:{

a:1,

b:2

},

obj2:{

c:1,

d:3

}

}

})

但是如果有相同的变量名,后面的变量名会覆盖前面的。

如果{{}}和引号之间用空格,解析的时候也会解析成字符串。

列表渲染

wx:for

渲染列表使用wx:for在属性上绑定一个数组,然后就可以把数组中的每一项渲染出来。

Page({

data:{

arr:[1,2,3,4]

}

})

item是value,index是key。同时,wx:for也可以嵌套。

{{i}}*{{j}} = {{i*j}}

用wx:for-item表示数组当前元素的value

用wx:for-index表示数组当前元素的key

block wx:for

可以把wx:for作用到标签上,来渲染一个包含多个节点的结构块。

{{index}}

{{item}}

wx:key

大概是唯一标识之类的功能。

条件渲染

wx:if

使用wx:if="{{condition}}"来判断是否根据逻辑进行条件渲染。

show

hide

Page({

data:{

condition:true

}

})

block wx:if

和block wx:for一样,这个可以作用在标签之上,用于一个结构块是否展示。

{{hello}}

world

Page({

data:{

bool:true,

hello:hello

}

})

wx:if 和hidden

两者都可以让组件隐藏不显示,但是还是有所不同。

wx:if是惰性的,当它为false的时候并不会执行渲染,当为true的时候才会执行渲染。但是hidden就算是不显示也会执行渲染。

所以说,wx:if有更多的切换效率,较少的初始化渲染效率

hidden正好相反,有更多的初始化效率,更低的切换效率。

模板

WXML提供了模板功能,可以在模板中定义代码片段,在不同地方引用。

hello world

hahaha

用is关键字引用,用name属性声明。

同时,is关键字还支持{{}}的一切语法。比如三目运算来决定具体使用哪一个模板。

模板的作用域

需要指出的是,模板还有自己的作用域,只能使用data传入的数据,以及模板定义文件中定义的模块。

{{arr[0]}}

引用

小程序提供两种引用方式。可以在一个WXML中引入另外一个WXML文件,分别是import和include。

import

可以在文件中使用目标文件中定义的

// item.wxml

{{text}}

// newItem.wxml

import也有作用域的概念,只会是目标文件中的,直属import,而不会是目标文件的目标文件。

include

整体拷贝,有点类似velocity中的#include。

body

header

footer

总结

一句话总结就是,这就是vue嘛。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值