微信小程序之生命周期


1. 整個小程序生命周期 App({})

//app.js
App({
    onLaunch: function (options) {
        // 小程序初始化完成時(全局只觸發一次) 
        // 程序銷毀(過一段時間沒有執行,或者手動刪除了小程序后再次添加)之后,再次啟動就會執行
        console.log('onLaunch'); 
    },
    onShow: function (options) {
        // 小程序啟動,或從后台進入前台顯示時
        console.log('onShow');
    },
    onHide: function () {
        // 小程序從前台進入后台時,就會執行
        console.log('onHide');
    },
    onError: function (msg) {
        // 小程序發生腳本錯誤,或者 api 調用失敗時觸發,會帶上錯誤信息
        console.log(msg)
    },
    globalData: {
        userInfo: null
    }
})

2. 頁面生命周期 page({})

Page({ 

  onLoad: function (options) {
    // 監聽頁面加載
    // 頁面加載的時候執行,只執行一次
    
    console.log('頁面load');
  },

  
  onReady: function () {
    // 監聽頁面第一次渲染完成
    // 只執行一次

    console.log('頁面ready');
  },

  onShow: function () {
    // 只要頁面顯示,就會執行
     
    console.log('頁面show');
  },


  onHide: function () {
    // 頁面隱藏,就會執行
     
    console.log('頁面hide');
  },


  onUnload: function () {
    // 頁面卸載,就會執行
     
    console.log('頁面unload');
  }
 
})


注意

1. tab頁面之間的相互切換,不會讓頁面重新加載(onLoad),也就不會卸載(onUnload),只會隱藏與顯示頁面,即:頁面切換只會交替執行 onHide() 與 onShow() 函數

2. 在某頁面使用 NavigatorTo 跳轉至目標頁面時(比如從 index 頁面跳轉至 detail 頁面),該頁面(index頁面)只執行 onHide(), 目標頁面(detail頁面)執行 onLoad()、onReady()、onShow();

3. 在回退(NavigatorBack)時(比如從 detail 頁面回退至 index 頁面),index頁面執行onShow(), detail頁面會被卸載,即執行onUnload();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM