码迷,mamicode.com
首页 > 微信 > 详细

小程序生命周期

时间:2019-02-18 01:22:51      阅读:344      评论:0      收藏:0      [点我收藏+]

标签:ios系统   his   图片   关闭   redirect   程序   钩子   小程序   data   

小程序生命周期

是指程序从创建、到开始、暂停、唤起、暂停、卸载的过程

小程序生命周期可以从三个方面介绍

  • 应用生命周期
  • 页面Page生命周期
  • 应用生命周期会影响Page生命周期

小程序一个路由跳转的 API也会影响到 Page页面的声明周期

小程序应用生命周期

技术图片

用户首次打开小程序,会先触发 onLaunch初始化

其次, 触发小程序应用生命周期的 onShow方法

当切换到桌面时关闭小程序会触发 onHide, 此时到小程序没有完全销毁,会在后台运行一段时间。 当用户z再次进入小程序会再触发 onShow生命周期函数。

为什么小程序不提供销毁的钩子函数呢? 应该是因为 IOS系统的限制, 按下 Home键离开微信时, app的状态会被挂起。如果挂起时间过长到话,系统应该会把 app的进程杀掉,所以我们无法得到小程序销毁的通知。

页面生命周期

技术图片

小程序页面加载,会先触发 onLoad监听页面加载

页面加载之后,会触发 onShow监听页面显示

页面显示之后,会进行渲染页面结构和样式,触发onReady, 一个页面只会触发一次

当通过 wx.navigateTo 路由跳转时,触发 onHide。保留当前页面,跳转到应用内的某个页面

当通过 wx.redirectTo 路由跳转时,触发 unLoad。关闭当前页面,跳转到应用内的某个页面

应用生命周期和页面生命周期的关系

技术图片

小程序初始化完成后, 页面首次加载触发 onLoad,一个页面只会触发一次

当小程序进入后台时,先会出发页面的 onHide,其次触发应用的 onHide

当小程序从后台进入前台时, 先触发应用的 onShow,其次触发页面的 onShow

小程序生命周期图

技术图片

视图线程的四大状态

  • 初始化状态: 初始化视图线程所需要的工作, onLaunch 完成后会向服务器发送初始化完成, 然后进入 waiting data等待服务器线程提供初始化数据

  • 首次渲染状态: 当接受到服务器提供的初始化数据后,渲染小程序界面,渲染完毕之后会再次通知服务器,并且将页面展示给用户

  • 持续渲染状态: 此时视图线程继续一直等待服务线程通过 this.setData函数发送来的界面数据, 只要收到就会重新布局渲染,也因此只需要 this.setData修改数据视图会随之更新的原因

  • 结束状态: 页面被回收或被销毁

服务线程五大状态

  • 初始化状态: 会启用服务器线程所需的基本功能, 服务器初始化好之后就会执行自定义的 onLoad页面加载和onShow。等待视图线程 初始化完成好。onLoad 只会在首次渲染的时候执行一次, onShow每次页面切换都会执行

  • 等待激活状态: 等待视图线程初始化完成好后, Send initial Data将初始化数据发送给视图线程,然后等待视图线程初次渲染好的通知

  • 激活状态: 当收到视图线程首次渲染好之后, 就会进入激活状态即正常运行状态, 并且调用页面的 onReady函数。此时,可以通过 this.setData向视图线程提供页面数据进行局部渲染。

  • 后台运行状态: 当界面进入后台, 服务器也会进入后台运行状态

  • 结束状态: 页面被回收或被销毁

小程序生命周期

标签:ios系统   his   图片   关闭   redirect   程序   钩子   小程序   data   

原文地址:https://www.cnblogs.com/qiqingfu/p/10393572.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!