专栏名称: 京东科技技术说
京东科技官方技术公众号,传递最佳实践&技术创新。
目录
相关文章推荐
逸言  ·  数据库选型对领域建模的影响 ·  12 小时前  
大淘宝技术  ·  零基础解码Transformer与大模型核心原理 ·  昨天  
伯乐在线  ·  黄仁勋怒怼 Anthropic ... ·  昨天  
伯乐在线  ·  黄仁勋怒怼 Anthropic ... ·  昨天  
伯乐在线  ·  神操作!中国工程师拖 4 箱硬盘 80TB ... ·  2 天前  
伯乐在线  ·  神操作!中国工程师拖 4 箱硬盘 80TB ... ·  2 天前  
51好读  ›  专栏  ›  京东科技技术说

Taro on Harmony C-API 版本正式开源

京东科技技术说  · 公众号  · 程序员  · 2025-06-03 15:46

主要观点总结

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 Harmony React DOM

同时 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 变量以及安全区域等预定义变量







请到「今天看啥」查看全文