HarmonyOS 关于ArkTS中使用Rn搭建问题
基于资料ReactNative for OpenHarmony CAPI版本开发使用指导-5.00.0.302.pdf 中4.2内容搭建,Rn部分功能模块。如图中cpp模块是否必须,处理主要用来通信是否还有其他作用。
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS 关于Rn框架搭建问题(重要)
40浏览 • 1回复 待解决
HarmonyOS RN关于drawer、stack的用法问题
56浏览 • 1回复 待解决
HarmonyOS 如何在ArkTS中使用注解?
252浏览 • 1回复 待解决
arkts 关于异步的问题
351浏览 • 1回复 待解决
HarmonyOS 关于ArkTS中的!使用
773浏览 • 1回复 待解决
HarmonyOS 关于仓颉和ArkTS的问题
37浏览 • 2回复 待解决
如何在ArkTS中使用闭包
632浏览 • 1回复 待解决
HarmonyOS关于TS转ArkTS的语法问题
444浏览 • 1回复 待解决
HarmonyOS Text 中使用 ImageSpan 问题
513浏览 • 1回复 待解决
HarmonyOS RN中使用Dimensions API 获取屏幕宽高不正确
211浏览 • 1回复 待解决
关于 Extend 使用问题
318浏览 • 1回复 待解决
HarmonyOS 关于objectLink在数组对象中使用时,修改数据页面不刷新问题
622浏览 • 1回复 待解决
内网开发环境搭建问题
208浏览 • 1回复 待解决
HarmonyOS 关于Iconfont如何使用问题?
340浏览 • 1回复 待解决
HarmonyOS 关于使用@BuilderParam的问题
417浏览 • 1回复 待解决
HarmonyOS关于API使用的问题
418浏览 • 1回复 待解决
HarmonyOS NavDestination中使用LocalStorage无效的问题
66浏览 • 1回复 待解决
mysqldump搭建从库同步数据问题
3142浏览 • 0回复 待解决
HarmonyOS关于异步Promise的使用问题
471浏览 • 1回复 待解决
HarmonyOS RN相关问题
536浏览 • 1回复 待解决
HarmonyOS RN Codegen问题
56浏览 • 1回复 待解决
jenkins容器中使用docker报错问题
7568浏览 • 2回复 待解决
关于 SO 文件的使用问题
259浏览 • 1回复 待解决
HarmonyOS 在使用Web的同层渲染中使用关于滚动的api无效
226浏览 • 1回复 待解决
HarmonyOS 关于ArkTS不支持ts字面量类型问题
84浏览 • 0回复 待解决
CMakeLists.txt配置文件引入cpp文件配置,三方库配置。
packageProvider.cpp,引入三方库时,需要在这里加入引入的包名,比如:#include “WebViewPackage.h” 和std::make_shared<WebViewPackage>(ctx),详情可以参考rn资料中参考三方库的引入。
SampleTurboModulePackage.cpp SampleTurboModulePackage.h 这两个文件应该是对引入的三方包进行使用,通常引用三方库不需要对这里进行修改,是对三方库通信的,这里就会引用到TurboModule里面的文件。
RN这个文件夹主要是选择不同ArkTS还是capi,在config.ts中// ArkTS/CAPI 开关配置 export const ENABLE_CAPI_ARCHITECTURE = true; 通过配置对rn和HarmonyOS侧链接所使用的ArkTS和capi进行一个选择,建议使用capi,后期主要维护和升级的是capi.
TurboModule这里主要是用于同通信的。
TurboModule:TurboModule是React Native中的一种新的原生模块系统,TurboModules是创建利用某些平台特定API的库的首选方法。它与Fabric和JSI结合使用,可以提供更高效的原生模块调用方式。
TurboModule是React Native中的一个新特性,它旨在改善原生模块(Native Modules)的性能和可维护性。可以通过React Native的「Bridge」帮助JavaScript和原生代码进行交互,并使用跨平台的数据格式 JSON 进行通讯。
旧架构启动时Native会加载所有的Native Modules,导致启动性能变差,以及RAM资源占用大。
Turbo Native Modules与Native Modules相比,存在以下优势:
各个平台的强类型接口声明是一致的;
可以使用C++编写模块或迁移其它平台的原生代码,以此避免在跨平台重复实现模块;
模块支持懒加载,可以节省内存,加快App启动速度;
通过替换Bridge为JSI(使用原生代码编写的 JavaScript 接口),提升JavaScript与原生代码的通讯效率。