微信小程序開發(五)wxml基本語法


 


本篇文章,帶大家來了解一下,wxml基本語法,與html相同的部分就不說了,默認你已掌握了,如果沒有掌握,那就先去學學,或者留言,我給你點資料。

wxml語法幫助文檔:https://developers.weixin.qq.com/miniprogram/dev/reference/wxml/

1.數據綁定

WXML 中的動態數據來自對應 Page 的 data設置,使用 Mustache 語法,即雙大括號模式

{{變量名}}

來個示例:在index.wxml鍵入如下代碼:

<view>{{test}}</view>

在index.js中鍵入如下代碼:

Page({
    data: {
        test: '老楊學堂'
    }
})

 

保存,即可在模擬器中看到顯示 老楊學堂 這幾個字,如圖示:

 

 

太簡單了是吧,只要格式寫對,括號沒有問題,那就沒有問題。

但這有何意義?在wxml頁面直接寫 “老楊學堂”幾個字不香嗎?為什么還要費用做數據綁定。這是因為,數據綁定技術,將js業務邏輯數據通過數據綁定顯示到wxml頁面,實現了動態數據,將來我們無論是網絡獲取的數據還是用戶輸入的數據,都將通過這種方式進行數據傳遞,實現動態交互。

數據綁定也可以是表達式

在index.wxml文件中鍵入

<view>{{age+10<30?'成家立業':'自由活動'}}</view>

在index.js文件中鍵入:

Page({
    data: {
        test: '老楊學堂',
        age:22
    }
})

 

在頁面顯示什么,自由活動。

其他的各位可以參考文檔自由測試一下。

補充一下,數據綁定可能會出現在標簽的多個位置,包括屬性值,樣式值等,為標簽的顯示渲染提供了多種可能性,為wxml頁面靈活控制提供了有力支持。

2.wx:if條件渲染

在wxml頁面用到條件語句來控制組件顯示時,需要用到wx:if語句,

格式是:

wx:if="{{邏輯語句}}"

示例:

<view wx:if="{{age>18}}">
    成人
</view>
<view wx:elif="{{age<12}}">
    兒童
</view>
<view wx:else>
    青少年
</view>

還可以做另外一種寫法,需要用到< block>標簽,block標簽本身並無實際意義,最終不會在頁面留下任何東西,只是為了包裝控制語句

<block wx:if="{{age>18}}">
    <view>
        成人
    </view>
</block>
<block wx:elif="{{age<12}}">
    <view>
        兒童
    </view>
    </block>
<block wx:else>
    <view>
        青少年
    </view>
</block>

以上種寫法完全一樣,你喜歡哪種寫法呢?

3.wx:for列表渲染

列表展示是目前各種移動應用必備布局,需要熟練掌握應用

首先准備一下列表數據,即數組數據,在index.js頁面,data節內進行如下配置

Page({
    data: {
        test: '老楊學堂',
        age: 1,
        items: [{ text: 'red', color: '#f00' },
            { text: 'green', color: '#0f0' },
            { text: 'blue', color: '#00f' }
        ]
    }
})
在index.wxml頁面進行展示,代碼如下:
<block wx:for="{{items}}" wx:key="*this">
    <view style="color:{{item.color}}">
        {{item.text}}
    </view>
</block>

展示效果如圖:

 

 簡單解釋一下:

wxml頁面中的wx:for="{{items}}",items要與page中的items鍵對應,當然,你也可以用別的名字

item 代表是for循環中的每一項,這個不能換,如果要換成別的名字,必須顯示指定。

wx:key是指定列表中項目的唯一的標識符,通常用*this表示,代表當前循環對象。

我們再來看,指定循環對象的名字和索引怎么做

在index.wxml頁面代碼如下:

<block wx:for="{{items}}" wx:key="*this" wx:for-item="style" wx:for-index="myIndex">
    <view style="color:{{style.color}}">
        {{myIndex+","+style.text}}
    </view>
</block>

展示效果如圖:

 

 OK,這篇文章就到這了,有問題,請留言!

關注我,你會獲得更好的學習體驗!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM