EA&UML日拱一卒-0基础学习微信小程序(8)-事件处理和数据绑定
文章的内容也好,关注数也好,似乎又到了爬坡阶段。你还在坚持阅读和转发么?
吃过烧烤之后,继续Helloworld进行说明,今天的内容是wxml文件。
WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构。它的语法和XML保持一致。
主画面
主画面的内容由index.wxml定义。其内容如下:
<!--index.wxml-->
<view class="container">
<view bindtap="bindViewTap" class="userinfo">
<image class="userinfo-avatar" src="{{userInfo.avatarUrl}}" background-size="cover"></image>
<text class="userinfo-nickname">{{userInfo.nickName}}</text>
</view>
<view class="usermotto">
<text class="user-motto">{{motto}}</text>
</view>
</view>
我们稍微细致一点说明一下index.wxml的内容。让C/C++程序员也能看懂。
注释
<!--index.wxml-->是注释行,在XML中注释行的格式是<!-- 注释内容 -->。
最外层容器
接 下来第二行<view class="container">到最后一个</view>构成最外层容器。这个容器的class被定义 为"container",这个"container"是在上一篇文章中讲到的app.wxss中定义的。通过这种方式将wxml和wxss联系起来。
接下来的层次中有定义了两个容器,对应的是用户信息和“HelloWorld”信息。
用户信息容器
对应用户信息的容器的class被定义为“userinfo”,它在index.wxss中被定义。
这里增加了一个bindtap关键字,被指定为"bindViewTap”。它的含义是当用户点击该组件的时候会在该页面对应的Page中找到相应的事件处理函数bindViewTap。
用 户信息容器中又包含了image对象和text对象。它们同样使用class关键字指定了显示属性,我们就不在一一说明了。我们要说明的是数据绑定,数据 绑定使用 Mustache 语法(双大括号)将变量包起来,数据绑定的效果就相当于在页面描述中埋入变量。可以认为,程序实际执行时这些变量会被实际的值(或Image)替换。这些 值的提供者为.js文件,我们下一篇文章说明。具体来说,image对象绑定的是userInfo.avatarUrl,text对象绑定的是 userInfo.nickName。
问候语
包含一个简单的text对象,绑定的是motto。
log表示页面
<!--logs.wxml-->
<view class="container log-list">
<block wx:for="{{logs}}" wx:for-item="log" wx:key="*this">
<text class="log-item">{{index + 1}}. {{log}}</text>
</block>
</view>
这段代码中view相关的内容上面已经讲过了,这里只说明block。在这个例子中,block定义容器中的一个表示区域,这个区域使用数组的内容进行填充:
-
使用
wx:for
控制属性指定被绑定的数组为logs -
使用
wx:for-item
指定从数组中取出的元素的变量名为log -
使用
wx:key
指定log和数组元素的关系,本例中的设定值为"*this",表示log就是数组元素本身;如果数组元素包含多个属性,可以指定属性名来选择具体的属性。
参考文档
事件
https://mp.weixin.qq.com/debug/wxadoc/dev/framework/view/wxml/event.html
数据绑定
https://mp.weixin.qq.com/debug/wxadoc/dev/framework/view/wxml/data.html
列表渲染
https://mp.weixin.qq.com/debug/wxadoc/dev/framework/view/wxml/list.html
写在文章的最后