微信小程序中的生命週期

微信小程序的生命週期大概分爲三步
1.全局生命週期
2.頁面生命週期
3.組件生命週期

一. 生命週期 App(全局)
項目根目錄app.js文件

App({
  onLaunch (options) {
     
    console.log('小程序初始化')
    // 在項目打開時可以寫一些業務邏輯

  },
  onShow(options) {
    console.log('監聽小程序啓動或切前臺')
  },
  onHide() {
    console.log('監聽小程序切後臺')
  },

  onError(msg) {
    console.log('錯誤監聽函數')
  },
  onPageNotFound(res) {
    console.log('小程序要打開的頁面不存在時觸發');
    wx.redirectTo({ // 重定向 比如頁面錯誤 我跳轉到別的頁面
      url: 'pages/...'
    }) // 如果是 tabbar 頁面,就使用 wx.switchTab
  }
  
})

2. 頁面生命週期

pages目錄下的xxx.js

Page({

  /**
   * 頁面的初始數據
   */
  data: {

  },
 /*頁面生命週期*/
 onLoad: function (options) {
    console.log("初始化階段");
  },
 onReady: function () {
    console.log('監聽頁面初次渲染完成')

  },
  onShow: function () {
    console.log('監聽頁面顯示')
  },
  onHide: function () {
    console.log('監聽頁面隱藏')

  },
  onUnload: function () {
    console.log('監聽頁面卸載')
  },

  /**
   * 頁面相關事件處理函數--監聽用戶下拉動作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 頁面上拉觸底事件的處理函數
   */
  onReachBottom: function () {

  },

  /**
   * 用戶點擊右上角分享
   */
  onShareAppMessage: function () {

  }
})

3. 組件生命週期

// pages/components/xxx.js

Component({
  /**
   * 組件的屬性列表
   */
  properties: {

  },

  /**
   * 組件的初始數據
   */
  data: {

  },

  /**
   * 組件的方法列表
   */
  methods: {

  },

  /*組件生命週期*/ 
  lifetimes: {
    created() {
      console.log("在組件實例剛剛被創建時執行")
    },
    attached() { 
      console.log("在組件實例進入頁面節點樹時執行")
    },
    ready() {
      console.log("在組件在視圖層佈局完成後執行")
    },
    moved() {
      console.log("在組件實例被移動到節點樹另一個位置時執行")
    },
    detached() {
      console.log("在組件實例被從頁面節點樹移除時執行")
    },
    error() {
      console.log("每當組件方法拋出錯誤時執行")
    },
    /*組件所在頁面的生命週期 */
    pageLifetimes: {
      show: function () {
        // 頁面被展示
        console.log("頁面被展示")
      },
      hide: function () {
        // 頁面被隱藏
        console.log("頁面被隱藏")
      },
      resize: function (size) {
        // 頁面尺寸變化
        console.log("頁面尺寸變化")
      }
    }
   
  }
 
})

聲明週期不管是在vue、react 小程序中都是至深莫測的 我們可以根據需求在不同的生命週期中去處理一些業務邏輯~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章