`

微信小程序学习之路《六》 生命周期

 
阅读更多

微信小程序开发 - 生命周期

 

 

通俗的讲,生命周期就是指一个对象的生老病死。 从软件的角度来看,生命周期指程序从创建、到开始、暂停、唤起、停止、卸载的过程。

 

小程序的生命周期分为:应用生命周期、页面生命周期

 

 

应用生命周期

 

 在app.js的app()中注册程序

 

App({

  onLaunch: function () {

    console.log('onLaunch')

  },

  onShow: function () {

    console.log('onShow')

  },

  onHide: function () {

    console.log('onHide')

  },

  other:function(){

      

  }

})

 

 

1.小程序首次打开,初始化完成时会触发 onLaunch(全局只触发一次)。

2.小程序启动完成后,触发onShow方法,监听小程序显示。

3.小程序从前台进入后台,触发 onHide方法。

4.小程序从后台进入前台显示,触发 onShow方法。

5.小程序进入后台运行一定时间,或系统资源占用过高,会被销毁。

 

前台、后台定义: 当用户点击左上角关闭,或者按了设备 Home 键离开微信,小程序并没有直接销毁,而是进入了后台;当再次进入微信或再次打开小程序,又会从后台进入前台。

 



 

页面生命周期

 

 

在页面.js中的Page({})中注册页面。

 

Page({

  data:{},

  onLoad:function(options){

    // 页面初始化 options为页面跳转所带来的参数

  },

  onReady:function(){

    // 页面渲染完成

  },

  onShow:function(){

    // 页面显示

  },

  onHide:function(){

    // 页面隐藏

  },

  onUnload:function(){

    // 页面关闭

  }

})

 

小程序页面生命周期由两大线程组成:负责界面的线程(view thread)和服务线程(appservice thread),各司其职又互相配合。

界面线程有四大状态: 
1. 初始化状态:初始化界面线程所需要的工作,包括工作机制,基本和我们开发者没有关系,等初始化完毕就向 “服务线程”发送初始化完毕信号,然后进入等待传回初始化数据状态。

2.首次渲染状态:收到“服务线程”发来的初始化数据后(就是 json和js中的data数据),开始渲染小程序界面,渲染完毕,发送“首次渲染完毕信号”给服务线程,并将页面展示给用户。

3.持续渲染状态:此时界面线程继续一直等待“服务线程”通过this.setdata()函数发送来的界面数据,只要收到就重新局部渲染,也因此只要更新数据并发送信号,界面就自动更新。

4.结束状态:你懂得。

 

服务线程五大状态: 
1 初始化状态:无需和其他模块交流,跟小程序开发也没多大关联,此阶段就是启动服务线程所需的基本功能,比如信号发送模块。系统的初始化工作完毕,就调用自定义的onload和onshow, 然后等待界面线程的“界面线程初始化完成”信号。 

onload是只会首次渲染的时候执行一次,onshow是每次界面切换都会执行,简单理解,这就是唯一差别。

2 等待激活状态:接到“界面线程初始化完成”信号后,将初始化数据发给“界面线程”,等待界面线程完成初次渲染。

3.激活状态:收到界面线程发送来的“首次渲染完成”信号后,进入激活状态既程序正常运行状态,并调用自定义的onReady()函数。 此状态下就可以通过 this.setData 函数发送界面数据给界面线程进行局部渲染,更新页面。

4.后台运行状态:如果界面进入后台,服务线程就进入后台运行状态,从目前的官方解读来说,这个状态挺奇怪的,和激活状态是相同的,也可以通过setdata函数更新界面的。毕竟小程序的框架刚推出,应该后续会有很大不同吧。

5.结束状态:你懂得。



 
 

 

应用生命周期 影响 页面生命周期

 


  

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

2.当小程序进入到后台,先执行页面onHide方法再执行应用onHide方法。

3.当小程序从后台进入到前台,先执行应用onShow方法再执行页面onShow方法。

 

 

  • 大小: 107.6 KB
  • 大小: 241.6 KB
  • 大小: 32 KB
分享到:
评论

相关推荐

    微信小程序源码下载 微信小程序源码下载 2000套微信小程序源码

    本资源包含2000套微信小程序的源码,对于开发者来说是一份宝贵的参考资料,可以用来学习、研究或者作为开发新项目的起点。 源码下载是开发者获取程序原始代码的方式,对于学习和理解编程逻辑至关重要。这些微信小...

    微信小程序常用功能学习示例

    此外,微信小程序还提供了生命周期管理和事件处理机制。每个页面都有其特定的生命周期,如`onLoad`、`onShow`、`onHide`等,开发者可以根据这些生命周期来执行相应的操作。同时,通过绑定事件处理函数,可以实现用户...

    微信小程序代码-微信中的知乎--微信小程序demo.zip

    这个"微信小程序代码-微信中的知乎--微信小程序demo.zip"压缩包提供了一个模仿知乎界面的微信小程序示例,帮助开发者理解和学习如何构建类似的应用。 1. **小程序模板代码**:在开发微信小程序时,模板代码可以作为...

    微信小程序官方小程序示例源码

    6. **生命周期方法**:每个微信小程序页面都有其特定的生命周期,如onLoad、onShow、onHide等,开发者可以在这些方法中编写相应代码来处理页面的加载、显示、隐藏等事件。 7. **数据绑定和状态管理**:通过双括号{{...

    微信小程序示例小相册

    2. **页面生命周期**:每个微信小程序页面都有其特定的生命周期,包括`onLoad`、`onShow`、`onHide`、`onUnload`等方法,开发者需要根据这些生命周期函数来管理页面的状态和数据。 3. **组件化开发**:微信小程序...

    微信小程序源码

    4. **页面生命周期**:每个微信小程序都有自己的生命周期,包括onLoad、onShow、onHide等方法。这些方法在特定时刻被调用,比如页面加载、显示、隐藏时。源码中的这些生命周期函数是理解小程序运行流程的关键。 5. ...

    【微信小程序-毕设期末大作业】模拟题库微信小程序源码.zip

    总结,【微信小程序-毕设期末大作业】模拟题库微信小程序源码是一个综合性的学习资源,涵盖了微信小程序的基础知识、页面构建、数据处理和功能实现等多个方面,对于想要学习或实践微信小程序开发的学员来说,是一个...

    网站封装微信小程序源码

    网站封装微信小程序源码是一种技术手段,它允许开发者将现有的网站内容和功能转换为...通过这个源码,开发者可以学习如何将已有的网站内容迁移到微信小程序平台,利用微信庞大的用户基础,提升网站的访问量和用户体验。

    微信小程序电影小程序源码.zip

    微信小程序电影小程序源码是一个适合用于毕业设计、期末大作业或课程设计的项目,它涵盖了微信小程序开发的基础知识和电影信息展示的相关技术。这个压缩包包含的文件名为“电影小程序”,意味着里面可能包括了实现一...

    微信小程序 实例汇总 完整项目源代码

    这个压缩包文件“wechat”很可能包含了多个微信小程序的实例项目,提供完整的源代码,非常适合学习和参考。 微信小程序的开发涉及以下几个核心知识点: 1. **框架结构**:微信小程序基于一套自定义的XML-like语法...

    100个微信小程序实例

    本资源“100个微信小程序实例”包含了一系列真实的微信小程序项目,是学习和掌握微信小程序开发的宝贵资料。 这些实例覆盖了各种应用场景,包括但不限于电商、社交、生活服务、工具、游戏等类别。通过学习这些实例...

    微信小程序项目之微信阅读小程序(源码+说明).zip

    【微信小程序项目之微信阅读小程序】是一个以微信小程序为平台的开发项目,旨在构建一个集书籍阅读、信息浏览和互动交流于一体的在线阅读应用。通过这个项目,开发者可以深入学习微信小程序的开发技术,理解其架构...

    微信小程序游戏源码-小游戏

    此外,开发微信小程序游戏时,开发者通常会利用微信小程序提供的生命周期函数来管理游戏状态,如`onLoad`用于加载游戏资源,`onReady`标志着页面渲染完成,可以开始游戏,`onTouchStart`和`onTouchMove`等则用于处理...

    知晓课堂 微信小程序设计

    总结来说,"知晓课堂 微信小程序设计"涵盖的知识点包括:微信小程序的开发环境与工具、WXML和WXSS的使用、小程序的生命周期管理、数据绑定和状态管理、页面路由、微信小程序API的运用以及开发流程与审核规范。...

    【微信小程序-毕设期末大作业】通讯录微信小程序源码.zip

    - 微信小程序框架:包括Page、Component、生命周期方法等,用于组织和管理小程序的各个页面。 4. 开发流程: - 环境配置:安装微信开发者工具,创建小程序项目,设置项目目录和AppID。 - 页面结构设计:编写WXML...

    微信小程序-美食列表源码

    "美食列表源码"是针对微信小程序开发者,特别是初学者的一个实践项目,它可以帮助学习者理解并掌握微信小程序的基本架构和开发流程。 在微信小程序的开发中,主要有以下几个关键知识点: 1. **WXML**: 这是微信小...

    微信小程序教程.zip

    4. **页面生命周期**:每个微信小程序页面都有自己的生命周期,包括加载、显示、隐藏和卸载等状态。开发者需要了解每个状态下的方法调用,以便在适当的时间执行相应的操作。 5. **组件化开发**:微信小程序支持组件...

    OneNET微信小程序源码

    同时,熟悉微信小程序的开发框架和生命周期方法也至关重要,比如`onLoad`、`onShow`、`onHide`等,它们在小程序的不同阶段被触发,用于执行相应的逻辑。 此外,微信小程序的调试和发布也是开发流程中的重要环节。...

    微信小程序项目-美食列表

    9. **样式隔离**:学习如何避免样式冲突,合理使用类名和选择器,以及微信小程序提供的样式隔离机制。 10. **调试与测试**:掌握微信开发者工具的使用,进行代码编辑、预览、调试和性能优化。 通过实践“美食列表...

Global site tag (gtag.js) - Google Analytics