【小程序 - 大智慧】深入微信小程序的核心原理
创作时间:
作者:
@小白创作中心
【小程序 - 大智慧】深入微信小程序的核心原理
引用
CSDN
1.
https://blog.csdn.net/qq_53673551/article/details/141925234
微信小程序自2017年上线以来,以其独特的双线程架构和高效的渲染机制迅速赢得了开发者的青睐。本文将深入探讨微信小程序的核心原理,包括其双线程架构、渲染机制、通讯系统、生命周期以及跨端开发框架等内容。
双线程架构
微信小程序的设计与前端浏览器有着本质的区别,它将JavaScript操作层和界面渲染层进行了隔离。具体来说:
App Service(逻辑层):这是一个专门用于执行JavaScript的沙箱环境,无法直接操作DOM或访问浏览器API,只能通过Native异步查询DOM元素并进行操作。小程序的WXML和WXSS会被编译为JS脚本进行注入操作。
Web View(渲染层):负责页面的展示,采用多页面模式,类似于App的多页面结构。每个页面都运行在一个独立的Web View中。
Native(微信客户端):利用微信的缓存机制,提前注入微信SDK、接口请求和组件渲染等功能。
WebView 结构
小程序的页面加载过程可以分为以下几个阶段:
- 启动一个WebView,这在iOS和Android系统上都需要一定的时间。
- 在WebView中初始化基础库,并进行一些性能优化。
- 注入小程序的WXML结构和WXSS样式,以便在接收到页面初始数据后立即开始渲染。
- 每个页面都独立运行在一个页面层级上,通过
wx.navigateTo创建新的页面层级,通过wx.navigateBack销毁页面层级。
快速渲染 PageFrame
为了提高渲染效率,微信小程序采用了PageFrame模板机制:
- 利用PageFrame模板生成Web View视图。
- 首次加载时缓存PageFrame模板生成的内容,后续加载时直接使用缓存。
- 初始化Web View地址为
http://127.0.0.1:${global.proxyPort}/aboutblank?${c},其中${c}是对应Web View的ID。 - 监听页面的ready操作,注入执行代码脚本生成最终的Web View地址和执行代码。
编译原理
小程序的WXML和WXSS文件需要经过编译才能在Web View中渲染:
- WXSS通过
wcsc编译为JS文件,然后注入到Web View中。 - WXML通过
wcc编译为JS文件,生成虚拟DOM树。对于需要异步获取的数据,会使用虚拟DOM元素进行占位。
通讯系统
小程序的通讯系统基于发布-订阅模式:
- Native层向渲染层和逻辑层注入WeixinJSBridge。
- 通过
invoke调用Native API,通过publish和subscribe实现消息传递。
生命周期
小程序的生命周期包括以下几个关键阶段:
onLaunch:App主应用开始初始化。onLoad:页面加载时触发,一个页面只会调用一次。onShow:页面显示/切入前台时触发。onHide:页面隐藏/切入后台时触发。onReady:页面初次渲染完成时触发。onUnload:页面卸载时触发。
跨端框架
为了应对多平台小程序开发的需求,市面上出现了多种跨端开发框架,其中Taro和uni-app最为流行:
- Taro:采用TypeScript和Rust开发,兼容React和Vue,支持WebPack和Vite。
- uni-app:基于Vue开发,提供了完整的开发工具链和云服务支持。
总结
微信小程序以其独特的架构设计和高效的渲染机制,为开发者提供了一种全新的开发模式。通过深入理解小程序的核心原理,开发者可以更好地利用这一平台,开发出更优质的应用。
热门推荐
Windows 11系统还原完全指南:创建还原点与系统恢复方法
足球转会市场深度解析:从金钱到社交媒体,揭秘顶级球员转会背后的秘密
南开大学数学高分学长考研备考经验分享
为自己讨回公道!启林律师事务所教你如何证明用人单位拖欠工资
提纲、大纲与思维导图:写作规划工具的全面解析
极危物种:IUCN红色名录中的濒危物种分类与保护现状
大厂抢AI人才卷到“实习阶段” 专项形式提前“圈定”
猕猴桃树的嫁接技术,可采用劈接法、切接法和舌接法等
日本人名字大全及其含义
银首饰变黑之谜大揭秘!如何科学保养请看这一篇~
如何自学绘画?新手自学绘画基础线条篇
洗澡要不要搓泥?多久洗一次澡?一文读懂洗澡的真相
保单复效利息应如何计算?计算保单复效利息的方法有哪些?
如何计算保险产品的利息收益?这种收益的可持续性如何分析?
黄金4分钟:如何提高心搏骤停抢救成功率?
电子书(PDF、word等)如何做笔记
怎样办理电子残疾人证?法律视角下的详细解读与指南
咖啡的甜感从何而来?甜感是什么?鼻前、后嗅觉有什么区别?
中餐烹饪知识点
【中餐知识百科】中餐礼仪有哪些 中餐菜谱大全
揭秘电视剧天道中12条人生哲理:加速你的社会智慧觉醒
汉字笔画统一化命名及最新分类法
盘点十本非常好看的男频爽文,都是作者沉淀之作,书荒不要错过!
《观星识吉凶:古法占星教程详解》
短视频就业潮①|无限机遇与个别成功
跳绳有助于便秘排便吗
如何通过持续学习提升投资知识水平
如何管理巴西工人工厂
日军独特的军衔制度,从肩章领章如何看军衔?学会了给影视剧捉虫
向量空间的基、维数与秩与可逆矩阵的研究