來(lái)源:山东烈日网络科技有限公司 | 2020.08.27
内容主要(yào / yāo)涉及到(dào)小程序相關的(de)五個(gè)方面。
1、Text組件
2、單位(RPX)
3、生命周期
4、template模闆
5、播放器插件
逐一(yī / yì /yí)來(lái)看一(yī / yì /yí)下。
一(yī / yì /yí)、Text組件
小程序中view組件的(de)使用相當于(yú)就(jiù)是(shì)一(yī / yì /yí)個(gè)div标簽,而(ér)text組件相當于(yú)就(jiù)是(shì)一(yī / yì /yí)個(gè)文本标簽b/span這(zhè)樣子(zǐ),然而(ér),其實一(yī / yì /yí)段文字我們可以(yǐ)使用text組件來(lái)包裹,也(yě)可以(yǐ)不(bù)用text組件而(ér)直接使用view組件來(lái)包裹,那二者有什麽區别呢?
很明顯,小程序給TEXT組件賦予了(le/liǎo)特殊能力。而(ér)且使用TEXT組件包裹文件更容易控制它的(de)樣式。所以(yǐ),通過一(yī / yì /yí)些個(gè)對比和(hé / huò)測試,我對text組件的(de)認識就(jiù)是(shì)兩點:
1、用TEXT組件包裹的(de)内容好寫樣式,來(lái)控制它的(de)顯示UI。
2、在(zài)小程序中隻有TEXT包圍的(de)文本才可長按選中,這(zhè)一(yī / yì /yí)點小程序給text組件賦予了(le/liǎo)一(yī / yì /yí)個(gè)屬性。
二、單位RPX
談一(yī / yì /yí)下我對RPX這(zhè)個(gè)單位的(de)認識, 小程序特有的(de)一(yī / yì /yí)個(gè)單位。首先,小程序開發可以(yǐ)看成是(shì)一(yī / yì /yí)個(gè)移動web的(de)開發。 竟然是(shì)一(yī / yì /yí)個(gè)移動端的(de)開發,那麽我們就(jiù)應該用移動端的(de)思維去寫代碼,就(jiù)移動端有一(yī / yì /yí)些特殊的(de)特征需要(yào / yāo)我們去考慮,比如:
1、最重要(yào / yāo)的(de)!,如何在(zài)不(bù)同的(de)機型上(shàng)做适配。
2、模拟器ip6分辨率375和(hé / huò)設計稿750的(de)因爲(wéi / wèi)所以(yǐ)然關系。
這(zhè)張圖我已經在(zài)多個(gè)地(dì / de)方講過了(le/liǎo),通過這(zhè)張圖我們可以(yǐ)知道(dào),模拟器ip6的(de)375是(shì)一(yī / yì /yí)個(gè)邏輯分辨率的(de)概念,單位可以(yǐ)認爲(wéi / wèi)是(shì)PT,它和(hé / huò)我們日常布局中的(de)CSS像素在(zài)數值大(dà)小上(shàng)是(shì)同一(yī / yì /yí)個(gè)東西,而(ér)物理分辨率(如上(shàng)750*1334)才是(shì)設備真正分辨率的(de)概念,它和(hé / huò)前面說(shuō)的(de)邏輯像素數值上(shàng)有一(yī / yì /yí)個(gè)對應的(de)關系(Reader)。也(yě)就(jiù)是(shì)表示一(yī / yì /yí)個(gè)邏輯像素包含幾個(gè)物理像素問題。知道(dào)了(le/liǎo)這(zhè)些之(zhī)後,我們就(jiù)來(lái)看一(yī / yì /yí)下小程序序裏RPX那點事。
我們來(lái)看一(yī / yì /yí)下RPX的(de)作用,看它解決了(le/liǎo)一(yī / yì /yí)個(gè)什麽問題。
1、ip6下1px =1rpx=0.5pt
這(zhè)裏說(shuō)的(de)PX指的(de)是(shì)物理分辨率1px。這(zhè)個(gè)就(jiù)是(shì)小程序的(de)規定,以(yǐ)ip6的(de)物理像素750X1334爲(wéi / wèi)視覺稿進行設計,隻不(bù)過小程序定了(le/liǎo)個(gè)不(bù)一(yī / yì /yí)樣的(de)單位叫RPX(responsive
pixel)。然而(ér),使用RPX,小程序會自動在(zài)不(bù)同的(de)分辨率下進行轉換。從而(ér)達到(dào)适配的(de)效果。
小程序開發需要(yào / yāo)關注的(de)幾個(gè)知識點
可以(yǐ)理解:小程序中的(de)RPX相當于(yú)就(jiù)是(shì)移動端開發中PX/rem/em等單位用來(lái)表示視覺上(shàng)與設備分辨率上(shàng)的(de)一(yī / yì /yí)個(gè)邏輯關系 。
2、不(bù)是(shì)所有的(de)單位都适合用rpx。
RPX是(shì)會根據不(bù)同機型去做自适應調整的(de),而(ér)有時(shí)候我們不(bù)需要(yào / yāo)去做這(zhè)麽一(yī / yì /yí)個(gè)調整。
比如,對于(yú)一(yī / yì /yí)些個(gè)文字介紹,使用RPX後,小屏幕看起來(lái)就(jiù)完全不(bù)可控,顯示效果上(shàng)看着比較小,甚至出(chū)現看不(bù)清楚的(de)情況,還有一(yī / yì /yí)些标題的(de)情況,可能我們在(zài)任何機型上(shàng)想要(yào / yāo)看到(dào)的(de)就(jiù)是(shì)一(yī / yì /yí)個(gè)加粗定大(dà)的(de)效果。這(zhè)種情況下,其實我覺得我們還是(shì)可以(yǐ)使用PX作爲(wéi / wèi)單位來(lái)控制比較适合一(yī / yì /yí)些。
三、生命周期
小程序也(yě)有生命周期,其實整個(gè)開發流程和(hé / huò)前端框架React/vue等都類似,所以(yǐ),這(zhè)個(gè)我對比着來(lái)看一(yī / yì /yí)下小程序中的(de)生命同期的(de)概念。
對于(yú)那些對外暴露的(de)方法,onLoad/onShow/onReady都好理解。在(zài)頁面初始化數據的(de)處理方式上(shàng)有一(yī / yì /yí)點需要(yào / yāo)注意的(de)地(dì / de)方:
1、在(zài)React框架
實際上(shàng)跑完willmount之(zhī)後會産生render,然後在(zài)執行didmount,如果在(zài)didmount中如果有數據發生變化,使用setState處理變化後,再去執行render。
在(zài)willmount中我們可以(yǐ)使用this.state.xxx來(lái)初始化變量的(de)值。
2、小程序架構
然而(ér),在(zài)小程序的(de)生命周期内,我們是(shì)否可以(yǐ)在(zài)onLoad中使用this.data.xxx來(lái)初始化變量呢?
答案是(shì)不(bù)行的(de),可能之(zhī)前的(de)版本是(shì)可以(yǐ)的(de),查了(le/liǎo)一(yī / yì /yí)下小程序文檔。
四、template
WXML提供模闆(template),可以(yǐ)在(zài)模闆中定義代碼片段,然後在(zài)不(bù)同的(de)地(dì / de)方調用。
模闆的(de)使用非常簡單,文檔中的(de)說(shuō)的(de)很清楚,那麽關于(yú)這(zhè)個(gè)清楚的(de)描述,我對模闆有兩點認識:
1、區别于(yú)腳本引入可以(yǐ)使用絕對路徑
腳本的(de)引入是(shì)隻能使用相對地(dì / de)址的(de),而(ér)模闆的(de)引入可以(yǐ)使用絕對路徑。
2、模闆化不(bù)是(shì)模塊化
有沒有發現在(zài)模闆文件中其實少了(le/liǎo)一(yī / yì /yí)個(gè)文件,shipin-item-template.js,對,這(zhè)裏是(shì)不(bù)能加這(zhè)個(gè)腳本文件的(de),所以(yǐ)從業務角度上(shàng)來(lái)說(shuō),無法将邏輯單獨出(chū)來(lái)。因此,小程序時(shí)原模闆隻是(shì)一(yī / yì /yí)個(gè)模闆不(bù)是(shì)一(yī / yì /yí)個(gè)模塊。