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定义容器中的一个表示区域,这个区域使用数组的内容进行填充:

  1. 使用 wx:for 控制属性指定被绑定的数组为logs

  2. 使用 wx:for-item 指定从数组中取出的元素的变量名为log

  3. 使用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


写在文章的最后


既然已经读到这里了,拜托大家再用一分钟时间,将文章转发到各位的朋友圈,微信群中。本公众号的成长需要您的支持!
阅读更多更新文章,请扫描下面二维码,关注微信公众号【面向对象思考】EA&UML日拱一卒-0基础学习微信小程序(8)-事件处理和数据绑定