1. 
          

          1. 新聞動(dòng)態(tài)

            微信小程序的生命周期函數有哪些?

            常見(jiàn)問(wèn)題 發(fā)布者:ou3377 2021-12-17 09:16 訪(fǎng)問(wèn)量:111

            圖片

            一、是什么

            vue、react框架一樣,微信小程序框架也存在生命周期,實(shí)質(zhì)也是一堆會(huì )在特定時(shí)期執行的函數

            小程序中,生命周期主要分成了三部分:

            • 應用的生命周期
            • 頁(yè)面的生命周期
            • 組件的生命周期

            應用的生命周期

            小程序的生命周期函數是在app.js里面調用的,通過(guò)App(Object)函數用來(lái)注冊一個(gè)小程序,指定其小程序的生命周期回調

            頁(yè)面的生命周期

            頁(yè)面生命周期函數就是當你每進(jìn)入/切換到一個(gè)新的頁(yè)面的時(shí)候,就會(huì )調用的生命周期函數,同樣通過(guò)App(Object)函數用來(lái)注冊一個(gè)頁(yè)面

            組件的生命周期

            組件的生命周期,指的是組件自身的一些函數,這些函數在特殊的時(shí)間點(diǎn)或遇到一些特殊的框架事件時(shí)被自動(dòng)觸發(fā),通過(guò)Component(Object)進(jìn)行注冊組件

            二、有哪些

            應用的生命周期

            生命周期說(shuō)明
            onLaunch小程序初始化完成時(shí)觸發(fā),全局只觸發(fā)一次
            onShow小程序啟動(dòng),或從后臺進(jìn)入前臺顯示時(shí)觸發(fā)
            onHide小程序從前臺進(jìn)入后臺時(shí)觸發(fā)
            onError小程序發(fā)生腳本錯誤或 API 調用報錯時(shí)觸發(fā)
            onPageNotFound小程序要打開(kāi)的頁(yè)面不存在時(shí)觸發(fā)
            onUnhandledRejection()小程序有未處理的 Promise 拒絕時(shí)觸發(fā)
            onThemeChange系統切換主題時(shí)觸發(fā)

            頁(yè)面的生命周期

            生命周期說(shuō)明作用
            onLoad生命周期回調—監聽(tīng)頁(yè)面加載發(fā)送請求獲取數據
            onShow生命周期回調—監聽(tīng)頁(yè)面顯示請求數據
            onReady生命周期回調—監聽(tīng)頁(yè)面初次渲染完成獲取頁(yè)面元素(少用)
            onHide生命周期回調—監聽(tīng)頁(yè)面隱藏終止任務(wù),如定時(shí)器或者播放音樂(lè )
            onUnload生命周期回調—監聽(tīng)頁(yè)面卸載終止任務(wù)

            組件的生命周期

            生命周期說(shuō)明
            created生命周期回調—監聽(tīng)頁(yè)面加載
            attached生命周期回調—監聽(tīng)頁(yè)面顯示
            ready生命周期回調—監聽(tīng)頁(yè)面初次渲染完成
            moved生命周期回調—監聽(tīng)頁(yè)面隱藏
            detached生命周期回調—監聽(tīng)頁(yè)面卸載
            error每當組件方法拋出錯誤時(shí)執行

            注意的是:

            • 組件實(shí)例剛剛被創(chuàng )建好時(shí), created 生命周期被觸發(fā),此時(shí),組件數據 this.data 就是在 Component  構造器中定義的數據 data , 此時(shí)不能調用 setData
            • 在組件完全初始化完畢、進(jìn)入頁(yè)面節點(diǎn)樹(shù)后, attached 生命周期被觸發(fā)。此時(shí), this.data 已被初始化為組件的當前值。這個(gè)生命周期很有用,絕大多數初始化工作可以在這個(gè)時(shí)機進(jìn)行
            • 在組件離開(kāi)頁(yè)面節點(diǎn)樹(shù)后, detached 生命周期被觸發(fā)。退出一個(gè)頁(yè)面時(shí),如果組件還在頁(yè)面節點(diǎn)樹(shù)中,則  detached 會(huì )被觸發(fā)

            還有一些特殊的生命周期,它們并非與組件有很強的關(guān)聯(lián),但有時(shí)組件需要獲知,以便組件內部處理,這樣的生命周期稱(chēng)為“組件所在頁(yè)面的生命周期”,在 pageLifetimes 定義段中定義,如下:

            生命周期說(shuō)明
            show組件所在的頁(yè)面被展示時(shí)執行
            hide組件所在的頁(yè)面被隱藏時(shí)執行

            代碼如下:

            Component({
              pageLifetimes: {
                showfunction({
                  // 頁(yè)面被展示
                },
                hidefunction({
                  // 頁(yè)面被隱藏
                },
              }
            })

            三、執行過(guò)程

            應?的?命周期執行過(guò)程:

            • ?戶(hù)?次打開(kāi)?程序,觸發(fā) onLaunch(全局只觸發(fā)?次)

            • ?程序初始化完成后,觸發(fā)onShow?法,監聽(tīng)?程序顯示

            • ?程序從前臺進(jìn)?后臺,觸發(fā) onHide?法

            • ?程序從后臺進(jìn)?前臺顯示,觸發(fā) onShow?法

            • ?程序后臺運??定時(shí)間,或系統資源占?過(guò)?,會(huì )被銷(xiāo)毀

            ???命周期的執行過(guò)程:

            • ?程序注冊完成后,加載??,觸發(fā)onLoad?法
            • ??載?后觸發(fā)onShow?法,顯示??
            • ?次顯示??,會(huì )觸發(fā)onReady?法,渲染??元素和樣式,?個(gè)??只會(huì )調??次
            • 當?程序后臺運?或跳轉到其他??時(shí),觸發(fā)onHide?法
            • 當?程序有后臺進(jìn)?到前臺運?或重新進(jìn)???時(shí),觸發(fā)onShow?法
            • 當使?重定向?法 wx.redirectTo() 或關(guān)閉當前?返回上??wx.navigateBack(),觸發(fā)onUnload

            當存在也應用生命周期和頁(yè)面周期的時(shí)候,相關(guān)的執行順序如下:

            • 打開(kāi)小程序:(App)onLaunch --> (App)onShow --> (Pages)onLoad --> (Pages)onShow --> (pages)onRead

            • 進(jìn)入下一個(gè)頁(yè)面:(Pages)onHide --> (Next)onLoad --> (Next)onShow --> (Next)onReady

            • 返回上一個(gè)頁(yè)面:(curr)onUnload --> (pre)onShow

            • 離開(kāi)小程序:(App)onHide

            • 再次進(jìn)入:小程序未銷(xiāo)毀 --> (App)onShow(執行上面的順序),小程序被銷(xiāo)毀,(App)onLaunch重新開(kāi)始執行.

            參考文獻

            • https://developers.weixin.qq.com/miniprogram/dev/reference/api/App.html#onLaunch-Object-object
            • https://developers.weixin.qq.com/miniprogram/dev/reference/api/Page.html#onLoad-Object-query
            • https://developers.weixin.qq.com/miniprogram/dev/reference/api/App.html#onLaunch-Object-object




            關(guān)鍵字: 小程序 生命周期

            文章連接: http://www.gostscript.com/cjwt/831.html

            版權聲明:文章由 晨展科技 整理收集,來(lái)源于互聯(lián)網(wǎng)或者用戶(hù)投稿,如有侵權,請聯(lián)系我們,我們會(huì )立即刪除。如轉載請保留

            双腿国产亚洲精品无码不卡|国产91精品无码麻豆|97久久久久久久极品|无码人妻少妇久久中文字幕
                1.