微信小程序开发|页面文件 wxml
2019-11-02 本文已影响0人
一只永不止步的龙
WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构。
我觉得 WXML 通过三个纬度来介绍:纵向、横向、逻辑处理 . 这里先介绍个简单介绍,它们也是开发小程序的基础,需要的时候可以根据文档具体使用, 以后介绍具体功能时候再扩展。
纵向
纵向: 也就是组件的组合,包括:系统组件、第三方组件、自定义组件 .
例如:
<view class="container">
<view class="userinfo">
<image src="{{userInfo.avatarUrl}}" background-size="cover"></image>
<text class="userinfo-nickname"> 用户名 </text>
</view>
</view>
系统组件:
- 视图容器:cover-image、cover-view、movable-area、movable-view、scroll-view、swiper、swiper-item、view
- 基础内容:icon、progress、rich-text、text
- 表单组件:button、checkbox、checkbox-group、editor、form、input、label、picker、picker-view、picker-view-column、radio、radio-group、slider、switch、textarea
- 导航:functional-page-navigator、navigator
- 媒体组件:audio、camera、image、live-player、live-pusher、video
- 地图:map
- 画布:canvas
- 开放能力:ad、official-account、open-data、web-view
- 原生组件说明:native-component
- 无障碍访问:aria-component
- 导航栏:navigation-bar
- 页面属性配置节点:page-meta
具体使用参考:
https://developers.weixin.qq.com/miniprogram/dev/component/native-component.html
第三方组件: 例如 WeUI 组件库等
自定义组件:自定义组件拥有自己的 wxml 模板和 wxss 样式
横向
横向: 组件的属性
属性名 | 描述 |
---|---|
id | 唯一标识 |
class | 样式表 |
style | 内联样式 |
hidden | 隐藏 |
data-* | 事件传递数据 |
bind* /catch* | 组件事件 |
逻辑处理
逻辑处理: 根据绑定好的数据决定怎么显示视图
数据绑定
<!--wxml-->
<view> {{message}} </view>
// page.js
Page({
data: {
message: 'Hello MINA!'
}
})
列表渲染
<!--wxml-->
<view wx:for="{{array}}"> {{item}} </view>
// page.js
Page({
data: {
array: [1, 2, 3, 4, 5]
}
})
条件渲染
<!--wxml-->
<view wx:if="{{view == 'WEBVIEW'}}"> WEBVIEW </view>
<view wx:elif="{{view == 'APP'}}"> APP </view>
<view wx:else="{{view == 'MINA'}}"> MINA </view>
// page.js
Page({
data: {
view: 'MINA'
}
})
用于包裹视图组件的 block
如果 wx:for、wx:if 要渲染视图容器,可以用 block 标签包裹,block 标签不是一个组件,只是一个用于包装的元素,不会被渲染,并且只接受 wx:.. 控制属性。
block 和 wx:if:
<block wx:if="{{true}}">
<view> view1 </view>
<view> view2 </view>
</block>
block 和 wx:for:
<block wx:for="{{[1, 2, 3]}}">
<view> {{index}}: </view>
<view> {{item}} </view>
</block>
参考:
https://developers.weixin.qq.com/miniprogram/dev/reference/wxml/
桥智科技:科技赋能梦想!专注广州、深圳和惠州小程序定制开发、APP 应用定制开发、网站开发、区块链钱包开发!