轻源码

  • QingYuanMa.com
  • 全球最大的互联网技术和资源下载平台
搜索
一起源码网 门户 微信小程序 查看主题

Android开发者学习小程序之旅《二》视图层WXML

发布者: lslinux | 发布时间: 2017-11-14 05:00| 查看数: 5393| 评论数: 1|帖子模式

作者:Garment1991,来自原文地址

框架的视图层由WXML与WXSS编写。

其中WXML(WeiXin Markup language)用来描述页面的结构,其实就是页面中的组件的结构,其文件是.wxml;WXSS(WeiXin Style Sheet)用于描述页面的样式,其实就是每个组件的样式、属性的设置,其文件是.wxss。

 比如说一个显示用户头像和名字的界面。

其页面结构就是一个Text组件,和一个Image组件;其页面格式就是说两个组件放置的具体位置,还有组件的大小,文字的大小,颜色等等。


[html] view plain copy
  1. <!--userinfo.wxml-->  
  2. <view class = "userInfo">  
  3.     <text>{{userName}}</text>  
  4.     <image src="avatarUrl" class = "avatar"></image>  
  5. </view>  
[html] view plain copy
  1. <!--userinfo.wxss-->  
  2. .userInfo {  
  3.     display: flex;  
  4.     flex-direction: column;  
  5. }  
  6. .userName {  
  7.     font-size: 20rpx;  
  8.     color: #000000;  
  9. }  
  10. .avatar {  
  11.     width: 30rpx;  
  12.     height: 30rpx;  
  13. }  

1)数据绑定

WXML中的动态数据均来自对应的Page的data。

简单的数据绑定

数据绑定使用Mustache语法(双大括号)将变量包起来。

数据作为内容显示

[html] view plain copy
  1. <view> {{ message }} </view>  
  2.   
  3.   
  4. Page({  
  5.   data: {  
  6.     message: 'Hello MINA!'  
  7.   }  
  8. })  


数据作为组件的属性的一部分(需要在双引号之内)

[html] view plain copy
  1. <view id="item-{{id}}"> </view>  
  2.   
  3.   
  4. Page({  
  5.   data: {  
  6.     id: 0  
  7.   }  
  8. })  


2)列表渲染

 当我们需要展示一系列相似的数据时,就需要用到列表渲染。


wx:for

在组件上使用wx:for控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件。

默认数组的当前的下标变量名默认为index,数组当前项的变量名默认为item。

[html] view plain copy
  1. <view wx:for="{{array}}">  
  2.   {{index}}: {{item.message}}  
  3. </view>  
  4. Page({  
  5.   data: {  
  6.     array: [{  
  7.       message: 'foo',  
  8.     }, {  
  9.       message: 'bar'  
  10.     }]  
  11.   }  
  12. })  

其显示结果是:0:foo  1:bar

使用wx:for-item 可以指定数组当前元素的变量名,

使用wx:for-index 可以指定数组当前下标的变量名:

[html] view plain copy
  1. <view wx:for="{{array}}" wx:for-index="idx" wx:for-item="itemName">  
  2.   {{idx}}: {{itemName.message}}  
  3. </view>  



block wx:for

类似block wx : if ,也可以将wx:for用在<block/>标签上,以渲染一个包含多节点的结构块。例如:

[html] view plain copy
  1. <block wx:for="{{[1, 2, 3]}}">  
  2.   <view> {{index}}: </view>  
  3.   <view> {{item}} </view>  
  4. </block>  

显示结果为:

0

1

1

2

2

3


3)事件

什么是事件:

  • 事件是视图层到逻辑层的通讯方式。
  • 事件可以将用户的行为反馈到逻辑层进行处理。
  • 事件可以绑定在组件上,当达到触发事件的条件,就会执行逻辑层中对应的事件处理函数。
  • 事件对象可以携带额外信息,如id,data,touches。
事件的使用方式

*在组件中绑定一个事件处理函数。
如bindtap,当用户点击该组件的时候,会在该对应的Page中找到相应的事件处理函数。
[html] view plain copy
  1. <view id="tapTest" data-hi="WeChat" bindtap="tapName"> Click me! </view>  

*在相应的Page定义中写上相应的事件处理函数,参数是event。

[javascript] view plain copy
  1. Page({  
  2.   tapName: function(event) {  
  3.     console.log(event)  
  4.   }  
  5. })  


*可以看到log出来的信息大致如下:

[javascript] view plain copy
  1. {  
  2. "type":"tap",  
  3. "timeStamp":895,  
  4. "target": {  
  5.   "id""tapTest",  
  6.   "dataset":  {  
  7.     "hi":"WeChat"  
  8.   }  
  9. },  
  10. "currentTarget":  {  
  11.   "id""tapTest",  
  12.   "dataset": {  
  13.     "hi":"WeChat"  
  14.   }  
  15. },  
  16. "detail": {  
  17.   "x":53,  
  18.   "y":14  
  19. },  
  20. "touches":[{  
  21.   "identifier":0,  
  22.   "pageX":53,  
  23.   "pageY":14,  
  24.   "clientX":53,  
  25.   "clientY":14  
  26. }],  
  27. "changedTouches":[{  
  28.   "identifier":0,  
  29.   "pageX":53,  
  30.   "pageY":14,  
  31.   "clientX":53,  
  32.   "clientY":14  
  33. }]  
  34. }  

最新评论

ℳ๓₯㎕ 发表于 2022-5-3 10:41
网站源码模板

轻源码让程序更轻更快

QingYuanMa.com

工作时间 周一至周六 8:00-17:30

侵权处理

客服QQ点击咨询

关注抖音号

定期抽VIP

Copyright © 2016-2021 https://www.171739.xyz/ 滇ICP备13200218号

快速回复 返回顶部 返回列表