小程序頁面onload(),onready()加載順序詳解
小程序
- onLoad(Object query) 頁面加載時觸發(fā)。一個頁面只會調用一次,可以在 onLoad
- 的參數中獲取打開當前頁面路徑中的參數。
- onShow() 頁面顯示/切入前臺時觸發(fā)。
- onReady() 頁面初次渲染完成時觸發(fā)。一個頁面只會調用一次,代表頁面已經準備妥當,可以和視圖層進行交互。
所以加載順序是先加載onLoad,再是onShow,最后onReady
原生JS
- document.ready 表示文檔結構加載完成(不包含圖片等非文字媒體文件);ready如果定義多個,都會按渲染順序執(zhí)行。
- window.onload 包含圖片等在內的所有元素都加載完成。但是,onload不管定義多少個,只執(zhí)行一個(最后一個)
所以加載順序是先加載ready,后onload,正好和小程序相反
Jquery
( d o c u m e n t ) . r e a d y ( f u n c t i o n ( ) ) , 簡 寫 (document).ready(function(){}),簡寫(document).ready(function()),簡寫(function(){});組件生命周期
?Component({ ? ? ? ? properties:{ ? ? ? ? ? ? innerText:{ ? ? ? ? ? ? ? ? type:String ? ? ? ? ? ? } ? ? ? ? }, ? ? ? ? data:{ ? ? ? ? }, ? ? ? ? methods:{ ? ? ? ? }, ? ? ? ? created:function(){ ? ? ? ? ? ? // 組件生命周期函數,在組件實例進入頁面節(jié)點樹時執(zhí)行,注意此時不能調用setData ? ? ? ? ? ? console.log('Component-1 >> created'); ? ? ? ? }, ? ? ? ? attached:function(){ ? ? ? ? ? ? // 組件生命周期函數,在組件實例進入頁面節(jié)點樹時執(zhí)行。 ? ? ? ? ? ? console.log('Component-1 >> attached'); ? ? ? ? }, ? ? ? ? ready:function(){ ? ? ? ? ? ? // 在組件布局完成后執(zhí)行,此時可以獲取節(jié)點信息 ? ? ? ? ? ? console.log('Component-1 >> ready'); ? ? ? ? }, ? ? ? ? moved:function(){ ? ? ? ? ? ? // 在組件實例被移動到節(jié)點樹另一個位置時執(zhí)行 ? ? ? ? ? ? console.log('Component-1 >> moved'); ? ? ? ? }, ? ? ? ? detached:function(){ ? ? ? ? ? ? // 在組件實例被從頁面節(jié)點樹移除時執(zhí)行 ? ? ? ? ? ? console.log('Component-1 >> detached'); ? ? ? ? }, ? ? ? ? lifetimes:{ ? ? ? ? ? ? // 組件生命周期聲明對象,將組件的生命周期收歸到該字段進行聲明,原有聲明方式仍舊有效,如同時存在兩種聲明方式,則lifetimes字段內聲明方式優(yōu)先級最高 ? ? ? ? ? ? created:function(){ ? ? ? ? ? ? ? ? console.log('Component-1 lifetimes >> created'); ? ? ? ? ? ? }, ? ? ? ? ? ? attached:function(){ ? ? ? ? ? ? ? ? console.log('Component-1 lifetimes >> attached'); ? ? ? ? ? ? }, ? ? ? ? ? ? ready:function(){ ? ? ? ? ? ? ? ? console.log('Component-1 lifetimes >> ready'); ? ? ? ? ? ? }, ? ? ? ? ? ? moved:function(){ ? ? ? ? ? ? ? ? console.log('Component-1 lifetimes >> moved'); ? ? ? ? ? ? }, ? ? ? ? ? ? detached:function(){ ? ? ? ? ? ? ? ? console.log('Component-1 lifetimes >> detached'); ? ? ? ? ? ? } ? ? ? ? }, ? ? ? ? pageLifetimes:{ ? ? ? ? ? ? // 組件所在頁面的生命周期聲明對象,目前僅支持頁面的show和hide兩個生命周期 ? ? ? ? ? ? show:function(){ ? ? ? ? ? ? ? ? console.log('Component-1 pageLifetimes >> Show'); ? ? ? ? ? ? }, ? ? ? ? ? ? hide:function(){ ? ? ? ? ? ? ? ? console.log('Component-1 pageLifetimes >> Hide'); ? ? ? ? ? ? } ? ? ? ? } ? ? })
可以看到組件中只執(zhí)行了lifetimes中的生命周期函數,外層的生命周期函數并沒有執(zhí)行。而且可以看到先執(zhí)行組件的created/attached函數,隨后執(zhí)行頁面的onLoad/onShow,再執(zhí)行組件的ready,最后執(zhí)行頁面的onReady,這是頁面中引入組件時組件的生命周期函數執(zhí)行順序。
現行玩所有組件的created,再執(zhí)行所有組件的attached,然后執(zhí)行頁面的onLoad和onShow,再執(zhí)行所有組件的ready,最后執(zhí)行頁面的onReady。當頁面被卸載時,先執(zhí)行頁面的onUnload,再執(zhí)行組件的detached。頁面不卸載,不會觸發(fā)組件的detached
到此這篇關于小程序頁面onload(),onready()加載順序詳解的文章就介紹到這了,更多相關小程序onload(),onready()加載順序內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
JavaScript函數中的防抖與節(jié)流原生實現及第三方庫的使用
當你頻繁的觸發(fā)用戶界面時,會不停的觸發(fā)事件處理函數,可能導致界面卡頓,瀏覽器奔潰,頁面空白等情況,而解決這一問題的,正是函數節(jié)流與函數防抖,所以本文將給大家介紹一下JavaScript函數中的防抖與節(jié)流原生實現及第三方庫的使用,需要的朋友可以參考下2023-10-10