理解微信小程序的生命周期和运行原理

sea520 2021-09-07 原文


理解微信小程序的生命周期和运行原理


小程序的生命周期

 

写微信小程序,他的生命周期不能不知道,不知道小程序就会出现各种bug而无法解决。小助君公众号带你学习小程序的生命周期和运行原理。

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

小程序的生命周期借鉴了Android的生命周期,如果你了解过Android的APP开发,那么理解小程序的就会很简单。

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

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

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

4.结束状态:你懂得。

服务线程五大状态:
1 初始化状态:无需和其他模块交流,跟小程序开发也没多大关联,此阶段就是启动服务线程所需的基本功能,比如信号发送模块。系统的初始化工作完毕,就调用自定义的onload和onshow,
然后等待界面线程的“界面线程初始化完成”信号。
onload是只会首次渲染的时候执行一次,onshow是每次界面切换都会执行,简单理解,这就是唯一差别。

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

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

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

“小助君公众号”是帮助大家运营公众号的公众号,欢迎大家来交流小程序和公众号运营。
———————

原文:https://blog.csdn.net/tsr106/article/details/53052879

 

发表于
2018-12-28 11:58 
sea的博客 
阅读(697
评论(0
编辑 
收藏 
举报

 

版权声明:本文为sea520原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/sea520/p/10189727.html

理解微信小程序的生命周期和运行原理的更多相关文章

随机推荐

  1. 随机数生成器(C#)

    #####生成范围内随机数并保留小数#####   1、代码 1 private void FormGenrt […]...

  2. vpnserver安装配置教程

    1、SoftEther简介 我们来先科普一下什么是SoftEther吧,SoftEther是由日本筑波大学的登 […]...

  3. day82_淘淘商城项目_15_项目的总结 + 项目中的问题_匠心笔记

    项目的总结 第一天:学习电商行业的背景,电商模式:B2B、B2C、B2B2C、O2O。分布式,集群的理解,系统 […]...

  4. UPA深度性能报告解读

    WeTest 导读 UPA作为腾讯WeTest与Unity官方联合打造的客户端性能分析工具,为开发者提供了极大 […]...

  5. android颜色对应的xml配置值,颜色表

                            Java代码   <?xml version=̶ […]...

  6. 记一次uboot中gunzip解压速度慢的问题排查

    背景 在项目中需要用到解压功能,之前还记录了下,将uboot解压代码移植到另外的bootloader中时,碰到 […]...

  7. 2016年的流水帐

    最近过的还是很充实的,昨天用after effects帮别人处理掉周年庆视频里面蛋糕上的黑斑,算是入了ae的门 […]...

  8. ASP.NET Core Logging in Elasticsearch with Kibana

    在微服务化盛行的今天,日志的收集、分析越来越重要。ASP.NET Core 提供了一个统一的,轻量级的Logi […]...

展开目录

目录导航