【小程序 - 大智慧】深入微信小程序的核心原理
创作时间:
作者:
@小白创作中心
【小程序 - 大智慧】深入微信小程序的核心原理
引用
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开发,提供了完整的开发工具链和云服务支持。
总结
微信小程序以其独特的架构设计和高效的渲染机制,为开发者提供了一种全新的开发模式。通过深入理解小程序的核心原理,开发者可以更好地利用这一平台,开发出更优质的应用。
热门推荐
四柱八字排盘:揭秘命运之轮的奥秘
汽车喷漆油漆房废气处理方案详解
浙江岱山:智慧农业释放蓬勃潜能
全线首座隧道顺利贯通!西香高速建设取得阶段性重要突破
番泻叶的功效与作用,可以减肥吗
面试后多久能收到Offer?这份指南帮你合理规划求职时间线
黄鼻涕黄痰是细菌感染还是病毒
运用互联网技术提高茶叶销售效率
被猫抓伤后感染狂犬病的风险有多大
验血 IgE 升高就是过敏体质吗?医生:看这2点,帮你正确解读
双色云母水位计的应用场景
转账被限额?莫慌!如何提额看过来
2024年6月份海员薪资参考(仅供参考)中国船员最低基薪标准发布!
怎么查询我给谁担保贷款?
古代文官制度的双璧:国子监与翰林院的区别与联系
传统与现代:东方女性美的演变历程
我国癌症高发,食用油是“帮凶”之一?医生提醒:2种油真该拉黑
如何批量去除PDF扫描件中的黑边、杂点、阴影
CCF推荐会议必投攻略:这些顶级会议投完直通录取大门
梅西C罗国家队进球对比:梅西对手更强!C罗虐菜进球数量更多!
12个核心力量训练动作,记得收藏!
基于5G-A通信技术的高铁建网规划研究
去云南景点旅游二十天
什么是螺旋丝锥?详解其特点及在加工中的应用优势
载人飞艇将投入商业运营,文旅领域再添观光“神器”
黄金投资方式全解析:六种主流方式优劣对比
什么是 Tokens?
商品房产权如何登记?这份指南请收好
电脑桌标准尺寸是多少合适?如何选择适合自己的电脑桌
“敦刻尔克大撤退”真的是“小胡子”的失误吗?