【问题标题】:How are React Native modules different from Cordova plugins?React Native 模块与 Cordova 插件有何不同?
【发布时间】:2017-10-11 00:33:47
【问题描述】:

我正在研究基于 Cordova 的混合应用程序与 React Native 之间的比较,我很困惑 React Native 模块与 Cordova 插件有何不同?

(如果两者都相同,那为什么FB要重新发明轮子)

React Native 模块是否像 Cordova 一样支持所有设备功能?

谢谢, 罗希特

【问题讨论】:

    标签: android ios cordova react-native cordova-plugins


    【解决方案1】:

    React Native 模块与 Cordova 插件有何不同?

    React Native 模块和 Cordova 插件都执行相同的任务:它们允许调用框架(React Native 或 Cordova)调用框架中默认不可用的特定原生功能。

    因此,React Native 模块提供的本机功能可能与 Cordova 插件提供的相同,但它们与上面的框架有不同的接口。 因此,可以分解出常见的原生代码并拥有一个原生组件,该组件既可以作为 React Native 模块,也可以作为 Cordova 插件使用。

    例如react-native-background-geolocationcordova-background-geolocation

    由于只有与本机功能的接口不同,因此有人尝试编写一个桥接器以允许将 Cordova 插件用作 React Native 中的模块,例如 react-native-cordova

    【讨论】:

      【解决方案2】:

      主要区别在于 Cordova 使用 HTML5 + CSS + JS 来构建混合应用程序。您的应用程序仍将在 webview 内运行。虽然我从来没有用过,但我可以评论一些东西

      这是什么意思?

      • 我不确定是否支持重要功能,例如蓝牙、图形、图像(Core Graphics、Core Image)以及其他核心功能
      • 性能也不会与原生应用相同

      React Native 在这里有所不同,因为它所做的只是将您的 JS 代码转换为平台的本机代码。性能还是不能一样,但还是比较高的。

      此外,您可以为您的应用程序使用原生模块,以防您找不到其他人已经创建的模块,因此 React Native 仍然可以访问平台下可访问的每个功能

      【讨论】:

        猜你喜欢
        • 2018-04-28
        • 2021-12-06
        • 1970-01-01
        • 2018-11-03
        • 1970-01-01
        • 2019-09-06
        • 1970-01-01
        • 2020-08-06
        • 2019-05-24
        相关资源
        最近更新 更多