本机Ui组件与本机模块

时间:2018-07-31 11:53:21

标签: javascript react-native

React-Native中,Native ModuleNative UI Component有什么区别? 我不确定我是否正确理解差异。什么时候使用什么?它们的优缺点是什么?该文档并没有真正的帮助(至少对我而言)。

2 个答案:

答案 0 :(得分:1)

简而言之,本机UI模块是本机窗口小部件,您可以将其用作react组件中的组件。而且,本机模块(不仅仅是小部件)是您可以在React端调用的本机页面中的任何代码。

例如,您可以在iOS和Android上设计横幅,然后将其包装为本机UI模块,以在您的本机JSX代码中使用。

<Banner />

本机模块的一个示例是,假设您需要在react页面中获取设备令牌以获取推送通知。当前,尚无直接获取设备令牌的方法。因此,您需要实现自己的实现,并且可以在JavaScript代码中使用本机模块:

NativeModules.DeviceToken.getDeviceToken();

答案 1 :(得分:0)

您所说的问题有点笼统,但就解释差异而言,本机模块就是您或其他第三方用本机代码编写的模块,例如C ++ NLP模块。而原生UI组件是平台原生的UI组件,例如Android上的TextView。在这种情况下,“本机”是指在不同情况下有一些细微的不同:在模块情况下,“本机”是指“您的代码/库直接在基础OS上运行”,在第二种情况下是“由基础OS提供给您的'。

React native为您包装了大多数Native UI组件(例如TextView),但是有一些例外,这就是为什么您可能需要使用其中一个。

有时您需要的东西JavaScript只是没有给您(例如线程),这就是为什么您可能会用C ++编写模块并使用本机模块API将其公开给React应用的原因。

因此,两者之间并没有真正的比较,它们是完全不同的东西。