首发于极光日报
React Native vs. Cordova

React Native vs. Cordova

随着智能手机和 Web 技术的发展,现在 Web 工程师能够使用前端技术来开发移动应用了。目前已经有很多这方面的框架了, 其中 Cordova 和 React Native 可以说是最热门的两个框架,文章中作者比较了两个框架各自的特点,希望能对这方面的开发者有所参考。: )
  • 设计理念。React Native 的口号是 'Learn once, write anywhere',这不同于一般的旨在跨平台的框架。这意味着我们不能简单的将代码直接运行在不同平台,而 Cordova 则是希望尽可能的重用代码。
  • 开发自由度。首先 Cordova 构建的是一个运行于手机内置浏览器中的单页 Web 应用,因此理论上我们能够使用 jQuery,Angular 等等任何 Web 技术,而 React Native 则有自己的技术栈。
  • 界面表现。Cordova 应用因为本质上是一个 Web 应用,因此某些地方会显得有些怪怪的。比如,列表滚动不像原生那么流畅,点击效果也缺少反馈。当然如果我们想让 Cordova 应用尽可能像原生应用的话,这些问题都是可以解决的,但也意味着我们需要付出额外的努力,而 React Native 在这方面就要好得多了。
  • 性能方面。Cordova 应用的性能很大程度上局限于运行它手机的 WebView 性能。比如,在 iOS 上,同一个 Web 应用,运行在默认 WebView 引擎上要明显慢于运行于 Safari 中。而 Android 也是在 4.0 之后 WebView 才换成了 Chrome 内核,因此,在老旧的 Android 机型上 Cordova 的表现会非常糟糕。进一步,由于 JavaScript 是单线程的,如果我们的 Cordova 应用同时做了很多事情,那可能就会遇到麻烦。React Native 则利用了多线程,因此 UI 渲染能够运行在独立的线程中。

除了上面提到的,作者还比较了「开发工作流」和「扩展性」两个方面的特点,可以点击下面的原文详细查看。

结论:React Native 和 Cordova 针对跨平台应用有着不同的设计理念,也就迎合了不同的需求。Cordova 能够将已有的单页 Web 应用很方便的运行在不同设备上,代价是一些表现效果的损失。React Native 应用会更接近原生应用,但也会需要针对不同系统重新实现某些代码。具体怎么选择,还是要看具体的需求。: )

原文:The Duel: React Native vs. Cordova.

编辑于 2016-08-18 00:09