微信小程序骨架屏的應(yīng)用與實(shí)現(xiàn)步驟詳細(xì)記錄
什么是骨架屏
骨架屏是作為一種首次渲染加載優(yōu)化的一種方法
我們打開一個(gè)應(yīng)用后,應(yīng)用會(huì)通過ajax來請(qǐng)求數(shù)據(jù),而在這段空缺的時(shí)間,沒有數(shù)據(jù),內(nèi)容缺失,這對(duì)于用戶的感覺很不好,所以我們需要在這個(gè)時(shí)間段內(nèi)通過骨架屏來填充這個(gè)空缺。
如上圖所示,一個(gè)是沒有內(nèi)容,一個(gè)是骨架屏的填充,所以在加載的這一秒內(nèi)給用戶以骨架屏形式的填充是很有必要的。
小程序骨架屏的實(shí)現(xiàn)
1. 生成頁面骨架
微信小程序開發(fā)者工具提供了生成骨架屏的工具,所以我們可以快速高效得實(shí)現(xiàn)加載骨架屏
點(diǎn)擊三個(gè)點(diǎn),生成骨架屏,即可在對(duì)應(yīng)page文件下生成兩個(gè)文件,文件中包括了骨架屏的使用方式。
2. 骨架屏的應(yīng)用
工具生成的骨架屏文件中包含了使用方式,下面我拿person目錄舉例。
- 在person.wxml的頭部加入下面的代碼(該代碼在生成的文件中的注釋有提示)
<import src="person.skeleton.wxml"/> <template is="skeleton" wx:if="{{loading}}" />
- 在person.wxss的頭部引入下面的代碼,當(dāng)然在生成的文件注釋里也有相關(guān)提示
@import "./person.skeleton.wxss";
- 在請(qǐng)求的回調(diào)函數(shù)中進(jìn)行骨架屏的控制
var set = setInterval(function () { clearInterval(set); that.setData({ loading: false, //停止骨架屏 }) }, 1000)
3. 使用注意
- 頁面更改后可以骨架屏隨時(shí)更新,隨時(shí)替換,很方便。
- 在使用的過程中經(jīng)常會(huì)遇到元素被提前加載出的情況所以我們需要為真實(shí)的頁面元素使用
wx:if
來和骨架屏進(jìn)行反向操作,可以避免元素加載后出現(xiàn)與骨架屏重疊的現(xiàn)象。<template is="skeleton" wx:if="{{loading}}" /> <Header customTitle="個(gè)人中心"></Header> <view class="head" wx:if="{{!isLogin&&!loading}}" bindtap="login"> <image src="../../images/{{season}}-people.png" class="head-img"></image> <view class="head-name">點(diǎn)擊登錄</view> </view>
4. 思考后的封裝
骨架屏加載函數(shù),我們每個(gè)頁面都需要進(jìn)行調(diào)用,在我寫完一座xx山后意思到了這件事情,出現(xiàn)了這種情況
好了,我們改過自新
- 在utils文件下封裝一個(gè)骨架屏加載方法
const loadScreen = (that,time) => { var set = setInterval(function () { clearInterval(set); that.setData({ loading: false, //停止骨架屏 hidden:false }) }, time) }
- 在使用頁面引入
let util = require('../../utils/util.js')
- 直接調(diào)用
let that =this; util.loadScreen(that,1500)
總結(jié)
到此這篇關(guān)于微信小程序骨架屏的應(yīng)用與實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)微信小程序骨架屏實(shí)現(xiàn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于JavaScript實(shí)現(xiàn)全選、不選和反選效果
這篇文章主要為大家詳細(xì)介紹了基于JavaScript實(shí)現(xiàn)全選、不選和反選效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02JS關(guān)閉窗口或JS關(guān)閉頁面的幾種代碼分享
這篇文章介紹了JS關(guān)閉窗口或JS關(guān)閉頁面的幾種代碼,有需要的朋友可以參考一下2013-10-10一步步教你利用Canvas對(duì)圖片進(jìn)行處理
這篇文章主要給大家介紹了關(guān)于利用Canvas對(duì)圖片進(jìn)行處理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09JavaScript onclick與addEventListener使用的區(qū)別介紹
addEventListener()方法用于向指定元素添加事件句柄,使用 removeEventListener()方法來移除,onclick和addEventListener事件區(qū)別是:onclick事件會(huì)被覆蓋,而addEventListener可以先后運(yùn)行不會(huì)被覆蓋,addEventListener可以監(jiān)聽多個(gè)事件2022-09-09js 巧妙去除數(shù)組中的重復(fù)項(xiàng)
最近, 我在看YAHOO.util.YUILoader類的源碼, 其中有個(gè)排除數(shù)組重復(fù)項(xiàng)的方法, 讓我覺得甚為巧妙, 這里分享下…2010-01-01Ionic2系列之使用DeepLinker實(shí)現(xiàn)指定頁面URL
這篇文章主要介紹了Ionic2系列之使用DeepLinker實(shí)現(xiàn)指定頁面URL的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-11-11ES6新增數(shù)據(jù)結(jié)構(gòu)WeakSet的用法詳解
WeakSet和Set類似,同樣是元素不重復(fù)的集合,它們的區(qū)別是WeakSet內(nèi)的元素必須是對(duì)象,不能是其它類型。接下來通過本文給大家詳細(xì)介紹ES6新增數(shù)據(jù)結(jié)構(gòu)WeakSet的用法,感興趣的朋友一起看看吧2017-08-08