日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

開發(fā) | 一篇文章讀懂微信小程序視圖層

 小五zlsmeex53x 2017-03-24

文 | HustWolf

小程序的視圖層,分為 WXML、WXSS 和基礎(chǔ)組件。今天,我們就來詳細(xì)解析 WXML 和 WXSS。

WXML
WXML(WeiXin Markup Language)是為小程序 MINA 框架設(shè)計的語言,它結(jié)合基礎(chǔ)組件、事件系統(tǒng),可以構(gòu)建出頁面的結(jié)構(gòu)。
說的通俗一點(diǎn),WXML 有點(diǎn)類似 HTML,相當(dāng)于一個最后的收尾的設(shè)計師。它可以告訴你,這個地方要有個圖片,然后這個圖片的地址是什么;然后告訴你這兒有個按鈕,這個按鈕控制什么的開關(guān)。
這么一說,我還覺得做小程序就像蓋房子,有人負(fù)責(zé)給房子打通各種通道(JavaScript)、有人負(fù)責(zé)給房子規(guī)定布局(JSON、WXSS)、還有的就是接通各個地方的線路的人(WXML)。
萬事萬物,都有其相似之處啊。
WXML 有以下的功能:
1. 數(shù)據(jù)綁定
它的意思是在視圖上規(guī)定動態(tài)變量,并在 JavaScript 腳本中進(jìn)行定義它。在這個例子中,數(shù)據(jù)來源是 JS 文件里面的 motto 變量,至于樣式,則是 user-motto 的。
同時,在相應(yīng)的 JS 文件中,定義了一個變量 motto
最后在 WXSS 里,為它寫個樣式,動態(tài)的數(shù)據(jù)就能展示在視圖上了。
網(wǎng)頁設(shè)計師看到這兒,也許會覺得似曾相識。沒錯,微信小程序中的 WXSS 文件,與 CSS 非常類似;而小程序的開發(fā)語言,就是照搬了 HTML+CSS+Javascript 的樣子。
2. 列表渲染
先在相應(yīng)的 JavaScript 中,定義一個列表變量,然后在 WXML 中,我們可以使用 wx:for 來引用它。
由于不能在原本的 data 里面定義一個 array 變量,所以我定義了一個新的 data,并把 motto 放進(jìn)去。
我們先定義一個列表變量:
然后在 WXML 中,將某個視圖連接到相應(yīng)列表變量中:
利用這些,我們可以制作一個九九乘法表。
3. 條件渲染
在小程序中,我們可以使用 wx:if 來設(shè)定渲染判斷條件。如果符合,則渲染某一部分內(nèi)容。使用這個函數(shù),與其他語言中使用 if 函數(shù)來 print 東西一樣。
首先在 WXML 中定義 if 判斷條件:
然后,在相應(yīng)的腳本代碼里,定義你所需要的一些變量:



之后,視圖層就會根據(jù)條件,選擇渲染的部分了。

4. 模板

模板的意思是,在 WXML 中,引用相同或類似的部分。一個模板需要在 WXML 中定義和使用,引用 JS 數(shù)據(jù),然后展示給用戶。
5. 事件
事件是視圖層到邏輯層的通訊方式,它可以將用戶的行為反饋到邏輯層進(jìn)行處理。
事件可以綁定在組件上,當(dāng)達(dá)到觸發(fā)事件,就會執(zhí)行邏輯層中對應(yīng)的事件處理函數(shù)。事件對象可以攜帶額外信息,如 id、dataset、touches
在 WXML 中建立一個事件,當(dāng)于其他編程語言中使用函數(shù)的過程。原文中建立的是一個 view,我覺得這種需要輸入的地方還是采用一個 button 按鈕比較好。
首先,在 WXML 中定義需要觸發(fā)事件的元素:
在 JS 腳本文件文件里面寫入方法(函數(shù)),并且綁定其中某個數(shù)據(jù):
6. 引用
WXML 提供兩種文件引用方式,分別是 importinclude
import 可以在該文件中使用目標(biāo)文件定義的 template。
例如,我們可以在 item.wxml 中定義了一個叫 itemtemplate,并在 index.wxml 中引用了 item.wxml,那么就可以在 index.wxml 中,使用 item 模板。

include 可以將目標(biāo)文件除了 的整個代碼引入,相當(dāng)于是拷貝到 include 位置。例如:

WXSS
WXSS(WeiXin Style Sheets)是小程序的樣式語言,用于描述 WXML 的組件樣式。
WXSS 用來決定 WXML 的組件應(yīng)該怎么顯示。簡單來說,就是告訴瀏覽器,這個地方的這個東西長啥樣、比如字體多大、背景顏色是啥,是純粹的樣式文件。
就好比是裝修的師傅,不管你的房子結(jié)構(gòu)布局如何,反正給你粉刷一遍。這會讓你的房子大變樣,但是沒有改變?nèi)魏文愕脑懈窬帧?/section>
為了適應(yīng)廣大的前端開發(fā)者, WXSS 具有 CSS 大部分特性。 同時為了更適合開發(fā)微信小程序,對 CSS 進(jìn)行了擴(kuò)充以及修改。
與 CSS 相比,WXSS 擴(kuò)展的特性有「尺寸單位」和「樣式導(dǎo)入」兩項(xiàng)。
1. 尺寸單位
rpx(responsive pixel)是一個可以根據(jù)屏幕寬度進(jìn)行自適應(yīng)的單位,它將屏幕寬度規(guī)定為 750 rpx。
如在 iPhone6 上,屏幕寬度為 375 px,共有 750 個物理像素,則 750 rpx = 375 px = 750 物理像素,1 rpx = 0.5 px = 1 物理像素。
就是說,不管你的屏幕多大,寬度都是 750 個 rpx。這是一種絕對的大小,至于具體的每個 rpx 有多大,那就要根據(jù)你的手機(jī)具體尺寸來算。
這樣一個好處就是,我可以直接的指定一個部件出現(xiàn)在哪個位置,而不用管你的手機(jī)是什么樣子,確保了最好的視覺體驗(yàn),至于 1 rpx 等于多少像素,那就要按照你的手機(jī)實(shí)際尺寸來算了。
以 iPhone 為標(biāo)準(zhǔn)的換算方式如下:
本文由知曉程序授權(quán)轉(zhuǎn)載,關(guān)注微信號 zxcx0101,在知曉程序后臺回復(fù)「1228」獲得全網(wǎng)第一本《小程序入門指南》電子書。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多