亿元级IT行业生态链
一站式解决方案提供商

24小时免费咨询电话
010-52725243

新闻资讯

AJIA NEWS

Ionic vs React Native: 前端框架之争,你用的是哪一个

来源:开源中国 发布日期:2018-02-23

南京阿甲科技软件研发团队的程序员提出,在创建移动应用程序时面临的主要问题之一就是选择何种开发平台,而两大移动应用的平台iOS和Android的竞争已经超过十年了,因此为平衡两大平台寻求二者之间的妥协,更是为从开发的预算与时间的效益角度来考虑,出现了混合和可以跨平台的框架。

讨论这个主题时,首先想到的两个框架是Ionic和React Native,他们提供了一个解决问题的先进方案,还提供了易于获取的技术支持。

简要介绍框架

在开始分析和比较这两个框架的关键特性之前,让我们分别看一下每个框架。

Ionic:Ionic Framework 早在 2015 年就由 Drifty Co. 软件供应商定制协议为Apache Cordova。该框架的主要目标是开发混合软件,其接口和性能将尽可能接近本地解决方案。Ionic基于CSS,HTML5,Sass和Angular 1.x。到2016年,Drifty Co.发布了基于Angular 2.x的第二版Ionic-Ionic 2。

Ionic Framework 对于初学者是很友好的,它具有先进的CLI(有助于启动各种有用的功能)。该框架还有大量的便宜插件(价格不超过20 cu),开发人员无需使用第三方解决方案。如果你无法准确找到你需要的东西,可以看看 Cordova 插件 - 它们可以与基于该框架的软件完美地结合在一起。

React Native。在移动开发领域引起了轰动,React Native 是来自 Facebook 开发人员发布的完整的 JS 框架。RN 为开发人员提供了创建本地应用程序非常相似的跨平台软件的能力,它基于 ReactJS 库。

Ionic vs. React Native:开发者必须考虑的各个方面

如果您对开发工具的最终选择归结为这两种,那么您一定要了解 Ionic 和 React Native 的不同。

开发应用程序的类型。Ionic 和 React Native 之间的第一个也是最重要的一个区别是它们创建的应用程序的类型。Ionic 框架用于开发混合软件。使用 React Native,可以为每个选定的平台本地组件创建不同的选项。

可建模解决方案。Ionic 是一个适合“一次编写,随处运行”的框架。这意味着,对正确书写和结构化的要求更高。另外,Ionic 允许用户可以在任何平台上开发同样的软件。但是,开发人员注意到这个框架创建的用户界面有些“粗糙”。关于 React Native,可以创建一个尽可能接近本机的设计,虽然这个过程比 Ionic 要耗时,因为特定的元素必须为特定平台设置。

性能。至于性能方面,混合应用程序可以说比跨平台应用程序慢,因为它们的速度取决于 WebView。RN 具有跨平台方法更快的应用速度特性外,它还具有 React Fiber 算法,该算法去年实现了视觉渲染加速的目标(但是本质上来说,有 RF 的应用程序不会加速其操作;只有用户眼睛看到的组件的性能会加速)。这里的结论很简单。在 React Native vs. Ionic 的性能中, React Native 框架获胜。

个人风格。Ionic 2 使用普通的 SASS 预处理器。在大多数情况下,在任何平台上创建一个通用样式是很有必要的。但是要注意的是“在大多数情况下”。但是在时间有限的情况下,浪费时间来重新定义每个平台的每个组件是不切实际的。React Native 框架用 JavaScript 对象的格式表示的 CSS 详细语法,最终适应每个平台的需求。用 RN 编码,设计者只定义绝对值,没有机会定义比率。所以,如果你想集中在功能上,而不是实现的方式上,RN 是可取的。

合作适应性。Ionic基于MVC-framework和Angular。因此可以在不同视图上区分相同的数据。所以可以让项目中成员的工作流程保持独立。相反,RN 可能会以某种方式限制合作,这与 Ionic 的观点是背离的。

Syntax nuances. In order to work with Ionic, knowledge of JavaScript or some other language that translates into JS (TypeScript, for example) is required. If you decide to work with React Native, prepare to study ReactJS, JSX, as well as Redux and EcmaScript 2015, in great detail.

语法细微差别。要使用 Ionic,需要了解JavaScript或者将其他的语言翻译成JS。要使用React Native框架,需要了解ReactJS,JSX以及Redux和EcmaScript 2015的知识。

应用包装程序。如果你的项目由许多独立的组件组成,那么打包和调试对于开发者来说是一个非常头痛的问题。RN 不会是这种情况。这个框架支持 Hot Reload ,它允许在保存状态的同时重新打包和更新已启动的应用程序。Ionic 在这方面有点落后。它只能提供 Live Reload 选项,而且在一些情况下还不能使用。

学习曲线。如果你之前没有学习任何的框架,Ionic 更容易让新手掌握,该框架与CSS创建的解决方案相同,还有庞大的社区支持。实际案例的结构化文档丰富了 Ionic。它还具有大量的现成组件,不需要重新编程。

RN 则比较适合有经验的开发人员。它不以任何方式限制用户,给用户足够的自由。另一方面,RN的文档编制不够详尽,初学者会感到困惑。

应用程序的大小:如何客观地评价在这两个框架下创建的应用程序的性能?可以简单地在命令提示符界面中生成空白的应用程序:

ionic start myApp blank –V2 //command for Ionic 2

react-native init AwesomeProject //command for React Native

估计一下两个框架创建的应用程序的大小:

阿甲 科技 估计一下两个框架创建的应用程序的大小

Ionic 和 RN 都支持 Android 和 iOS 平台的软件开发。如果还需要在 Windows 通用平台具有兼容性,那么需要在 React Native 中安装支持插件(Ionic 默认支持该平台)。正如你所看到的,最合适的选择是Android开发中使用Ionic 2 和 iOS系统中使用React Native。

选择哪个框架?我们同意很难做出决定,因为两者都有各自的优点。选择哪一个框架,都是根据项目决定的。

免责声明:本文由小编转载自网络,旨在分享提供阅读,版权归原作者所有,如有侵权请联系我们进行删除。

阿甲科技

欢迎访问阿甲科技集团官方网站!