初识小程序 - 生命周期

作者: 勇敢的_心_ | 来源:发表于2018-03-23 18:11 被阅读30次

    小程序生命周期

    一个完整的小程序执行的生命周期:
    app.onLaunch -> app.onShow -> page1.onLoad -> page1.onShow -> page1.onReady
    (打开程序,第一个页面page1加载完成)
    -> page1.onHide -> page2.onLoad ->page2.onShow -> page2.onReady
    (从第一个页面新打开page2)
    -> page2.onUnload -> page1.onShow ->...->app.onUnload
    (关闭page2,返回page1,...退出小程序)

    一个page的生命周期从onLoad事件开始,整个生命周期内onLoad、onReady、onUnload这三个事件仅执行一次,而onHide和onShow事件在每次页面隐藏和显示时都会触发。当用户手动触发左上角的退出箭头时,小程序仅触发app.onHide,下次进入小程序时会触发app.onShow以及当前page.onShow。仅当小程序在后台运行超过一定时间未被唤起、或者用户手动在小程序的控制栏里点击退出程序、或者小程序内存占用过大被关闭时,小程序将被销毁,会触发app.onUnload事件。

    生命周期代码:

    Page({
    
      /**
       * 页面的初始数据
       */
      data: {
    
      },
    
      /**
       * 生命周期函数--页面启动
       */
    onLaunch: function() {
         // 启动时执行的初始化工作
     },
    
      /**
       * 生命周期函数--监听页面加载
       */
      onLoad: function (options) {
           // 页面加载时执行的初始化工作
      },
    
      /**
       * 生命周期函数--监听页面初次渲染完成
       */
      onReady: function () {
            // 页面就续后触发执行的操作
      },
    
      /**
       * 生命周期函数--监听页面显示
       */
      onShow: function () {
            // 小程序启动或从后台进入前台时,触发执行的操作
      },
    
      /**
       * 生命周期函数--监听页面隐藏
       */
      onHide: function () {
            // 小程序从前台进入后台时,触发执行的操作
      },
    
      /**
       * 生命周期函数--监听页面卸载
       */
      onUnload: function () {
            // 页面关闭时触发执行的操作
      },
    
      /**
       * 页面相关事件处理函数--监听用户下拉动作
       */
      onPullDownRefresh: function () {
        
      },
    
      /**
       * 页面上拉触底事件的处理函数
       */
      onReachBottom: function () {
        
      },
    
      /**
       * 用户点击右上角分享
       */
      onShareAppMessage: function () {
        
      }
    })
    

    小程序线程

    每个小程序分为2个线程,view与appSer-ver。

    • view线程负责解析渲染页面(wxml和wxss文件)
    • appServer线程负责运行js。appSer-ver线程运行在jsCore中(安卓下运行在X5中,开发工具中运行在nwjs中)。

    由于js不跑在WebView里,就不能直接操纵DOM和BOM,这就是小程序没有window全局变量的原因。

    相关文章

      网友评论

        本文标题:初识小程序 - 生命周期

        本文链接:https://www.haomeiwen.com/subject/zrztcftx.html