淺談微信小程序生命週期

一直想着說,寫些什麼東西來記錄下本身的成長史,終於要開始實踐了
第一次寫博客,望各位大牛指點一二html

前言

(1)爲何是微信小程序
redux

今年剛畢業,加上實習的日子,在公司近一年的時間了,期間一直在寫小程序的相關功能,對小程序的一些基礎功能較爲熟悉.
小程序

(2)技術 原生js + redux + 微信小程序官方API
微信小程序

今天主要是講述一下本身對於微信小程序生命週期的瞭解,雖然已經能在各個平臺查詢到相關文檔,但以爲寫出來,能整理下思緒,也望能夠獲得大牛們的指教.api

解析

小程序主要分爲兩個生命週期:全局的生命週期 + 頁面的生命週期
小程序App生命週期
緩存

App生命週期主要在app.js中調用,主要是:
微信

  • onLaunch -- 小程序初始化完成,全局只觸發一次
  • onShow -- 小程序啓動時,或者從後臺進入前臺
  • onHide -- 小程序從前臺進入後臺時執行
  • onError -- 小程序運行腳本出錯或者api調用失敗時執行,會帶上錯誤信息
  • onPageNotFound -- 小程序頁面不存在時執行

    執行順序: onLaunch--> onShow --> onHideapp

  • 小程序Pages生命週期ide

    Pages生命週期主要是指各個文件對應的js中的生命週期,主要是:
    cdn

  • onLoad -- 頁面加載時執行,只執行一次
  • onReady -- 頁面初次渲染時執行,只執行一次
  • onShow -- 頁面展現時執行,執行屢次
  • onHide -- 頁面從前臺進入後臺時執行
  • onUnload -- 頁面卸載時執行
  • 注意點:當切換頁面須要屢次渲染數據改變狀態,建議在onShow中使用,當只需初始化一次的時候,可在onLoad或者onReady中使用。當須要清除定時器時,可在onUnload中使用

    執行順序:onLoad --> onShow --> onReady --> onHide

    切換頁面時觸發的生命週期: 當首次加載A頁面,A觸發的生命週期爲:onLoad --> onShow --> onReady,從A頁面切換到B頁面時,A頁面觸發onHide,B頁面觸發的生命週期順序與上面一致,當B頁面返回到A頁面時,觸發onUnload,當不清緩存,再次進入A頁面時,只觸發onShow.

    Pages實例化生命週期

    小程序官方文檔中有一張圖代表了實例化的過程,我就直接拿過來了,可自行查看 developers.weixin.qq.com/miniprogram…

    解釋:以下圖

    運行機制

    概念:

    熱啓動:指的是小程序啓動成功後,你點了左上角的x或者按了home鍵離開小程序,小程序並無直接被銷燬,而是進入了後臺運行機制中,當你在必定時間內再次打開該小程序時,小程序這時候從後臺又從新進入前臺,從新渲染頁面,這個過程就是熱啓動

    冷啓動:指的是小程序初次加載(從未打開),或者當你卸載小程序,或者被微信自動銷燬的時候,當你再次進入從新加載小程序時,這個過程就是冷啓動

    注意點:小程序只有在冷啓動的時候,纔會觸發onLaunch生命週期

    總結

    小程序的一生:

  • 打開小程序:(App)onLaunch --> (App)onShow --> (Pages)onLoad --> (Pages)onShow --> (pages)onReady
  • 進入下一個頁面:(Pages)onHide --> (Next)onLoad --> (Next)onShow --> (Next)onReady
  • 返回上一個頁面:(curr)onUnload --> (pre)onShow
  • 離開小程序:(App)onHide
  • 再次進入:小程序未銷燬 --> (App)onShow(執行上面的順序),小程序被銷燬,(App)onLaunch從新開始執行.
  • 相關文章
    相關標籤/搜索