微信小程式WXML頁面常用語法(講解+示例)
阿新 • • 發佈:2020-08-16
![](http://image.ideal-20.cn/weixin-mini/19-01-02-000.png)
# (一) WXML 是什麼
官方說明:WXML(WeiXin Markup Language)是框架設計的一套標籤語言,結合基礎元件、事件系統,可以構建出頁面的結構
在前面我們就已經提過,WXML,就可以理解為我們傳統頁面中的HTML,它是微信為我們提供的一套標籤語言,可以說它就是我們小程式的臉面(雖然沒經過CSS裝飾前不一定光鮮亮麗),開發中 WXML 頁面就作為我們一些邏輯行為的入口,以及效果展示的承載者。
再大白話一點:你所看到的小程式頁面長什麼樣(不涉及背後做了什麼行為,只說表面),就是 WXML(主要) + WXSS (美化) 實現的
這一篇,我們主要涉及到的是 WXML 中例如資料繫結、或者運算等等,但是學習之前,很顯然,我們需要認識幾個常見的標籤,後面我們會總結一些常用的標籤,下面會用到的有:
`` 、`` ` 還有一些標籤,大家去看官網文件就可以了,寫的非常清楚,我們這裡重點還是說一下關於其中的一些標籤語法問題
官網——WXML語法文件
`https://developers.weixin.qq.com/miniprogram/dev/reference/wxml/`
官網——元件文件
`https://developers.weixin.qq.com/miniprogram/dev/component/`
```html
```
看一下效果
![](http://image.ideal-20.cn/weixin-mini/19-01-02-001.png)
# (二) 資料繫結
雖然還不涉及到什麼頁面的美化,以及複雜的標籤,不過一個極為簡單的靜態頁面現在已經可以構造出來了,歸根結底,我們最後都是要進行前後臺數據的互動的,而微信小程式就為我們提供了很多很好用的用法,能很快的進行資料的繫結操作
有一個前提條件,我們先模擬一些資料,我們只需要在頁面的 **js 檔案中的 data物件**中定義小程式初始化的資料,例如下面程式碼,我們隨便拿一些常見的資料型別來模擬一下
```js
Page({
/**
* 頁面的初始資料
*/
data: {
msg: "你好,微信小程式",
status: 100,
isLogin: true,
person:{
name: "張三",
age: 22,
profession: "student"
},
isChecked: true
},
})
```
## (1) 常見型別普通寫法
如何在 WXML 標籤元件中進行資料的繫結其實是非常簡單的,微信小程式中通過 `{{}}` 來解析剛才在 JS 中模擬的變數
要注意:直接通過 `{{}}` 解析的變數都是 頁面 js 檔案中 Page --> data 下的
### A:字串
字串內容直接用兩個大括號括住接收就可以了,在上面我們有這樣的定義:
`msg: "你好,微信小程式",` 所以直接括住 msg 就可以獲取到後面的值了
```html
```
### B:數值
數值也是一樣直接可以獲取
```html
```
### C:布林型別
布林型別第一個程式碼是直接打印出其布林型別 true 或者 false
```html
```
而下面配合 checkbox 就可以實現是否選中的效果
```html
```
### D:物件
物件這塊如果你直接列印 person 就會輸出一個 Object 型別,所以如果想要拿到物件的屬性值,一定要指定到具體的屬性
```html
```
看一下上述所有的繫結效果
![](http://image.ideal-20.cn/weixin-mini/19-01-02-002.png)
## (2) 元件屬性中
例如我們 view 元件的 id 值字首是固定的 `user-` 後面就是使用者的序號,這時候就可以通過變數來進行巧妙的解析到屬性中了
注:不要輕易的亂加空格,否則可能會讀取失敗例如: ``
```html
```
看一下 Wxml 的原始碼 id 這個屬性中已經進行了拼接,這種方式同樣還會常用在 class 或者 style 中,配合三元執行能不錯的實現一些需求,下面我們會提到
![](http://image.ideal-20.cn/weixin-mini/19-01-02-003.png)
# (三) 運算
首先我們依舊定義一些資料,三個整數,和兩個字串
```js
Page({
data: {
a: 11,
b: 22,
c: 33,
msg: "姓名",
name: "張三"
},
})
```
## (1) 算數運算
直接在 `{{}}` 中進行 加減乘除等的運算,直接就可以得到結算的結果,例如:
```html
```
## (2) 字串運算
如果是字串型別的資料,利用 `+` 進行運算,結果是一個拼接的效果
```html
```
## (3) 邏輯判斷
這個就是常見的 if 判斷,例如使用 `wx:if` 這個屬性,那麼就只有在後面的表示式為 true 的情況下才會顯示文字 a 大於 0
```html
```
## (4) 三元運算
三元運算的應用場景還是很多的(等式 ? : true情況,false的情況)
```html
```
三元補充:
通過在屬性中解析變數的方式,可以達到根據變數的值,來指定不同的 class名,以顯示不同的樣式
例如我們的 css 樣式是這樣的,iconfont 是我們共用的,所以直接寫在屬性中就可以了,而究竟是用 icon-back 還是 icon-remove 就可以通過一個變數來操縱,例如我們下面的 isClick 就是在 js 裡 data 中定義的一個 布林型別的變數
```css
.iconfont {......}
.icon-back:before {......}
.icon-remove:before {......}
```
當 isClick 為 true 就執行 class 就是這樣的 `class="iconfont icon-remove"` 為 false 就是用另一個,我們就可以通過 控制變數值來進行不同的顯示