0
点赞
收藏
分享

微信扫一扫

vue3和Vite双向加持,uni-app性能再次提升__uni-app__Vue.js

​ni-app​​对​​vue3 & Vite​​的升级,是一个渐进式过程:

  • 2020年9月:小程序平台支持 vue3 开发,小程序平台编译器依然使用webpack;
  • 2021年5月:H5平台支持 vue3 开发,H5平台编译器升级为 Vite;
  • 2021年8月:App平台支持 vue3 开发,App平台编译器升级为 Vite;
  • 2021年11月:小程序平台编译器升级为 Vite;

至此,​​uni-app​​在全平台支持了 ​​Vite​​ 编译及​​Vue 3.x​​ 运行。

so,这场持续一年之久的大版本升级,究竟给​​uni-app​​项目带来了哪些提升?

是时候总结(秀)一波了。

新版 uni-app 框架主要做了三大改进:

  • 重写框架内核:基于​​vue3 + ts​​重写内置组件和API,实现更彻底、更高效的​​tree-shaking​​;
  • 新增支持 Vite 构建工具,在H5平台实现秒开预览;
  • 新增支持 Vue3.x,实现更灵活的开发方式,及更高的运行性能;

基于这三大改进,uni-app项目获得了多快好省四大收益:

  • 更多的语法支持,支持组合式API,业务聚焦,开发效率更高;
  • 更快的编译速度,H5平台十倍加速,小程序、App加速30%以上;
  • 更好的运行性能,用户端响应更快,体验更好;
  • 更小的代码体积,瘦身30%以上,更省体积、更省流量

更多的语法支持

新版​​uni-app​​支持Vue 3.x框架,支持组合式API,可实现更聚焦的业务开发。

Vue 3.x的一些新增特性,​​uni-app​​也已经完全支持,如:

  • 支持​​<script setup>​
  • 支持​​<style scoped>​​、​​<style module>​​、​​State-Driven Dynamic CSS(v-bind)​
  • 支持​​jsx​​、​​tsx​​(h5,app 平台支持,小程序不支持)

另外,在小程序平台,新版​​uni-app​​也扩展了更多的语法,如:

  • 更完善的模板语法支持(如​​class​​、​​style​​ 支持函数、变量等,不再局限数组、对象类型)
  • 更完整的​​props​​ 支持(如传递函数)
  • 更完善的​​slot​​ 支持(如作用域插槽)

更快的编译速度

开发者日常工作中,最无聊的就是等待编译构建。

某乎上还有一个”程序员在等待编译的时候都做什么?“的讨论帖,可见编译时间对开发者而言,是一个多么尴尬无聊的碎片时间。

​uni-app​​本次升级​​vue3 & Vite​​后,在编译时间上有多少改进?带给开发者多少福利?我们安排真实测试,以数据说话。

测试环境说明:

硬件:RedmiBook 14 二代处理器:Intel(R) Core(TM) i7-1065G7 CPU @ 1.30GHz 
内存:16.0 GB
操作系统:Windows 11 专业版 64 位操作系统

关于编译速度,我们做了两个维度的对比:

  • 纵向对比:挑选​​uni-app​​常用项目模板,在H5、小程序、App平台,分别测试​​vue 2.6​​和​​vue 3.x​​的编译时间
  • 横向对比:使用业内优秀的其它跨端框架,创建默认项目模板,记录其编译时间,和​​uni-app​​的​​vue 3.x​​版本进行对比

uni-app 历史版本纵向对比

我们选择​​uni-app默认模板​​、​​uni-starter​​、​​hello-uniapp​​三个项目模板,分别测试​​vue 2.6​​和​​vue 3.x​​的编译时间。

uni-app项目编译时间的采集方式:

  • ​vue 2.6​​版本编译时间 = webpack 的 stats.endTime - stats.startTime
  • ​vue 3.x​​版本编译时间 = 构建工具入口处记录 global.__vite_start_time = performance.now(),构建工具编译完成时:performance.now() - global.__vite_start_time

H5平台

对​​uni-app​​的三个项目模板分别运行到H5平台,进行多次编译测试,并求其均值后,获得如下数据:

vue3和Vite双向加持,uni-app性能再次提升__uni-app__Vue.js_uni-app

举报

相关推荐

0 条评论