无遮无挡三级动态图,熟女人妻高清一区二区三区,午夜精品一区二区三区 ,色吧成人网,无码爆乳护士让我爽

私域電商軟件及相關(guān)增值服務(wù)提供商    

北京:4006-601-982 / 深圳:4008-400-198 / 長沙:4006-089-731
免費(fèi)試用

關(guān)于小程序app.js生命周期的介紹

2020-09-27|HiShop
導(dǎo)讀:1.小程序的生命周期App.js App() 必須在 app.js 中注冊,且不能注冊多個(gè)。所以App()方法在一個(gè)小程序中有且僅有一個(gè)。 App() 函數(shù)用來注冊一個(gè)小程序。接受一個(gè) object 參數(shù),其指定小程...

小程序的生命周期——App.js

關(guān)于小程序app.js生命周期的介紹

App() 必須在 app.js 中注冊,且不能注冊多個(gè)。所以App()方法在一個(gè)小程序中有且僅有一個(gè)。

App() 函數(shù)用來注冊一個(gè)小程序。接受一個(gè) object 參數(shù),其指定小程序的生命周期函數(shù)等。先上代碼:

App({
  onLaunch: function () {
      console.log('App onLaunch');

  },

  onShow:function (){
     console.log('App onShow');

  },

  onHide:function(){
      console.log('App onHide');

  },
  onError:function(){
     console.log('App onError');

  },

  getPics: function() {
      return this.globalData.picList;
  },
  globalData:{
      picList: [] // 圖片列表
  },

  globalName: 'tangdekun'

});

最外層的整個(gè){ }就是一個(gè)object 參數(shù)。

通過表格的形式看App()中的object參數(shù)說明:

屬性 類型 描述 觸發(fā)時(shí)機(jī)
onLaunch Function 生命周期函數(shù)–監(jiān)聽小程序初始化 當(dāng)小程序初始化完成時(shí),會(huì)觸發(fā) onLaunch(全局只觸發(fā)一次)。
onShow Function 生命周期函數(shù)–監(jiān)聽小程序顯示 當(dāng)小程序啟動(dòng),或從后臺(tái)進(jìn)入前臺(tái)顯示,會(huì)觸發(fā) onShow
onHide Function 生命周期函數(shù)–監(jiān)聽小程序隱藏 當(dāng)小程序從前臺(tái)進(jìn)入后臺(tái),會(huì)觸發(fā) onHide
onError Function 錯(cuò)誤監(jiān)聽函數(shù) 當(dāng)小程序發(fā)生腳本錯(cuò)誤,或者 api 調(diào)用失敗時(shí),會(huì)觸發(fā) onError 并帶上錯(cuò)誤信息
其他 Any   開發(fā)者可以添加任意的函數(shù)或數(shù)據(jù)到 Object 參數(shù)中,用 this 可以訪問,上面的getPics就是函數(shù), globalName是數(shù)據(jù),這里面的函數(shù)和數(shù)據(jù)都是全局的。調(diào)用方式:在Pager中通過getApp()方法得到App對象并獲得全局的數(shù)據(jù)和調(diào)用全局的函數(shù)

將原有的app.js中替換為上面的代碼,首次打開小程序,可以在Log信息中看到以下Log信息,會(huì)看到onShow()方法會(huì)執(zhí)行兩次

App onLaunch App onShow() App onShow()

前臺(tái)、后臺(tái)定義: 當(dāng)用戶點(diǎn)擊左上角關(guān)閉,或者按了設(shè)備 Home 鍵離開微信,小程序并沒有直接銷毀,而是進(jìn)入了后臺(tái);當(dāng)再次進(jìn)入微信或再次打開小程序,又會(huì)從后臺(tái)進(jìn)入前臺(tái)。

只有當(dāng)小程序進(jìn)入后臺(tái)一定時(shí)間,或者系統(tǒng)資源占用過高,才會(huì)被真正的銷毀。

注意:

1.不要在定義于 App() 內(nèi)的函數(shù)中調(diào)用 getApp() ,使用 this 就可以拿到 app 實(shí)例。

2.不要在 onLaunch 的時(shí)候調(diào)用 getCurrentPage(),此時(shí) page 還沒有生成。

3.通過 getApp() 獲取實(shí)例之后,不要私自調(diào)用生命周期函數(shù)。

2.頁面的生命周期

Page() 函數(shù)用來注冊一個(gè)頁面。接受一個(gè) object 參數(shù),其指定頁面的初始數(shù)據(jù)、生命周期函數(shù)、事件處理函數(shù)等。

生命周期函數(shù)

onLoad: 頁面加載
    一個(gè)頁面只會(huì)調(diào)用一次。
    接收頁面參數(shù)   可以獲取wx.navigateTo和wx.redirectTo及中的 query。

onShow: 頁面顯示
    每次打開頁面都會(huì)調(diào)用一次。

onReady: 頁面初次渲染完成
    一個(gè)頁面只會(huì)調(diào)用一次,代表頁面已經(jīng)準(zhǔn)備妥當(dāng),可以和視圖層進(jìn)行交互。


onHide: 頁面隱藏
    當(dāng)navigateTo或底部tab切換時(shí)調(diào)用。

onUnload: 頁面卸載
    當(dāng)redirectTo或navigateBack的時(shí)候調(diào)用。
  • 1234567891011121314151617

其中APP的生命周期和頁面的生命周期是相互交叉的:舉例:

我們有頁面Test和Test1,我們在test.js,test1.js和App.js的生命周期方法中都打印log,代碼如下:

test1.js

Page({
  data:{
    names:"tangdekun test1"
  },
  onLoad:function(options){
    // 生命周期函數(shù)--監(jiān)聽頁面加載
    console.log("test1 onLoad");
  },
  onReady:function(){
    // 生命周期函數(shù)--監(jiān)聽頁面初次渲染完成
    console.log("test1 onReady");
  },
  onShow:function(){
    // 生命周期函數(shù)--監(jiān)聽頁面顯示
   console.log("test1 onShow");
  },
  onHide:function(){
    // 生命周期函數(shù)--監(jiān)聽頁面隱藏
     console.log("test1 onHide");
  },
  onUnload:function(){
    // 生命周期函數(shù)--監(jiān)聽頁面卸載
     console.log("test1 onUnload");
  },
  onPullDownRefresh: function() {
    // 頁面相關(guān)事件處理函數(shù)--監(jiān)聽用戶下拉動(dòng)作
     console.log("test1 onPullDownRefresh");
  },
  onReachBottom: function() {
    // 頁面上拉觸底事件的處理函數(shù)
     console.log("test1 onReachBottom");
  }

})

test.js

Page({
  data:{
    name:"test"
  },
  onLoad:function(options){
    // 生命周期函數(shù)--監(jiān)聽頁面加載
    console.log("test onLoad");
  },
  onReady:function(){
    // 生命周期函數(shù)--監(jiān)聽頁面初次渲染完成
    console.log("test onReady");
  },
  onShow:function(){
    // 生命周期函數(shù)--監(jiān)聽頁面顯示
   console.log("test onShow");
  },
  onHide:function(){
    // 生命周期函數(shù)--監(jiān)聽頁面隱藏
     console.log("test onHide");
  },
  onUnload:function(){
    // 生命周期函數(shù)--監(jiān)聽頁面卸載
     console.log("test onUnload");
  },
  onPullDownRefresh: function() {
    // 頁面相關(guān)事件處理函數(shù)--監(jiān)聽用戶下拉動(dòng)作
     console.log("test onPullDownRefresh");
  },
  onReachBottom: function() {
    // 頁面上拉觸底事件的處理函數(shù)
     console.log("test onReachBottom");
  },
  onShareAppMessage: function() {
    // 用戶點(diǎn)擊右上角分享
    return {
      title: '分享頁面', // 分享標(biāo)題
      desc: '這是一個(gè)分享的測試', // 分享描述
      path: 'pages/waimai/waimai' // 分享路徑
    }
  },
  navigateToPageB: function() {
    wx.navigateTo({
      url: '../../pages/pageB/pageB?id=3',
      success: function(res){

      },
      fail: function() {
        // fail
      },
      complete: function() {
        // complete
      }
    })
  },
  redirectToPageA : function(){
    wx.redirectTo({
      url: '../../pages/pageA/pageA?id=4',
      success: function(res){
        // success
      },
      fail: function() {
        // fail
      },
      complete: function() {
        // complete
      }
    })
  },
 switchTabToTest1:function(){
   wx.switchTab({
     url: '../../pages/test1/test1',
     success: function(res){
       // success
     },
     fail: function() {
       // fail
     },
     complete: function() {
       // complete
     }
   })
 } 

})

app.js

//app.js
App({
  onLaunch: function () {
      console.log('App onLaunch');

  },

  onShow:function (){
     console.log('App onShow1'+this.globalName);

  },

  onHide:function(){
      console.log('App onHide');

  },
  onError:function(){
     console.log('App onError');

  },

  getPics: function() {
      return this.globalData.picList;
  },
  globalData:{
      picList: [] // 圖片列表
  },

  globalName: 'tangdekun'

});

我們將test頁面設(shè)置為首頁【在app.json中設(shè)置】,程序會(huì)自動(dòng)加載test頁面,調(diào)用test.js中的生命周期方法,打印Log信息如下:

關(guān)于小程序app.js生命周期的介紹

然后點(diǎn)擊菜單欄【作業(yè)中心】test1,會(huì)調(diào)用test 的onHide,test1的onLoad,onShow,onReady,打印Log信息如下:

關(guān)于小程序app.js生命周期的介紹

在點(diǎn)擊【朋友圈】test,會(huì)調(diào)用test1的onHide方法,test的onshow方法,而不會(huì)調(diào)用test的onLoad,onReady方法,log信息如下:

關(guān)于小程序app.js生命周期的介紹

通過實(shí)例我們一起理解一下官方的小程序頁面的生命周期:

關(guān)于小程序app.js生命周期的介紹

View thread是我們的wxml文件,AppServiceThread就是我們js文件中研究的頁面的生命周期。這里我們可以看到每個(gè)生命周期方法的調(diào)用順序以及和Wxml之間的信息交流。大家可以簡略的看一下就好。

關(guān)于小程序app.js生命周期的介紹

因?yàn)轫撁娴纳芷诤晚撁娴穆酚伞炯错撁嬷g的跳轉(zhuǎn)方式】有關(guān),所以接下來我會(huì)向大家展示頁面跳轉(zhuǎn)的三種方式和各種跳轉(zhuǎn)方式之下的生命周期方法的調(diào)度。

HiShop小程序工具提供多類型商城/門店小程序制作,可視化編輯 1秒生成5步上線。通過拖拽、拼接模塊布局小程序商城頁面,所看即所得,只需要美工就能做出精美商城。更多小程序商店請查看:小程序商店

電話咨詢 微信咨詢 預(yù)約演示 0元開店