多次论证、数月研发,我们重写部分Vue
底层、重构uni-app
框架,实现了微信端性能翻倍及更多Vue语法支持。
背景
uni-app
在初期借鉴了mpvue
,实现了微信小程序端的快速兼容,感谢美团点评团队对于开源社区的贡献!
随着使用uni-app
的开发者愈来愈多,业务复杂度不断增加,不少开发者抱怨uni-app
支持的vue语法少,某些场景性能有问题(特别是页面存在复杂组件的情况),这些问题其实是由mpvue
的实现机制导致的,我们以复杂组件的性能问题为例简要说明。
mpvue/wepy 诞生之初,微信小程序尚不支持自定义组件,无法进行组件化开发;mpvue/wepy 为解决这个问题,创造性的将用户编写的Vue组件,编译为WXML中的模板(template),这样变相实现了组件化开发能力,提高代码复用性,这在当时的技术条件下是很棒的技术方案。但如此方案,也导致Vue组件中的数据会被编译为Page中的数据,对组件进行数据更新也会基于路径映射调用Page.setData
。特别是组件较多、数据