现在我们来比较一下VueJS和React,Angular,Ember,Knockout和Polymer等其他框架的比较。
1. VueJS与React比较
虚拟DOM
虚拟DOM是DOM树的虚拟表示。 使用虚拟DOM,创建一个与真实DOM相同的JavaScript对象。 每当需要对DOM进行更改时,都会创建一个新的JavaScript对象并进行更改。 之后,两个JavaScript对象进行比较,最后的更改在真实的DOM中更新。
VueJS和React都使用虚拟DOM,这使得它更快。
模板与JSX
VueJS分别使用html
,js
和css
。 初学者很容易理解和采用VueJS风格。基于模板的VueJS方法非常简单。
React使用jsx
方法。ReactJS的一切都是JavaScript。HTML和CSS都是JavaScript的一部分。
安装工具
React使用create react app
,VueJS使用vue-cli /CDN/npm
。 两者都非常容易使用,并且项目建立了所有的基本要求。 React需要构建Webpack,而VueJS则不需要。 我们可以从使用cdn库的jsfiddle
或codepen
中的任何地方开始编码VueJS。
受欢迎程度
React比VueJS更受欢迎。 React的工作机会不仅仅是VueJS。 React背后有一个很大的名字,也就是Facebook,使它更受欢迎。 因为React使用JavaScript的核心概念,所以它使用JavaScript的最佳实践。一个和React一起工作的人对于所有的JavaScript概念都是非常好的。
VueJS是一个发展中的框架。 目前,与React相比,VueJS的就业机会较少。 据调查,许多人正在适应VueJS,这可以使其比React和Angular更受欢迎。 有一个很好的社区正在研究VueJS的不同功能。vue路由器由这个社区维护定期更新。
VueJS采用了Angular和React的优秀部分,并建立了强大的库。 VueJS比React/Angular快得多,因为它的轻量级库。
2. VueJS与Angular比较
相似之处
VueJS与Angular有很多相似之处。 v-if
,v-for
等指令与ngIf
,ngFor
的Angular几乎相似。它们都有一个用于项目安装的命令行接口用来构建它。 VueJS使用Vue-cli
和Angular使用angular-cli
。 两者都提供双向数据绑定,服务器端渲染等。
复杂程度
Vuejs很容易学习。 如前所述,初学者可以使用VueJS的CDN库,并开始使用codepen
和jsfiddle
。
对于Angular来说,需要经过一系列的安装步骤,而初学者也很难开始使用Angular。 它使用TypeScript进行编码,这对于来自JavaScript核心背景的人来说很困难。 但是,对于有Java和C#背景的用户来说更容易学习。
性能
决定性能的取决于用户。 VueJS文件的大小比Angular轻得多。 以下链接提供了框架性能的比较:http://stefankrause.net/js-frameworks-benchmark4/webdriver-ts/table.html
受欢迎程度
目前,Angular比VueJS更受欢迎。 很多组织都使用Angular,因此非常受欢迎。 在Angular中经验丰富的求职者也更多地获得工作机会。 但是,VueJS正在占据市场的位置,可以被认为是Angular和React的一个很好的竞争对手。
依赖
Angular提供了很多内置功能。 我们必须导入所需的模块并开始使用它,例如@angular/animations
,@angular/form
。
VueJS没有Angular的所有内置功能,需要依靠第三方库来处理。
灵活性
VueJS可以很容易地与任何其他大项目合并,没有任何问题。 Angular不会那么容易与任何其他现有项目合作。
向后兼容性
我们都知道有AngularJS
,Angular2
和Angular4
。 AngularJS
和Angular2
有很大的不同。 在AngularJS
中开发的项目应用程序由于核心的不同而不能转换为Angular2
。
VueJS的最新版本是2.0,并具有向后兼容性。 它提供了很好的文档,这很容易理解。
TypeScript
Angular使用TypeScript进行编码。 用户需要掌握Typescript
的知识才能开始使用Angular。 但是,可以从jsfiddle
或codepen
中的任何位置开始使用VueJS编码使用cdn库。 我们可以使用标准的JavaScript,这很容易开始使用。
3. VueJS与Ember比较
相似之处
Ember提供了Ember命令行工具,即用于Ember项目的易于安装和编译的ember-cli
。VueJS还有一个命令行工具vue-cli
来启动和构建项目。
它们都具有诸如路由器,模板和组件等特性,使得它们在UI框架中非常丰富。
性能
与Ember相比,VueJS有更好的表现。 Ember增加了一个微光渲染引擎,目的是提高重渲染性能,这与VueJS和React使用虚拟DOM类似。 但是,与Ember相比,VueJS有更好的表现。
4. VueJS与Knockout比较
Knockout提供了很好的浏览器支持。它支持IE的较低版本,而IE8及以下版本不支持VueJS。 Knockout的发展速度已经放缓。近来也没有太多的人气。
另一方面,VueJS开始越来越受欢迎,Vue团队定期更新。
5. VueJS与Knockout比较
Polymer库是由Google开发的。 它用于许多Google项目,例如Google I/O,Google Earth,Google Play Music等。它提供了与VueJS类似的数据绑定和计算属性。
Polymer自定义元素定义包括普通的JavaScript/CSS,元素属性,生命周期回调和JavaScript方法。 相比之下,VueJS允许轻松使用JavaScript/html和CSS。
Polymer使用Web组件功能,并且需要浏览器的polyfills
,否则不支持这些功能。 VueJS没有这样的依赖关系,并且在IE9+的所有浏览器中工作正常。