当前位置: 首页 > news >正文

怎么选择一个好的友情链接网站万网是做什么的

怎么选择一个好的友情链接网站,万网是做什么的,wordpress首页分类调用,网站tag标签功能实现写在前面 React Native (RN) 是一个用于构建跨平台移动应用的框架。它允许开发者使用 JavaScript 和 React 来编写应用程序#xff0c;并将其转换为原生代码。虽然 RN 提供了许多内置的组件和 API#xff0c;但有时候你可能需要访问原生平台的特定功能或性能优化。为此…写在前面 React Native (RN) 是一个用于构建跨平台移动应用的框架。它允许开发者使用 JavaScript 和 React 来编写应用程序并将其转换为原生代码。虽然 RN 提供了许多内置的组件和 API但有时候你可能需要访问原生平台的特定功能或性能优化。为此RN 提供了多种方式来桥接原生平台能力包括使用 Turbo 模块、C 实现跨平台的原生模块、自定义 C 类型和 Fabric 原生 UI 组件。 本文将详细介绍这些方法并提供一些示例代码和实践建议。 桥接原生平台能力 RN 的核心思想是将 JavaScript 代码转换为原生代码。然而并不是所有的原生功能都可以直接在 JavaScript 中使用。为了解决这个问题RN 提供了一个桥接机制允许你在 JavaScript 和原生代码之间传递数据和调用方法。 Native Module Native Module 是 RN 中最基本的桥接方式。它允许你在原生平台上编写代码并将其暴露给 JavaScript。要创建一个 Native Module你需要在原生平台上编写相应的代码并在 JavaScript 中使用 NativeModules API 来访问它。 以下是一个简单的示例演示如何在 iOS 平台上创建一个 Native Module并在 JavaScript 中使用它 Objective-C // MyNativeModule.h #import React/RCTBridgeModule.hinterface MyNativeModule : NSObject RCTBridgeModuleend// MyNativeModule.m #import MyNativeModule.himplementation MyNativeModuleRCT_EXPORT_MODULE();- (dispatch_block_t)sayHello:(NSString *)name callback:(RCTResponseSenderBlock)callback {NSLog(Hello, %, name);callback([Hello, , name]);return ^{NSLog(Goodbye, %, name);}; }end在这个示例中我们定义了一个名为 MyNativeModule 的 Native Module它有一个名为 sayHello 的方法接受一个字符串参数 name并在控制台中打印出一条欢迎消息。同时它还返回一个闭包用于在调用结束后打印出一条再见消息。 JavaScript import { NativeModules } from react-native;const { MyNativeModule } NativeModules;MyNativeModule.sayHello(John, (result) {console.log(result); // 输出[Hello, , John] });在这个示例中我们首先导入了 NativeModules API。然后我们使用 MyNativeModule 对象来调用 sayHello 方法并传递一个字符串参数 name 和一个回调函数。回调函数将接收到一个数组作为参数包含了欢迎消息的前缀和 name 的值。 Native UI Component 除了 Native ModuleRN 还支持 Native UI Component。Native UI Component 允许你在原生平台上编写自定义的 UI 组件并将其嵌入到 RN 应用程序中。 以下是一个简单的示例演示如何在 Android 平台上创建一个 Native UI Component并在 JavaScript 中使用它 Java // MyNativeComponent.java import com.facebook.react.bridge.ReactContext; import com.facebook.react.bridge.JSApplication; import com.facebook.react.uimanager.SimpleViewManager; import com.facebook.react.uimanager.ThemedReactContext; import com.facebook.react.uimanager.annotations.ReactProp;public class MyNativeComponent extends SimpleViewManagerMyNativeView {public static final String REACT_CLASS MyNativeComponent;Overridepublic String getName() {return REACT_CLASS;}Overrideprotected MyNativeView createViewInstance(ThemedReactContext context) {return new MyNativeView(context);}ReactProp(name text)public void setText(MyNativeView view, String text) {view.setText(text);} }// MyNativeView.java import android.content.Context; import android.widget.TextView;public class MyNativeView extends TextView {public MyNativeView(Context context) {super(context);}public void setText(String text) {super.setText(text);} }在这个示例中我们定义了一个名为 MyNativeComponent 的 Native UI Component它有一个名为 text 的属性用于设置文本内容。同时我们还定义了一个名为 MyNativeView 的原生视图类用于显示文本内容。 JavaScript import React from react; import { View, Text } from react-native; import { MyNativeComponent } from react-native;const App () {return (ViewMyNativeComponent textHello, World! //View); };export default App;在这个示例中我们首先导入了 MyNativeComponent。然后我们在 App 组件中使用它并设置了 text 属性的值。 Turbo 模块 Turbo 模块是 RN 中的一种新型的原生模块它可以在不需要 JavaScript 线程的情况下直接在原生线程上执行代码。这样可以大大提高性能尤其是在处理大量数据或进行复杂计算时。 以下是一个简单的示例演示如何在 iOS 平台上创建一个 Turbo 模块并在 JavaScript 中使用它 Objective-C // MyTurboModule.h #import React/RCTTurboModule.hinterface MyTurboModule : NSObject RCTTurboModuleend// MyTurboModule.m #import MyTurboModule.himplementation MyTurboModule- (void)add:(double)a b:(double)b resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {double result a b;resolve([ (result) ]); }end在这个示例中我们定义了一个名为 MyTurboModule 的 Turbo 模块它有一个名为 add 的方法接受两个数字参数 a 和 b并返回它们的和。 JavaScript import { NativeModules } from react-native;const { MyTurboModule } NativeModules;MyTurboModule.add(1, 2).then((result) {console.log(result); // 输出3 });在这个示例中我们首先导入了 NativeModules API。然后我们使用 MyTurboModule 对象来调用 add 方法并传递两个数字参数。由于 add 方法是异步的我们使用 then 方法来处理结果。 使用 C 实现跨平台的原生模块 如果你需要在 RN 应用程序中使用一些高性能的原生库或算法可能需要使用 C 来实现跨平台的原生模块。RN 提供了一个名为 react-native-cxx 的库用于简化这个过程。 以下是一个简单的示例演示如何在 RN 应用程序中使用 C 实现的原生模块 C // MyNativeModule.h #include react-native-cxx/JSI.hnamespace MyNativeModule {void install(jsi::Runtime rt); }// MyNativeModule.cpp #include react-native-cxx/JSI.h #include iostreamnamespace MyNativeModule {jsi::Function sayHello(jsi::Runtime rt) {return jsi::Function::createFromHostFunction(rt,jsi::PropNameID::forAscii(rt, sayHello),1,[](jsi::Runtime rt, const jsi::Value thisVal, const jsi::Value *args, size_t count) {std::string name args[0].asString(rt).utf8();std::cout Hello, name std::endl;return jsi::Value::undefined();});}void install(jsi::Runtime rt) {rt.global().setProperty(rt, jsi::PropNameID::forAscii(rt, MyNativeModule), jsi::Object(rt));rt.global().getProperty(rt, MyNativeModule).asObject(rt).setProperty(rt, jsi::PropNameID::forAscii(rt, sayHello), sayHello(rt));} }在这个示例中我们定义了一个名为 MyNativeModule 的 C 原生模块它有一个名为 sayHello 的方法接受一个字符串参数 name并在控制台中打印出一条欢迎消息。 JavaScript import { NativeModules } from react-native;const { MyNativeModule } NativeModules;MyNativeModule.sayHello(John);在这个示例中我们首先导入了 NativeModules API。然后我们使用 MyNativeModule 对象来调用 sayHello 方法并传递一个字符串参数 name。 高级自定义 C 类型 在某些情况下你可能需要在 C 原生模块中使用自定义的数据类型。RN 提供了一个名为 react-native-cxx 的库用于简化这个过程。 以下是一个简单的示例演示如何在 RN 应用程序中使用自定义的 C 类型 C // MyNativeModule.h #include react-native-cxx/JSI.hnamespace MyNativeModule {class Person {public:std::string name;int age;Person(std::string name, int age) : name(name), age(age) {}};void install(jsi::Runtime rt); }// MyNativeModule.cpp #include react-native-cxx/JSI.h #include iostreamnamespace MyNativeModule {jsi::Function greet(jsi::Runtime rt) {return jsi::Function::createFromHostFunction(rt,jsi::PropNameID::forAscii(rt, greet),1,[](jsi::Runtime rt, const jsi::Value thisVal, const jsi::Value *args, size_t count) {Person person args[0].asObject(rt).asHostObject(rt).getHostObject(rt).asPerson();std::cout Hello, person.name ( person.age ) std::endl;return jsi::Value::undefined();});}void install(jsi::Runtime rt) {rt.global().setProperty(rt, jsi::PropNameID::forAscii(rt, MyNativeModule), jsi::Object(rt));rt.global().getProperty(rt, MyNativeModule).asObject(rt).setProperty(rt, jsi::PropNameID::forAscii(rt, greet), greet(rt));} }在这个示例中我们定义了一个名为 Person 的自定义 C 类型并在 greet 方法中使用它。greet 方法接受一个 Person 对象作为参数并在控制台中打印出一条问候消息。 JavaScript import { NativeModules } from react-native;const { MyNativeModule } NativeModules;const person {name: John,age: 30, };My
http://www.hkea.cn/news/14318834/

相关文章:

  • 搭建源码下载站网站数字今天科技 网站
  • 做网站及APPwordpress编辑器移植
  • 网站投票活动怎么做seo怎么优化网站
  • 网站建设 上海网站建山西格泰网站建设
  • 云南微网站制作哪家好wordpress多个函数文件路径
  • 广州做护肤品的网站免备案cdn
  • 网站建设华科技台州网站公司建站
  • 营销型网站用什么模版合适标智客logo在线设计生成器免费
  • 未备案的网站百度400电话
  • 怎么做地区网站网页设计作业成品代码免费
  • 做偏门网站网店美工主要负责
  • 做网站编辑需要会什么网站顾客评价
  • 网站建设相关网站php网站方案
  • 外贸五金网站建设wordpress短代码插件TD
  • 二级网站免费建网站推广营销策划
  • 关闭 百度云加速 后网站打不开了wordpress 头部
  • 网站内链技巧做网站好
  • 图书馆网站建设教程织梦手机网站怎么做
  • 常见网站建设网站备案后更换主机
  • 免费网站建设软件有哪些营销图片素材
  • 那个网站做足球测网络营销的网站
  • 阿里云租的域名怎么做网站wordpress 安卓适配
  • 程序员怎么做网站赚钱好用的wordpress代码编辑器
  • 做一网站需要多少钱推广seo网站
  • 网站建设360做响应式网站兼容哪几个尺寸
  • 海南建设网站网站开发定制宣传图片
  • 监控直播网站开发怎样制作购物网站 微信转发
  • 西安网站建设哪个好python 做的网站
  • 电商网站代码蚌山网站建设
  • 建设在线购物网站安徽省建设厅证件查询官网