主要观点总结
Taro是由京东发起的开放式跨端跨框架解决方案,支持Web开发范式实现小程序、H5、原生APP的跨端统一开发。近期,Taro完成了对纯血鸿蒙的适配,通过Taro on Harmony C-API版本为开发者提供显著优势。该版本带来更丰富的样式适配、更高效的渲染性能、更全面的组件支持,并允许开发者使用Web范式开发媲美原生鸿蒙性能的应用。同时,提供丰富的能力支持、媲美原生ArkTS的高性能运行时逻辑以及针对长列表场景优化的组件等特性。本文介绍了Taro on Harmony C-API版本的技术架构、关键特性、使用教程以及总结与展望。
关键观点总结
关键观点1: Taro作为跨端跨框架解决方案,实现对纯血鸿蒙的适配。
Taro近期完成了对鸿蒙的适配,推出Taro on Harmony C-API版本,支持开发者使用Web技术栈快速构建纯血鸿蒙应用。
关键观点2: Taro on Harmony C-API版本的技术优势。
该版本提供丰富的样式适配、高效的渲染性能、全面的组件支持,允许开发者使用熟悉的Web技术栈开发媲美原生鸿蒙性能的应用。
关键观点3: Taro on Harmony C-API版本的技术架构。
整体技术架构分为三层:应用业务代码所在的ArkVM层、Taro的CSSOM和TaroElement树层以及TaroRenderNode虚拟节点树层。同时,基于鸿蒙提供的VSync机制设置任务处理管线。
关键观点4: 重点特性。
包括常用组件和API的支持、丰富的能力支持如CSS样式和布局、运行时逻辑下沉至C++以提升性能、针对长列表场景提供优化组件等。
关键观点5: 使用教程。
介绍了Taro on Harmony C-API版本的安装和使用方法,包括使用npm安装插件、配置项目路径和编译器、编译项目和鸿蒙原生组件等步骤。
正文
最上层是应用业务代码所在的 ArkVM 层,这一层在 C-API 版本中主要运行业务代码、React 的核心代码以及少量的 Taro 运行时代码。
中间层是 Taro 的 CSSOM 和 TaroElement 树,负责处理上层 Taro 运行时代码传递下来的指令,比如 TaroElement 节点树创建,绑定关系以及设置属性等操作。
最下层存放的是 TaroRenderNode 虚拟节点树,这棵节点树和真正的上屏节点树是一一对应的关系,同时在 TaroRenderNode 节点树内会创建对应的 Yoga 节点。
同时 Taro 还基于鸿蒙提供的 VSync 机制设置一套任务处理管线,来处理中间层和下层节点树产生的样式匹配、节点测量、节点布局、样式设置以及节点上屏等任务,来保证任务的时序性和最后上屏渲染结果的正确性。
重点特性
丰富的能力支持
常用组件和 API 支持
在 C-API 版本的 Taro on Harmony 中,我们不仅完整支持了 React 18+,另外支持了 View、Text、Image、Video 等近 33 个 Taro 组件,对于常用的 API,如 getSystemInfo、getStorage 等也是在 C-API 版本中得到了完整的支持,而且针对逻辑较为复杂的 API 如:createSelectorQuery 以及 createIntersectionObserver,我们将这些 API 在 C++ 侧进行了重新的实现,大幅提升了他们的执行性能。
常用样式支持
在 C-API 版本中,我们对支持了大部分常见的 CSS 能力:
-
支持常见的 CSS 样式和布局,支持 flex、伪类和伪元素
-
支持常见的 CSS 定位,绝对定位、fixed 定位
-
支持常见的 CSS 选择器和媒体查询
-
支持常见的 CSS 单位,比如 vh、vw 以及计算属性 calc
-
支持 CSS 变量以及安全区域等预定义变量