【发布时间】:2017-10-11 00:33:47
【问题描述】:
我正在研究基于 Cordova 的混合应用程序与 React Native 之间的比较,我很困惑 React Native 模块与 Cordova 插件有何不同?
(如果两者都相同,那为什么FB要重新发明轮子)
React Native 模块是否像 Cordova 一样支持所有设备功能?
谢谢, 罗希特
【问题讨论】:
标签: android ios cordova react-native cordova-plugins
我正在研究基于 Cordova 的混合应用程序与 React Native 之间的比较,我很困惑 React Native 模块与 Cordova 插件有何不同?
(如果两者都相同,那为什么FB要重新发明轮子)
React Native 模块是否像 Cordova 一样支持所有设备功能?
谢谢, 罗希特
【问题讨论】:
标签: android ios cordova react-native cordova-plugins
React Native 模块与 Cordova 插件有何不同?
React Native 模块和 Cordova 插件都执行相同的任务:它们允许调用框架(React Native 或 Cordova)调用框架中默认不可用的特定原生功能。
因此,React Native 模块提供的本机功能可能与 Cordova 插件提供的相同,但它们与上面的框架有不同的接口。 因此,可以分解出常见的原生代码并拥有一个原生组件,该组件既可以作为 React Native 模块,也可以作为 Cordova 插件使用。
例如react-native-background-geolocation 与cordova-background-geolocation。
由于只有与本机功能的接口不同,因此有人尝试编写一个桥接器以允许将 Cordova 插件用作 React Native 中的模块,例如 react-native-cordova。
【讨论】:
主要区别在于 Cordova 使用 HTML5 + CSS + JS 来构建混合应用程序。您的应用程序仍将在 webview 内运行。虽然我从来没有用过,但我可以评论一些东西
这是什么意思?
React Native 在这里有所不同,因为它所做的只是将您的 JS 代码转换为平台的本机代码。性能还是不能一样,但还是比较高的。
此外,您可以为您的应用程序使用原生模块,以防您找不到其他人已经创建的模块,因此 React Native 仍然可以访问平台下可访问的每个功能
【讨论】: