微信小程序開發(fā)入門:2.5 自定義組件姥芥,2.6 插件兔乞,2.7 分包加載,2.8 多線程Worker凉唐,2.9 基礎(chǔ)庫庸追,2.10 兼容,2.11 運(yùn)行機(jī)制台囱,2.12 性能

2.5 自定義組件

從小程序基礎(chǔ)庫版本 1.6.3 開始淡溯,小程序支持簡潔的組件化編程。所有自定義組件相關(guān)特性都需要基礎(chǔ)庫版本 1.6.3或更高玄坦。

開發(fā)者可以將頁面內(nèi)的功能模塊抽象成自定義組件血筑,以便在不同的頁面中重復(fù)使用绘沉;也可以將復(fù)雜的頁面拆分成多個低耦合的模塊煎楣,有助于代碼維護(hù)。自定義組件在使用時與基礎(chǔ)組件非常相似车伞。

2.6 插件

插件的開發(fā)和使用自小程序基礎(chǔ)庫版本 1.9.6 開始支持择懂。

插件是對一組 js 接口或自定義組件的封裝,用于提供給第三方小程序調(diào)用另玖。插件必須嵌入在其他小程序中才能被用戶使用困曙。

插件開發(fā)者可以像開發(fā)小程序一樣編寫一個插件并上傳代碼表伦,在插件發(fā)布之后,其他小程序方可調(diào)用慷丽。小程序平臺會托管插件代碼蹦哼,其他小程序調(diào)用時,上傳的插件代碼會隨小程序一起下載運(yùn)行要糊。

相對于普通 js 文件或自定義組件纲熏,插件擁有更強(qiáng)的獨(dú)立性,擁有獨(dú)立的 API 接口锄俄、域名列表等局劲,但同時會受到一些限制,如一些 API 無法調(diào)用或功能受限奶赠。

對于插件開發(fā)者鱼填,請閱讀開發(fā)插件章節(jié);對于插件使用者毅戈,請閱讀使用插件章節(jié)苹丸。

2.7 分包加載

某些情況下,開發(fā)者需要將小程序劃分成不同的子包苇经,在構(gòu)建時打包成不同的分包谈跛,用戶在使用時按需進(jìn)行加載。

在構(gòu)建小程序分包項(xiàng)目時塑陵,構(gòu)建會輸出一個或多個功能的分包感憾,其中每個分包小程序必定含有一個主包,所謂的主包令花,即放置默認(rèn)啟動頁面/TabBar 頁面阻桅,以及一些所有分包都需用到公共資源/JS 腳本,而分包則是根據(jù)開發(fā)者的配置進(jìn)行劃分兼都。

在小程序啟動時嫂沉,默認(rèn)會下載主包并啟動主包內(nèi)頁面,如果用戶需要打開分包內(nèi)某個頁面扮碧,客戶端會把對應(yīng)分包下載下來趟章,下載完成后再進(jìn)行展示。

目前小程序分包大小有以下限制:

  • 整個小程序所有分包大小不超過 4M

  • 單個分包/主包大小不能超過 2M

對小程序進(jìn)行分包慎王,可以優(yōu)化小程序首次啟動的下載時間蚓土,以及在多團(tuán)隊(duì)共同開發(fā)時可以更好的解耦協(xié)作。

2.8 多線程Worker

一些異步處理的任務(wù)赖淤,可以放置于 Worker 中運(yùn)行蜀漆,待運(yùn)行結(jié)束后,再把結(jié)果返回到小程序主線程咱旱。Worker 運(yùn)行于一個單獨(dú)的全局上下文與線程中确丢,不能直接調(diào)用主線程的方法绷耍。 Worker 與主線程之間的數(shù)據(jù)傳輸,雙方使用 Worker.postMessage() 來發(fā)送數(shù)據(jù)鲜侥,Worker.onMessage() 來接收數(shù)據(jù)褂始,傳輸?shù)臄?shù)據(jù)并不是直接共享,而是被復(fù)制的描函。

2.9 基礎(chǔ)庫

小程序的能力需要微信客戶端來支撐病袄,每一個基礎(chǔ)庫都只能在對應(yīng)的客戶端版本上運(yùn)行,高版本的基礎(chǔ)庫無法兼容低版本的微信客戶端赘阀。

為了避免新版本的基礎(chǔ)庫給線上小程序帶來未知的影響益缠,微信客戶端都是攜帶 上一個穩(wěn)定版 的基礎(chǔ)庫發(fā)布的。

在新版本客戶端發(fā)布后基公,再通過后臺灰度新版本基礎(chǔ)庫幅慌,灰度時長一般為 12 小時,在灰度結(jié)束后轰豆,用戶設(shè)備上才會有新版本的基礎(chǔ)庫胰伍。

2.10 兼容

小程序的功能不斷的增加,但是舊版本的微信客戶端并不支持新功能酸休,所以在使用這些新能力的時候需要做兼容骂租。

文檔會在組件,API等頁面描述中帶上各個功能所支持的版本號斑司。

可以通過 wx.getSystemInfo 或者 wx.getSystemInfoSync 獲取到小程序的基礎(chǔ)庫版本號渗饮。

也可以通過 wx.canIUse 詳情 來判斷是否可以在該基礎(chǔ)庫版本下直接使用對應(yīng)的API或者組件

2.11 運(yùn)行機(jī)制

小程序啟動會有兩種情況,一種是「冷啟動」宿刮,一種是「熱啟動」互站。 假如用戶已經(jīng)打開過某小程序,然后在一定時間內(nèi)再次打開該小程序僵缺,此時無需重新啟動胡桃,只需將后臺態(tài)的小程序切換到前臺,這個過程就是熱啟動磕潮;冷啟動指的是用戶首次打開或小程序被微信主動銷毀后再次打開的情況翠胰,此時小程序需要重新加載啟動。

1自脯、更新機(jī)制

小程序冷啟動時如果發(fā)現(xiàn)有新版本之景,將會異步下載新版本的代碼包,并同時用客戶端本地的包進(jìn)行啟動冤今,即新版本的小程序需要等下一次冷啟動才會應(yīng)用上闺兢。 如果需要馬上應(yīng)用最新版本茂缚,可以使用 wx.getUpdateManager API 進(jìn)行處理戏罢。

2屋谭、運(yùn)行機(jī)制

  • 小程序沒有重啟的概念

  • 當(dāng)小程序進(jìn)入后臺,客戶端會維持一段時間的運(yùn)行狀態(tài)龟糕,超過一定時間后(目前是5分鐘)會被微信主動銷毀

  • 當(dāng)短時間內(nèi)(5s)連續(xù)兩次以上收到系統(tǒng)內(nèi)存告警桐磁,會進(jìn)行小程序的銷毀

3、再次打開邏輯

2.12 性能

2.12.1 分析工具

1讲岁、性能Trace 工具

2我擂、性能面板

2.12.2 優(yōu)化建議

1、setData

2缓艳、圖片資源

  • 圖片對內(nèi)存的影響

  • 圖片對頁面切換的影響

3校摩、代碼包大小的優(yōu)化

控制代碼包內(nèi)圖片資源

及時清理沒有使用到的代碼和資源


參考資料:https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市阶淘,隨后出現(xiàn)的幾起案子衙吩,更是在濱河造成了極大的恐慌,老刑警劉巖溪窒,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件坤塞,死亡現(xiàn)場離奇詭異,居然都是意外死亡澈蚌,警方通過查閱死者的電腦和手機(jī)摹芙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宛瞄,“玉大人浮禾,你說我怎么就攤上這事》莺梗” “怎么了伐厌?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長裸影。 經(jīng)常有香客問我挣轨,道長,這世上最難降的妖魔是什么轩猩? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任卷扮,我火速辦了婚禮,結(jié)果婚禮上均践,老公的妹妹穿的比我還像新娘晤锹。我一直安慰自己,他們只是感情好彤委,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布鞭铆。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪车遂。 梳的紋絲不亂的頭發(fā)上封断,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天,我揣著相機(jī)與錄音舶担,去河邊找鬼坡疼。 笑死,一個胖子當(dāng)著我的面吹牛衣陶,可吹牛的內(nèi)容都是我干的柄瑰。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼剪况,長吁一口氣:“原來是場噩夢啊……” “哼教沾!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起译断,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤详囤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后镐作,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體藏姐,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年该贾,在試婚紗的時候發(fā)現(xiàn)自己被綠了羔杨。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡杨蛋,死狀恐怖兜材,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情逞力,我是刑警寧澤曙寡,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站寇荧,受9級特大地震影響举庶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜揩抡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一户侥、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧峦嗤,春花似錦蕊唐、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春副瀑,著一層夾襖步出監(jiān)牢的瞬間弓熏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工俗扇, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留硝烂,地道東北人箕别。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓铜幽,卻偏偏與公主長得像,于是被迫代替她去往敵國和親串稀。 傳聞我的和親對象是個殘疾皇子除抛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容