度流

让代码更简单

当前位置:网站首页>休闲> 正文

京东开源T

近来,京东正式开源了Taro on。 HarmonyOS。C-A。PI。版别,为。鸿蒙。运用跨端开发供给高功能结构。这次版别的发布,带来了更丰厚的款式适配、更高效的烘托功能、更全面的组件支撑,让。开发

近来 ,京东京东正式开源了Taro on 。开源 HarmonyOS。京东C-A 。开源PI 。京东版别 ,开源为。京东鸿蒙 。开源运用跨端开发供给高功能结构。京东这次版别的开源发布 ,带来了更丰厚的京东款式适配、更高效的开源烘托功能、更全面的京东组件支撑,让 。开源开发者。京东以Web范式的方法来开宣布比美鸿蒙功能的运用,为鸿蒙运用生态的丰厚注入强壮的动力。

全体技能架构。

Taro on。 Harmony。OS 技能计划支撑开发者运用 Re。ac 。t DSL 来开发鸿蒙运用,在全体架构上能够简略分为三层 :

283b7f5c-3dcd-11f0-b715-92fbcf53809c.png

图片来历:Taro on HarmonyOS React 。

最上层是运用事务代码地点的 ArkVM 层 ,这一层在 C-API 版别中首要运转事务代码、React 的中心代码以及少数的 Taro 运转时代码 。

中间层是 Taro 的 CSSOM 和 TaroElement 树 ,负责处理上层 Taro 运转时代码传递下来的指令 ,比方 TaroElement 节点树创立,绑定联系以及设置特点等操作。

最基层寄存的是 TaroRenderNode 虚拟节点树 ,这棵节点树和真实的上屏节点树是一一对应的联系,一同在 TaroRenderNode 节点树内会创立对应的 Yoga 节点。

284e7148-3dcd-11f0-b715-92fbcf53809c.png

图片来历:Taro on HarmonyOS React DOM。

一同,Taro还根据鸿蒙供给的VSync机制设置一套使命处理管线 ,来处理中间层和基层节点树发生的款式匹配  、节点丈量 、节点布局、款式设置以及节点上屏等使命 ,来确保使命的时序性和最终上屏烘托成果的正确性 。

要点特性 。

在特性方面 ,Taro on HarmonyOS 技能计划具有“丰厚的才能支撑、比美 ArkTS 的高功能 、支撑 C-API 烘托形式”等三大要点特性。

(1)丰厚的才能支撑  。

C-API 版别的 Taro on HarmonyOS支撑常用组件和 API  ,不只支撑React 18+  ,还支撑View、 。Te。xt、Image 、Video 等近33个Taro组件,以及支撑如getSystemInfo、getStorage 等常用的API,针对逻辑较为杂乱的 API 如 :createSelectorQuery 以及 createIntersec 。ti 。onObserver,也在。C++ 。侧进行了从头的完成 ,大幅提高了履行功能 。

此外C-API 版别支撑大部分常见的 CSS 才能 :

支撑常见的 CSS 款式和布局  ,支撑 flex 、伪类和伪元素 。

支撑常见的 CSS 定位  ,肯定定位 、fixed 定位 。

支撑常见的 CSS 选择器和媒体查询。

支撑常见的 CSS 单位,比方 vh、vw 以及核算特点 calc 。

支撑 CSS 变量以及安全区域等预界说变量 。

一同,在参阅浏览器 CSSOM 的完成方法基础上,在C++完成了一套 CSSOM 逻辑 ,里边包含了款式解析 、款式匹配 、款式组成和运用整个链路的款式处理逻辑。

285eb832-3dcd-11f0-b715-92fbcf53809c.png

图片来历 :Taro on HarmonyOS CSS。

别的  ,Taro 引入了 Yoga 布局引擎来核算烘托节点的方位和巨细 ,最大程度确保 Taro 构建出来的鸿蒙运用中烘托款式和 W3C 标准的一致性。

28708f9e-3dcd-11f0-b715-92fbcf53809c.png

图片来历 :Taro on HarmonyOS Style  。

(2)比美 ArkTS 的高功能。

在 C-API 的版别中 ,ArkVM 层的 Taro 运转时内容已削减到十分薄 ,将 TaroElement 的大部分内容都下沉到了 C++ 侧 ,并在 ArkVM 层取消了他们之间父子联系的绑定,极大地提高了 TaroElement 相关逻辑的功能 。

2884068c-3dcd-11f0-b715-92fbcf53809c.png

图片来历 :Taro on HarmonyOS CAPI。

另一方面,在 C++ 侧 Taro 会指令式地调用 ArkUI 在 C++ 侧供给的 API,来高效地创立节点  、设置特点 、绑定事情以及制作上屏 。

Taro 还针对长列表场景针对性地供给了长列表类型组件 ,并对长列表类型组件进行了优化,供给了懒加载、预加载和节点复用等功能,有效地处理大数据量下的功能问题,进步运用的流通度和用户体会。

28949e20-3dcd-11f0-b715-92fbcf53809c.png

图片来历:Taro on HarmonyOS Virtual List。

(3)支撑 C-API 的烘托形式。

Taro 的组件和 API 是以小程序作为基准来进行规划的 ,因此在实践的鸿蒙运用开发过程中 ,会呈现部分所需的组件和 API 在 Taro 中不存在的状况 ,由于针对这种状况,在 C-API 版别中,Taro 支撑将初始页面或许组件混合编译到 Taro 鸿蒙项目中,支撑 Taro 组件和鸿蒙组件在页面上的混合运用 。

运用指南 。

Taro on HarmonyOS技能计划已开源至Github ,开发者可查找“taro”以获取更多信息 :

https://github.com/NervJS/taro-harmony-capi-library。

运用前 ,开发者可先装置Harmony插件 。

28b6f39e-3dcd-11f0-b715-92fbcf53809c.png

增加插件装备。

28c3d668-3dcd-11f0-b715-92fbcf53809c.png

编译项目。

28d515a4-3dcd-11f0-b715-92fbcf53809c.png

假如需求编译鸿蒙运用,一同运用编译鸿蒙组件 ,能够在页面装备中增加 entryOption: false 表明该页面是组件 ,一同能够用过 componentName 指定组件导知名。

28e508a6-3dcd-11f0-b715-92fbcf53809c.png

Taro on HarmonyOS C-API 版别阅历了京东鸿蒙 APP 的实践 ,从归纳功能 、生态以及开发体会都更上一层楼 。未来,京东团队还会根据当时的 Taro on HarmonyOS C-API 计划,进行多线程的架构晋级以及 React 的 C++ 化 ,进一步提高 Taro 在鸿蒙端侧的功能 ,并极大地下降运用的丢帧率 。欢迎广阔开发者一同参加 Taro on HarmonyOS 的共建,推进 Taro 更好开展。

华为在未来也将继续携手生态同伴共建立异 ,面向底座技能  、通用才能 、垂类职业等场景推出系列开发者场景化处理计划 ,不断提高鸿蒙运用的立异体会和开发功率,与广阔开发者共建昌盛的鸿蒙生态。

感觉很棒!可以赞赏支持我哟~

赞(533) 打赏

评论 抢沙发