本文是参考微信小程序官方文档提炼的内容, 个人学习笔记。
Webview
,使用了Exparser
框架自定义组件,与WebComponent
的ShadowDom
高度相似,区别是css
不隔离,并内置了一些组件及原生组件,Exparser
可以在webview
运行本质是执行了一些script
垫片, 所以小程序有代码注入阶段一说法。window
对象,新增了一些小程序对象(wx
, Page
, Component
)JS bridge
通信,数据序列化传输,这里是一个瓶颈,所以有setData
优化及wxs
技术该阶段既能减少代码下载时间又能减少代码注入的时间
2M
,最多20M
, 根据具体也如场景进行分包, 如将tabbar
页面放在主包中B
与分包C
同时依赖一个通用组件 commonA
,默认会将commonA
组件打到主包中,更好的方案时将分包共同依赖的组件打包到另一个包中treeSharking
? 开发者工具会进行treeSharking
吗? 还是通过通过构建工具进行treeSharking
? TODOcorejs
垫片,所以不需要处理es6 API
,babel
只需处理es6
句法(新语法)通常情况下,在小程序启动时,启动页面依赖的所有代码包(主包、分包、插件包、扩展库等)的所有 JS 代码会全部合并注入,包括其他未访问的页面以及未用到自定义组件,同时所有页面和自定义组件的 JS 代码会被立刻执行。这造成很多没有使用的代码在小程序运行环境中注入执行,影响注入耗时和内存占用。
"lazyCodeLoading": "requiredComponents"
app.json
里面配置First Paint
/First Contentful Paint
setData
scroll
事件
scroll
事件<scroll-view>
)或 WXS 响应事件IntersectionObserver
监听元素曝光wxml
节点数量及层级非常建议了解下页面切换的执行流程
从上图可以看出主包及公共代码一定要精简,是对页面切换影响最大的因素。
以下内容为草稿
微信小程序性能指标
- 微信:微信公众平台-小程序---文档
- 支付宝:蚂蚁金服开发平台-小程序---文档
- 淘宝:淘宝开发者平台---文档
- 百度:智能小程序 --- 文档
本文作者:郭敬文
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!