随着移动应用开发框架数量的增加,2018年Vue Native的推出让开发者有能力使用Vue.js代码来创建React Native移动应用。
因为Vue Native将Vue.js的语法包裹在React Native周围,所以这两个框架非常相似。例如,两者都是跨平台框架,意味着相同的代码库可以编译成Android和iOS环境的应用程序。
这意味着开发者只需学习一种框架语法并编写一次代码,而不像学习和编写iOS的Objective-C或Swift以及Android的Java或Kotlin。
这两个框架都是开源的,任何人都可以贡献他们的源代码并使用。基本上,在React Native中做的一切都可以在Vue Native中完成。
那么,如果Vue Native的核心是React Native,为什么还要有一个单独的框架呢?Vue Native成立的目的是将Vue的所有优势与React Native的优势相结合,提供一些React Native中没有的功能。
为了探索其中的差异,我们将看看React Native和Vue Native的功能、社区、它们的易用性,以及更多。
功能性
在React Native中工作时,开发者可以使用React的语法和核心原则来构建原生应用。它通常被称为无主的框架,意味着它带有很少的官方库和功能。
它的创造者倾向于在构建应用和解决不同问题时给开发者自由,让那些不想从头开始写代码的开发者使用社区开发的第三方库构建不同的功能。
这些库中的一些包括。
这一优势使开发者能够用JavaScript创建原生移动应用程序。而且,由于它只在不同平台上使用一个代码库,公司React Native可以节省时间和金钱。
与其雇用两个不同的团队--一个用于iOS,一个用于Android--公司可以雇用一个React Native团队来构建两个版本,减少他们工资单上的开发人员数量。
然而,即使是可以被视为优势的第三方库,这些库也经常变得过时。如果社区对某一库的支持不够强大,而且不经常更新,就会出现不兼容的问题。
有了Vue Native,它利用了React Native,开发者获得了React Native的所有好处。因为Vue Native的代码在编译成移动应用之前会转入React Native,所以除了Vue之外,你不需要从头开始学习React。
因为Vue Native使用React Native包来访问移动设备API,开发者可以访问React Native的社区和它的库。
与React Native一样,使用Vue Native的公司可以通过为Android和iOS应用使用一个代码库来节省时间和金钱。
但是,由于Vue Native对React Native的依赖性,该框架的全部增长都依赖于React Native的增长,包括React Native库的维护和生产。
而且由于Vue Native继承了React Native的所有限制,如果React Native被废弃,Vue Native就无法生存。
然而,Vue Native比React Native有一个优势,就是它允许双向数据绑定。这意味着开发者可以编写更少但更简洁的代码,加快 开发速度,并创建具有双向数据流的功能,而不像React Native的单向数据流。
因为Vue Native是Vue语法包裹着React Native,两个框架都有类似的特点和功能。然而,Vue Native的双向数据绑定确实提供了更快的开发速度。
性能方面
与使用WebViews的混合应用程序不同,本地应用程序直接与平台的本地组件互动。正因为如此,像React Native和Vue Native这样的原生应用更快、更高效,因为它们是为运行的平台量身定做的。
然而,React Native和Vue Native并不支持多线程。这两个框架的进程不是并排运行,而是一个接一个地运行,使应用程序变慢。
例如,当一个页面要渲染时,一个线程处理页面所需,而另一个线程则渲染页面的用户界面。如果数据线程正在处理大量的数据并拖住UI线程,应用程序可能会冻结或运行得很慢。
对于这两个框架,编译、运行和测试应用程序需要安装Xcode或Android Studio,为编译过程增加了一个步骤,而不像其他移动开发框架那样允许在网络浏览器中运行应用程序。
虽然Vue应用程序通常比React应用程序稍快,但Vue Native代码在任何编译开始之前就转到React Native。因此,Vue Native继承了React Native中出现的任何性能问题,使得这两个框架的性能实际上是相同的。
社区
在GitHub上有超过2000个贡献者和不到70万的用户,在Stackoverflow上有一个庞大的社区,React Native拥有开发者学习和成长所需的支持。
而且,由于React Native是基于JavaScript的,是一个跨平台的框架,所以它在开发者中很容易获得和流行。
React Native之所以流行,也是因为Facebook创造了它。通过对该框架的大量投资,Facebook目前在其许多应用程序中使用它。
其他使用React Native框架的公司包括。
- 沃尔玛
- 微软
- 特斯拉
- 沃尔玛
- 迪斯科
- 淘宝网
- 淘宝网
- 淘宝
由于Vue Native仍然相当新,网上没有很多资源和资料供开发者使用。它在GitHub上只有不到20个贡献者和不到1000个用户,在Stackoverflow上有一个小型社区。不过,它确实有全面的文档。
- Spikedmelon
- TurkDevOps
- 金融科技联盟
由于React Native存在的时间较长,并且得到了Facebook的支持,更多的开发者和大公司使用它,所以它显然在这里获得了胜利。
学习曲线
作为一个流行的JavaScript框架,Vue.js也被称为是最容易学习的框架之一,其简单的HTML和CSS的单文件组件和JavaScript。
而且由于Vue的语法糖,其语法比React Native的语法更容易阅读,更简洁。
然而,React Native使用JSX作为其模板语言。React Native使用单独的组件,在同一个文件中包含属于某个组件的标记和逻辑,而不是通过将它们放在不同的文件中来分离标记和逻辑,这是通过JSX实现的。
这种面向组件的方法使开发者能够一次性创建组件,并根据需要通过结合标记、造型和逻辑多次重复使用。
JSX使创建这些组件变得简单,而且由于它是静态类型的,开发者可以及早发现错误,提高调试和开发质量。
它还能在编译时优化代码,因此由JJSX生成的JavaScript代码比直接用JavaScript编写的同类代码运行得更快。
然而,正因为如此,开发人员不能使用CSS进行样式设计,只能用JavaScript进行样式设计。
虽然JSX并不是特别困难,但大多数开发人员使用HTML和CSS进行标记和样式设计,适应这种新的范式可能需要一些时间。
下面是一个React Native中JsX和造型的例子。
import React from 'react';
import { Text } from 'react-native';
const Example = () => {
return (
<Text style={[ color: 'red' ]}>Example text in React Native!</Text>
);
}
export default Example;
要使用JSX,开发者必须导入React 库和任何他们想使用的React Native组件;在这个例子中,用于显示文本的React Native组件是Text 。
Example 函数返回一行文本,并在其上应用一些基本的样式,使文本变成红色,Text 标签标记被嵌入到JavaScriptExample 函数中。这个样式是JavaScript,而不是CSS。
用export default 导出组件可以让你在任何地方使用这些组件。
现在,这里有一个Vue Native代码的例子。
<template>
<text class="text-color">Example text in Vue Native!</text>
</template>
<style>
.text-color {
color: red;
}
</style>
<script>
</script>
如果你有网页开发的背景,上面的Vue代码应该是很直观的。所有标记都写在template 标签内,类似于web开发中的html 标签。
text 标签代表Vue Native用于显示文本的组件。通过给它分配一个名为text-color 的类,你可以使用style 标签中的类名对文本进行CSS样式处理。
你也可以在script 标签内编写JavaScript代码,来操作你的应用程序中的标记和数据。
由于其代码结构的直观性,Vue Native通常被认为比React Native更容易学习。
对技能的需求
由于它在开发者和企业中的受欢迎程度,在市场上的时间,以及Facebook的强大支持,开发者市场对React Native技能有需求。
然而,Vue Native仍未被广泛使用,对Vue Native技能的需求也很少。
除非公司使用Vue.js,并且因为Vue Native的熟悉程度和相对容易的入职过程而更有可能采用它,否则React Native的流行和在知名应用中的使用,使得React Native成为比Vue Native更值得学习的技能。
你应该使用Vue Native还是React Native?
这两个跨平台的移动应用开发框架使用相同的代码,可以被安卓和iOS利用,最终节省了学习不同操作系统的新编程语言的时间、金钱和精力。
当谈到挑选最佳框架时,选择取决于开发者对所选框架的熟悉程度:Vue或React。
通过选择你已经熟悉的框架,你可以为自己节省大量的时间和压力,并在移动应用的开发中一马当先。
但值得注意的是,像就业机会、社区、以及被试用和信任的框架等因素都有利于React Native。所以,如果你不看效率,而是看成熟度和就业市场,React Native很容易就能胜出。
然而,如果你只是想要一个最简单的学习曲线的框架,Vue Native可能更适合你。
The postVue Native vs. React Nativeappeared first onLogRocket Blog.