WXML 模板
{{msg}}this.setData({msg: 'Hello World'})
1、数据绑定
<!--wxml--><view>{{message}}</view>// page.jsPage({data: {message: 'Hello MINA!'}})
2、组件属性(需要在双引号之内)
<view id="item-{{id}}"></view>3、控制属性(需要在双引号之内)
<viewwx:if="{{condition}}"></view>4、关键字(需要在双引号之内)
<checkboxchecked="{{false}}"></checkbox>5、列表渲染
<!--wxml--><viewwx:for="{{array}}">{{item}}</view>// page.jsPage({data: {array:}})<viewwx:for="{{array}}">{{index}}: {{item.message}}</view>Page({data: {array:}})
<view wx:for="{{array}}" wx:for-index="idx" wx:for-item="itemName">{{idx}}: {{itemName.message}}</view>
<viewwx:for="{{}}"wx:for-item="i"><viewwx:for="{{}}"wx:for-item="j"><viewwx:if="{{i <= j}}">{{i}} * {{j}} = {{i * j}}</view></view></view>
6、block wx:for
<blockwx:for="{{}}"><view>{{index}}:</view><view>{{item}}</view></block>
7、wx:key
8、条件渲染
<!--wxml--><viewwx:if="{{view == 'WEBVIEW'}}">WEBVIEW</view><viewwx:elif="{{view == 'APP'}}">APP</view><viewwx:else="{{view == 'MINA'}}">MINA</view>// page.jsPage({data: {view: 'MINA'}})
9、block wx:if
<blockwx:if="{{true}}"><view>view1</view><view>view2</view></block>
10、模板
<!--wxml--><templatename="staffName"><view>FirstName: {{firstName}}, LastName: {{lastName}}</view></template><templateis="staffName"data="{{...staffA}}"></template><templateis="staffName"data="{{...staffB}}"></template><templateis="staffName"data="{{...staffC}}"></template>// page.jsPage({data: {staffA: {firstName: 'Hulk', lastName: 'Hu'},staffB: {firstName: 'Shang', lastName: 'You'},staffC: {firstName: 'Gideon', lastName: 'Lin'}}})
<templatename="odd"><view>odd</view></template><templatename="even"><view>even</view></template><blockwx:for="{{}}"><templateis="{{item % 2 == 0 ? 'even' : 'odd'}}" /></block>
扩展运算符 …
<template is="objectCombine" data="{{...obj1, ...obj2, e: 5}}"></template>Page({data: {obj1: {a: 1,b: 2},obj2: {c: 3,d: 4}}})
间接表达
<template is="objectCombine" data="{{foo, bar}}"></template>Page({data: {foo: 'my-foo',bar: 'my-bar'}})
<template is="objectCombine" data="{{...obj1, ...obj2, a, c: 6}}"></template>Page({data: {obj1: {a: 1,b: 2},obj2: {b: 3,c: 4},a: 5}})
11、运算
三元运算
<viewhidden="{{flag ? true : false}}">Hidden</view>算数运算
<view>{{a + b}} + {{c}} + d</view>Page({data: {a: 1,b: 2,c: 3}})
逻辑判断
<viewwx:if="{{length > 5}}"></view>字符串运算
<view>{{"hello" + name}}</view>Page({data: {name: 'MINA'}})
数据路径运算
<view>{{object.key}} {{array}}</view>Page({data: {object: {key: 'Hello '},array:}})
12、组合
<viewwx:for="{{}}">{{item}}</view><viewwx:for="{{}} ">{{item}}</view>等同于<viewwx:for="{{ + ' '}}">{{item}}</view>
13、引用
<!-- item.wxml --><templatename="item"><text>{{text}}</text></template>
在 index.wxml 中引用了 item.wxml,就可以使用item模板:
<import src="item.wxml" /><template is="item" data="{{text: 'forbar'}}" />
import 的作用域
C import B,B import A,在C中可以使用B定义的template,在B中可以使用A定义的template,但是C不能使用A定义的template。
include
include可以将目标文件除了 <template/> <wxs/> 外的整个代码引入,相当于是拷贝到 include 位置,如:
<!-- index.wxml --><includesrc="header.wxml" /><view>body</view><includesrc="footer.wxml" />
关注我,前端开发少走弯路、高效摸鱼~
如果你觉得文章内容有用,请记得点赞、收藏、转发。
夜雨聆风