背景
uni-app
发布以来,已经服务了几十万开发者。让我们意外,或者说惊喜的是,有大量开发者用uni-app
只编写H5版,并没有多端发布(可参考案例)。
这其实也符合uni-app
的初衷,uni-app
的定位并不是需要多端发布时才用uni-app
。uni-app
是一个使用vue.js
开发所有前端应用的统一框架。对于一个前端工程师来说,使用uni-app
做多端效率更高,做单一端也没问题,并在各端有不少出彩的地方。
过去的版本迭代中,uni-app
已经成为了更好的小程序开发框架,比使用原生微信开发更有优势。(见评测)
在uni-app
2.2的新版中,我们大幅优化了H5版的性能,让使用uni-app
开发的H5,性能体验和直接使用vue.js
开发H5拉齐。
可能不少开发者有某种误解:多端框架要适配多端,所以性能肯定不如原生。我们想纠正一下:
- 切忌想当然,多看数据评测。还不信就自己动手实验
- 请问使用
vue.js
开发的web性能好,还是使用原生js开发web性能好?答案是:使用vue.js
框架。为什么?因为它在底层会自动优化数据同步、虚拟dom,比大多数开发手动写的代码要更高效。同样的,使用uni-app
也如此,框架底层的优化处理比大多数开发者手动写setdata或dom操作更高效。 - 多端适配很多是在编译时做的,并不影响运行时的性能
优化难点
想优化H5端的性能,并不是一件容易的事。
“功能全面”和“小巧极速”,这是一对最难调和的冤家。
为了保障多端的一致性,uni-app
实现了一套小程序的H5版Runtime,支持各种小程序的组件、API、配置。所以uni-app
的H5版拥有比其他框架更好的跨端一致性。
但这也造成了老版的uni-app
,输出H5端时,包体积过大(框架未压缩前有500k,部署gzip后162k)。
这确