作者简介
携程前端框架团队,为携程集团各业务线提供优秀的Web解决方案,当前主要专注:新一代研发模式探索,Rust构建工具链路升级、Serverless应用框架开发、在线文档系统开发、低代码平台搭建、适老化与无障碍探索等。
一、摘要
随着携程接入小程序平台类型的增加,前端需要负责的端越来越多,研发成本也随之成倍增加。为了解决一套代码多端运行的诉求,携程小程序框架不断调整、升级,逐渐形成了携程Taro跨端解决方案。
二、背景
2.1 小程序现状
近几年业界推出了各种小程序平台,每个小程序平台都会提供一个专属的原生小程序DSL, 这些DSL之间或多或少存在一些差异,这意味着使用某一类型小程序DSL编写的代码,无法直接复用到其他小程序平台上,造成开发和维护成本成倍增加。
2.2 业务现状
目前携程支持的小程序业务涉及多个小程序平台,如果全部只使用平台自身的DSL开发,开发人员至少需要同时开发及维护5个活跃版本,开发任务繁重,代码维护困难。此外,每新增一类小程序入口,开发人员必须将原有业务逻辑重写一遍,不仅工作内容重复,而且严重影响业务落地速度。为此,一套代码多端运行的诉求迫在眉睫。
值得注意的是,携程已经接入了多个平台的小程序,使用多端统一开发框架从零开始开发小程序代码既浪费研发资源又不现实。我们需要考虑如何在携程当前已有的小程序代码的基础上使用跨端框架开发新业务、逐步切换原有代码,实现多端统一开发方案的平滑接入。
2.3 解决方案
为了解决上述问题,我们研发了携程Taro跨端解决方案,开发者只需使用Taro框架书写一套代码,便可获得在多个平台皆运行良好的小程序项目。此外,该方案还提供了仓库管理、辅助脚手架、编译功能扩展及过程优化等功能。
三、Taro跨端解决方案设计
3.1 技术选型
为了在保留原有代码的前提下实现一套代码多端运行,我们对市面上的跨端开发框架进行了调研,最终决定使用Taro 3 作为携程小程序的跨端框架。主要是考虑到Taro 3具有以下4项优点:
框架稳定性高
支持的平台种类多
支持使用React 语法规范进行开发
支持Taro和原生混合开发
3.2 整体架构设计
携程小程序随着业务的发展、多平台化趋势和跨端技术的不断演进,逐渐形成了一套多平台复用的Taro跨端解决方案。