微信小程序做骨架屏

1、網(wǎng)上找到一個(gè)大神的方案

https://github.com/jayZOU/skeleton
但是有幾個(gè)比較大的缺陷:
1、生成的骨架屏是一個(gè)整體,不能做到局部漸進(jìn)渲染替換涨享;
2、只能做出小的矩形和圓形的效果仆百,不能做出頁(yè)面樓層分離的效果厕隧,也就是還原不太漂亮(不過(guò)可以通過(guò)自己修改大神的代碼,逐步完善)儒旬;
3栏账、它是一個(gè)組件帖族,會(huì)在拿到頁(yè)面模板后才開(kāi)始生成骨架屏栈源,所以有很大的性能問(wèn)題,不能在一進(jìn)頁(yè)面就顯示出來(lái)竖般,數(shù)據(jù)請(qǐng)求很慢的情況下才會(huì)有比較好的作用和效果甚垦,不然根本看不到骨架屏??。
4涣雕、業(yè)務(wù)代碼侵入性較強(qiáng)艰亮,需要給業(yè)務(wù)代碼添加class區(qū)分是矩形還是圓形,(完美的最好是根據(jù)模板的標(biāo)簽和內(nèi)容節(jié)點(diǎn)來(lái)自動(dòng)判斷是什么形狀的陰影)挣郭;

2迄埃、后來(lái)無(wú)意中發(fā)現(xiàn)小程序開(kāi)發(fā)工具有一個(gè)生成骨架屏的功能

缺陷:
1、自動(dòng)化程度太低兑障;
2侄非、代碼增加小程序體積蕉汪;
3、對(duì)于一些節(jié)點(diǎn)的生成很不準(zhǔn)確逞怨,頁(yè)面骨架還原效果不咋地:


image.png
image.png

生成骨架屏的按鈕在這里:


image.png

最終先使用開(kāi)發(fā)工具生成 的方案吧者疤!

3、后續(xù)會(huì)研究如何做成一個(gè):非侵入式叠赦,漸進(jìn)渲染驹马,參考imageloader加載器,的骨架屏除秀。

參考文章:https://www.geek-share.com/detail/2776148638.html

4糯累、另附:你需要了解的前端骨架屏注入實(shí)踐

https://www.sohu.com/a/328224496_463987
通過(guò)這篇文章,可以了解:為什么要使用骨架屏鳞仙?骨架屏的幾種方案寇蚊?

5、總結(jié):

最棒的結(jié)果當(dāng)然是頁(yè)面有多個(gè)局部骨架棍好,漸進(jìn)式的渲染仗岸,并且頁(yè)面圖片能做到懶加載效果(微信小程序的image標(biāo)簽的lazy-load并不是我們期待的懶加載效果)

6、 后來(lái)發(fā)現(xiàn)了京東的骨架屏方案借笙,下文節(jié)選于:凹凸實(shí)驗(yàn)室:京喜小程序的高性能打造之路

一方面扒怖,我們可以從降低網(wǎng)絡(luò)請(qǐng)求時(shí)延、減少關(guān)鍵渲染的節(jié)點(diǎn)數(shù)這兩個(gè)角度出發(fā)业稼,縮短完成 FMP(首次有效繪制)的時(shí)間盗痒。另一方面,我們也需要從用戶(hù)感知的角度優(yōu)化加載體驗(yàn)低散。

“白屏” 的加載體驗(yàn)對(duì)于首次訪(fǎng)問(wèn)的用戶(hù)來(lái)說(shuō)是難以接受的俯邓,我們可以使用尺寸穩(wěn)定的骨架屏,來(lái)輔助實(shí)現(xiàn)真實(shí)模塊占位和瞬間加載熔号。

骨架屏目前在業(yè)界被廣泛應(yīng)用稽鞭,京喜首頁(yè)選擇使用灰色豆腐塊作為骨架屏的主元素,大致勾勒出各模塊主體內(nèi)容的樣式布局引镊。由于微信小程序不支持 SSR(服務(wù)端渲染)朦蕴,使動(dòng)態(tài)渲染骨架屏的方案難以實(shí)現(xiàn),因此京喜首頁(yè)的骨架屏是通過(guò) WXSS 樣式靜態(tài)渲染的弟头。

有趣的是吩抓,京喜首頁(yè)的骨架屏方案經(jīng)歷了 “統(tǒng)一管理”“(組件)獨(dú)立管理” 兩個(gè)階段。出于避免對(duì)組件的侵入性考慮赴恨,最初的骨架屏是由一個(gè)完整的骨架屏組件統(tǒng)一管理的:

<!-- index.wxml -->
<skeleton wx:if="{{isLoading}}"></skeleton>
<block wx:else>
  頁(yè)面主體
</block>

但這種做法的維護(hù)成本比較高疹娶,每次頁(yè)面主體模塊更新迭代,都需要在骨架屏組件中的對(duì)應(yīng)節(jié)點(diǎn)同步更新(譬如某個(gè)模塊的尺寸被調(diào)整)伦连。除此之外雨饺,感官上從骨架屏到真實(shí)模塊的切換是跳躍式的挣饥,這是因?yàn)楣羌芷两M件和頁(yè)面主體節(jié)點(diǎn)之間的關(guān)系是整體條件互斥的,只有當(dāng)頁(yè)面主體數(shù)據(jù) Ready(或渲染完畢)時(shí)才會(huì)把骨架屏組件銷(xiāo)毀沛膳,渲染(或展示)主體內(nèi)容扔枫。

為了使用戶(hù)感知體驗(yàn)更加絲滑,我們把骨架屏元素拆分放到各個(gè)業(yè)務(wù)組件中锹安,骨架屏元素的顯示/隱藏邏輯由業(yè)務(wù)組件內(nèi)部獨(dú)立管理短荐,這就可以輕松實(shí)現(xiàn) “誰(shuí)跑得快,誰(shuí)先出來(lái)” 的并行加載效果叹哭。除此之外忍宋,骨架屏元素與業(yè)務(wù)組件共用一套 WXML 節(jié)點(diǎn),且相關(guān)樣式由公共的 sass 模塊集中管理风罩,業(yè)務(wù)組件只需要在適當(dāng)?shù)墓?jié)點(diǎn)掛上 skeletonskeleton__block 樣式塊即可糠排,極大地降低了維護(hù)成本。

<!-- banner.wxml -->
<view class="{{isLoading ? 'banner--skeleton' : ''}}">
  <view class="banner_wrapper"></view>
</view>
// banner.scss
.banner--skeleton {
  @include skeleton;
  .banner_wrapper {
    @include skeleton__block;
  }
}

[圖片上傳失敗...(image-26fccc-1591845908496)]

上面的 gif 在壓縮過(guò)程有些小問(wèn)題超升,大家可以直接訪(fǎng)問(wèn)【京喜】小程序體驗(yàn)骨架屏效果入宦。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市室琢,隨后出現(xiàn)的幾起案子乾闰,更是在濱河造成了極大的恐慌,老刑警劉巖盈滴,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件涯肩,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡巢钓,警方通過(guò)查閱死者的電腦和手機(jī)病苗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)症汹,“玉大人硫朦,你說(shuō)我怎么就攤上這事×揖” “怎么了阵幸?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵花履,是天一觀的道長(zhǎng)芽世。 經(jīng)常有香客問(wèn)我,道長(zhǎng)诡壁,這世上最難降的妖魔是什么济瓢? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮妹卿,結(jié)果婚禮上旺矾,老公的妹妹穿的比我還像新娘蔑鹦。我一直安慰自己,他們只是感情好箕宙,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布嚎朽。 她就那樣靜靜地躺著,像睡著了一般柬帕。 火紅的嫁衣襯著肌膚如雪哟忍。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,792評(píng)論 1 290
  • 那天陷寝,我揣著相機(jī)與錄音锅很,去河邊找鬼。 笑死凤跑,一個(gè)胖子當(dāng)著我的面吹牛爆安,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播仔引,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼死宣,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了车吹?” 一聲冷哼從身側(cè)響起黎棠,我...
    開(kāi)封第一講書(shū)人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鲤看,沒(méi)想到半個(gè)月后缘揪,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡义桂,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年找筝,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片慷吊。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡袖裕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出溉瓶,到底是詐尸還是另有隱情急鳄,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布堰酿,位于F島的核電站疾宏,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏触创。R本人自食惡果不足惜坎藐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧岩馍,春花似錦碉咆、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至双谆,卻和暖如春块攒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背佃乘。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工囱井, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人趣避。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓庞呕,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親程帕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子住练,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348