您的位置:首页 > 移动开发 > 微信开发

EA&UML日拱一卒-0基础学习微信小程序(8)-事件处理和数据绑定

2018-01-08 21:47 831 查看
文章的内容也好,关注数也好,似乎又到了爬坡阶段。你还在坚持阅读和转发么?

吃过烧烤之后,继续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
写在文章的最后

既然已经读到这里了,拜托大家再用一分钟时间,将文章转发到各位的朋友圈,微信群中。本公众号的成长需要您的支持!
阅读更多更新文章,请扫描下面二维码,关注微信公众号【面向对象思考】
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  微信 小程序
相关文章推荐