【问题标题】:Is it possible to import a React Native UI component into a native (Android/iOS) project?是否可以将 React Native UI 组件导入原生(Android/iOS)项目?
【发布时间】:2019-12-22 02:52:51
【问题描述】:

目标:开发一个跨平台设计系统以将其导入任何平台(React、React Native、Android、iOS)。

我们的工作内容:一个项目,使用 React Native 开发,其中开发了一些核心 UI 组件,以确保所有其他项目的视觉效果保持一致。该项目作为依赖项导入到另一个成功使用这些组件的 React Native 应用程序中。到目前为止一切顺利。

我们遇到的困难:我们想在原生项目(Android 和 iOS)中导入同一个项目,并将其用作自定义小部件来构建原生 UI。

通过谷歌搜索获得的知识:

  • This 文章显示可以在 Java/Swift 中构建原生组件并在 React Native 项目中使用它们。 我们想反其道而行之

  • 有一个名为 Diez 的 SDK 可用作从 Typescript 到几乎任何语言的转译器。 它处于早期访问阶段,我们不希望依赖 SDK。

tl;博士;是否可以构建一个作为 UI 组件库(即设计系统)的 React Native 项目并将其导入到原生 Android/iOS 项目中?

【问题讨论】:

    标签: android ios react-native


    【解决方案1】:

    没有积极致力于 RN 的本地项目将包含一个 react native 视图 - 您将添加大量内存来加载 javascript 解释器和几秒钟的启动时间来为该视图启动 react native .并且将数据从 native 传递给 RN 是很痛苦的(从 RN 调用 native 不是,但或多或​​少不存在反向路径)。如果您要尝试嵌入 RN(我不建议这样做,选择纯原生或纯 RN),它需要是一个独立的部分,不需要与原生代码交互。

    【讨论】:

    • 同意,但至少对于我目前正在从事的项目而言,情况就是这样:一个 RN 项目作为其他两个原生(遗留)主要项目的模块。所以开销已经发生了。
    • 那么它可能 - 如果您根本不需要本机代码与之交互。您只需将每个视图都设为 ReactView 并拥有自己的 RN 应用程序。但是,如果您需要从应用程序的其他部分向其发送数据,或者从本机控制器代码向其发送命令,则确实没有这种机制。
    • 是的,我需要这种交流。这个想法是在 React Native 中设计一个带有所有样式表的按钮,并在本机部分对其行为(例如单击方法)进行编码。
    • 是的,这行不通。而且,如果您要使用大量组件来执行此操作,那将是巨大的内存密集型 - 反应视图并不便宜。您可以针对新闻提要中的故事之类的内容执行此操作,而不是针对单个按钮。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-31
    • 2016-06-03
    • 2019-11-05
    • 1970-01-01
    • 2016-12-21
    • 1970-01-01
    相关资源
    最近更新 更多