微信小程序(页面生命周期)

左手的ㄟ右手 2023-06-17 05:57 244阅读 0赞

课程大纲

  • (1)页面构造/注册器Page()
  • (2)页面注册器参数
    data初始化数据
    页面生命周期
    页面用户行为
  • (3)页面生命周期及顺序
  • 小结:
    ①小程序注册App()
    ②页面注册Page()

前言

  • 注册页面:

    • 对于小程序中的每个页面,在页面对应的 page.js 文件中调用 Page 方法注册页面示例
    • 作用:指定页面的初始数据、生命周期回调、事件处理函数等。
  • 页面的生命周期:

    • 页面生命周期函数就是每进入/切换到一个新的页面的时候,就会调用的生命周期函数。

页面构造/注册器Page()

  • 宿主环境提供了 Page() 构造器用来注册小程序页面
  • Page()在页面脚本page.js中调用,Page() 的调用方式如下所示
    在这里插入图片描述
  • Page构造器接受一个Object参数

    • data属性是当前页面的初始数据
    • onLoad、onReady、onShow、onHide、onUnload ,这5个回调是Page页面实例的生命周期函数,即页面生命周期
    • onPullDownRefresh、onReachBottom、onShareAppMessage、onPageScroll,这4个回调是页面的用户行为,即页面用户行为
  • Page构造器参数
    在这里插入图片描述
    在这里插入图片描述
  • 关于页面用户行为,后期会结合API进行讲解

页面生命周期

  • 接下来依次验证下页面各个生命周期函数
    在这里插入图片描述
  • (1)监听页面“加载→显示→渲染”
    在这里插入图片描述
  • (2)监听页面切换隐藏
    在这里插入图片描述
  • (3)重新显示该页面
    在这里插入图片描述
  • (4)小程序切换后台(关闭按钮或者home键切换至后台)
    在这里插入图片描述
  • (5)小程序后台→前台
    在这里插入图片描述
  • (1)onLoad
  • 触发时机:页面加载时触发
  • 页面初次加载的时候,微信客户端就会给Page实例派发onLoad事件,Page构造器参数所定义的onLoad方法会被调用
  • 触发次数:onLoad在页面没被销毁之前只会触发1次
  • 参数:在onLoad的回调中,可以获取当前页面所调用的打开参数query,关于打开当前页面路径中的参数后续介绍
  • (2)onShow
  • 触发时机:页面显示/切入前台时触发
  • 页面显示之后,Page构造器参数所定义的onShow方法会被调用,一般从别的页面返回到当前页面时,当前页的onShow方法都会被调用。
  • 页面载入后触发onShow方法,显示页面。每次打开页面都会调用一次(比如当小程序有后台进入到前台运行或换页重新进入页面时)
  • 通俗理解:就是这个页面出现一次,他就被调用一次。包括你前进后退到这个页面。
  • (3)onReady
  • 触发时机:页面初次渲染完成时触发
  • 首次显示页面,页面初次渲染完成,会触发onReady方法,渲染页面元素和样式,一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互。
  • 对界面的动态设置一般在onReady之后设置。
  • (4)onHide
  • 触发时机:页面隐藏/切入后台时触发

    • wx.navigateTo 跳转或底部 tab 切换到其他页面,小程序切入后台等。
    • 即页面不可见时,Page构造器参数所定义的onHide方法会被调用,这种情况会在使用wx.navigateTo切换到其他页面、底部tab切换时触发。

(5)onUnload

  • 触发时机:页面卸载时触发
  • 如使用重定向方法wx.redirectTowx.navigateBack关闭当前页返回上一页时调用。
  • 即当前页面使用wx.redirectTowx.navigateBack返回到其他页时,当前页面会被微信客户端销毁回收,此时Page构造器参数所定义的onUnload方法会被调用。
  • 页面生命周期小结:
    页面生命周期函数的调用顺序为:onLoad>onShow>onReady
    onHide函数为隐藏页面时触发,onUnload为卸载当前页面时触发。
  • 基本上加载一个小程序进来之后的执行顺序为
    小程序onLaunch–小程序onShow-页面onLoad–页面onShow–页面onReady

完毕,有问题留言小编…

发表评论

表情:
评论列表 (有 0 条评论,244人围观)

还没有评论,来说两句吧...

相关阅读