Vue.js 是开源的 JavaScript 框架,能够帮助开发者构建出美观的 Web 界面。当和其它网络工具配合使用时,Vue.js 的优秀功能会得到大大加强。如今,已有许多开发人员开始使用 Vue.js 来取代 Angular 和 React.js  。

那么对于 Angular 和 React.js ,开发者该如何选择呢?

下面我们会对这两种框架进行介绍和深度对比。

Vue.js 是前 Google 员工 Evan You 的开发的,并于2014年发布,现已获得了超过57,000个 GitHub star。许多开发人员都大力推荐 Vue,因为它很容易学习。如果你有深厚的 HTML、CSS 和 JavaScript 基础,那么学习 Vue.js 只需几个小时。

Vue 对开发人员最有吸引力的地方是:它的新颖、轻便,而且复杂性很少甚至没有。Vue 不但非常灵活简单,而且还非常强大,同时还提供双向数据绑定功能,就像 Angular 和 React 的虚拟 DOM 功能一样。

Vue 可以帮助开发人员以任何想要的方式来构建应用程序,这是 Angular 做不到的。

Vue.js - 多样化的 JavaScript 框架

作为一个跨平台的,高度进步的框架,Vue 成为了许多需要创建单页应用程序的开发人员的首选。在用于开发 Web 应用程序的典型 MVC 体系结构中,Vue 充当了 View,这意味着它可以让开发者看到数据的显示部分。除了上面提到的基本功能之外,Vue 还有许多其它优秀功能。

我们来看看这些:

1. 容易使用

如果你一直在使用其它框架,那么你可以轻松使用 Vue,因为 Vue 的核心库专注于 View 层,你可以轻松地将其与第三方库进行整合并与现有项目一起使用。

2. 轻便

由于 Vue 主要关注于 ViewModel 或双向数据绑定,因此 Vue 很轻便。Vue 也具有十分基础的文档。Vue 用做 View 层,意味着开发者可以将它用作页面中的亮点功能,比起全面的 SPA,Vue 提供了更好的选择。

3. 学习曲线很低

熟悉 HTML 的开发人员会发现 Vue 的学习曲线很低,同时对于经验较少的开发人员和初学者来说,也能够快速地学习和理解 Vue。

4. 双向绑定

Vue 提供了 v-model 指令(用于更新用户输入事件的数据),使得在表单输入和结构元素上实现双向绑定变得很容易。它可以选择正确的方式来更新输入类型相关的元素。

5. 虚拟 DOM

由于 Vue 是基于 Snabbdom 的轻量级虚拟 DOM 实现,因此 Vue 的性能有些许的提升。这是虚拟 DOM 的主要新功能之一,开发者可以直接进行更新。当你需要在实际的 DOM 中进行更改时,只需执行一次这样的更新功能。

6. 基于 HTML 模板的语法

Vue 允许开发者直接将渲染的 DOM 绑定到底层的Vue实例数据上。这是一个很有用的功能,因为它可以让开发者扩展基本的 HTML 元素,来保存可复用的代码。

Angular:动态框架

Angular 是一个功能齐全的框架,支持 Model-View-Controller 编程结构,非常适合构建动态的单页网络应用程序。

谷歌在2009年开发出了 Angular 并对其提供支持,Angular 包含一个基于标准 JavaScript 和 HTML 的 JS 代码库。Angular 设计的最初目的是作为一个使设计者能够与后端和前端进行交互的工具。

以下是 Angular 的部分最好的功能:

1. Model-View-ViewModel(MVVM)

为了构建客户端Web应用程序,Angular 将原始 MVC 软件设计模式背后的基本原理结合在一起。然而,Angular 没有实现传统意义上的 MVC,而是实现了  MVVM 即 Model-View-ViewModel 模式。

2. 依赖注入

Angular 带有内置的依赖注入子系统功能,这使得应用程序易于开发和测试。依赖注入允许开发者通过请求来获得依赖关系,而不是搜索依赖关系。这对开发人员非常有帮助。

3. 测试

在 Angular 中,可以单独对控制器和指令进行单元测试。Angular 允许开发人员进行端到端和单元测试运行器设置,这意味着也可以从用户角度进行测试。

4. 跨浏览器兼容

Angular 的一个有趣功能是,框架中编写的应用程序在多个浏览器都能运行良好。Angular 可以自动处理每个浏览器所需的代码。

5. 指令

Angular 的指令(用于渲染指令的DOM模板)  可用于创建自定义的 HTML 标记。这些是 DOM 元素上的标记,因为开发者可以扩展指令词汇表并制作自己的指令,或将它们转换为可重用组件。

6. Deep Linking

由于 Angular 主要用于制作单页应用程序,因此必须利用 Deep Linking 功能才能在同一页面上加载子模板。Deep Linking 的目的是为了查看位置 URL 并安排它映射到页面的当前状态。

Deep Linking 功能通过查看页面状态并将用户带到特定内容,而不是从主页中遍历应用程序来设置 URL。Deep Linking 允许所有主要搜索引擎,可以轻松的搜索网络应用程序。

Vue.js 与 Angular--哪一个最好?

究竟哪个框架是最好的 - Angular 还是 Vue?下面我们通过以下几点来深入研究:

学习曲线

在学习曲线方面,Vue.js 的学习和理解相对简单,而 Angular 则需要时间去习惯。开发人员认为这两个框架对于项目来说都很棒,但开发者中的大多数人更喜欢使用 Vue,因为当将 Vuex 添加到项目中时,Vue 更加简单并且可以很好地扩展  。

尽管 Vue 和 Angular 的一些语法类似,比如 API 和设计(这是因为 Vue 实际上是从 Angular 的早期开发阶段中获得启发的),但 Vue 一直致力于在一些对于 Angular 来说很困难的方面提升自己 。开发者可以在几个小时内用 Vue.js 构建一个特别的应用程序,但是这对 Angular 来说是不可能的。

灵活性

Angular 是独立的,这意味着你的应用程序应该有一定的构造方式。Vue 则更加宽泛,Vue 为创建应用程序提供了模块化,灵活的解决方案。

很多时候,Vue 被认为是一个库而不是框架。默认情况下,Vue 不包含路由器,HTTP 请求服务等。开发者必须安装所需的“插件”。Vue 非常灵活并且可以与大多数开发者想要使用的库兼容。

不过,也有开发人员更喜欢 Angular,因为 Angular 为其应用程序的整体结构提供了支持。这有助于节省编码时间。

文档对象模型(DOM)

Vue 通过最少量的组件重新渲染,可以将模板预编译为纯 JavaScript。这个虚拟 DOM 允许进行大量的优化,这是 Vue 和 Angular 之间的主要区别。Vue 允许使用更简单的编程模型,而 Angular 则以跨浏览器兼容的方式操作 DOM。

速度/性能

虽然 Angular 和 Vue 都提供了很高的性能,但由于 Vue 的虚拟 DOM 实现的重量较轻,所以可以说 Vue 的速度/性能略微领先。

更简单的编程模型使 Vue 能够提供更好的性能。Vue 可以在没有构建系统的情况下使用,因为开发者可以将其包含在 HTML 文件中。这使得 Vue 易于使用,从而提高了性能。

Angular 可能会很慢的原因是它使用脏数据检查,这意味着 Angularmonitors 会持续查看变量是否有变化。

双向数据绑定

这两个框架均支持双向数据绑定,但与 Vue.js 相比,Angular 的双向绑定更加复杂。Vue 中的双向数据绑定非常简单,而在 Angular 中,数据绑定更加简单。

何时选择 Vue.js?

如果你希望通过以最简单的方式来制作 Web 应用程序,那么你应该选择 Vue。如果你的 Javascript 基础不是太强大,或者有严格的开发截止日期,Vue 将是一个很好的选择。

如果你的前端是 Laravel,那么请选择 Vue。Laravel 社区的开发者认为 Vue 是他们最喜欢的框架。Vue 将总处理时间缩短了50%,并释放了服务器上的空间。

如果是开发小规模应用或者开发时不喜欢受约束,请选择Vue。

如果你很熟悉 ES5 Javascript 和 HTML,那么请使用 Vue 完成你的项目。

如果你想要在浏览器中编译模板并且使用其简单性,使用独立版本的Vue会很好。

如果你打算构建性能关键型SPA或需要功能范围的 CSS,Vue 的单文件组件会非常完美。

何时选择 Angular?

如果你需要构建大型复杂的应用程序,那么应该选择 Angular,因为 Angular 为客户端应用程序开发提供了一个完整而全面的解决方案。

对于希望处理客户端和服务器端模式的开发人员来说,Angular 是一个不错的选择。开发人员喜欢 Angular 的主要原因是 Angular 能够使他们专注于任何类型的设计,无论是 jQuery 调用还是 DOM 配置干扰。

对于开发人员创建具有多个组件和复杂需求的 Web 应用程序,Angular 也同样适用。当你选择Angular 时,本地开发人员会发现更容易理解应用程序功能和编码结构。

如果你想在新项目中选择现有组件,也可以选择 Angular,因为你只需复制和粘贴代码即可。

Angular 可以使用双向数据绑定功能来管理 DOM 和模型之间的同步。这使 Angular 成为了 Web 应用程序开发的强有力的工具。

希望制作更轻更快的Web应用程序的开发人员可以利用 Angular 中的 MVC 结构和独立的逻辑和数据组件,这有助于加速开发过程。

代码比较

分析 Vue 和 Angular 的代码很有趣。包含标记,样式和行为的代码可以帮助开发者构建高效且可重用的接口。在 Angular 中,控制器和指令等实体包含在模块中,而 Vue 的模块中包含组件逻辑。

Vue 组件

  Vue.extend({ data: function(){ return {...} }, created: function() {...}, ready: function() {...}, components: {...}, methods: {...}, watch: {...} //(other props excluded)
});

Angular 模块

angular.module(‘myModule’, […]);

Angular 中的 Directive 更加强大。

Vue 指令

Vue.directive('my-directive', {bind: function () {...}, update: function (newValue, oldValue) {...}, unbind: function () {...}});

Angular 指令

myModule.directive('directiveName', function (injectables) { return { restrict: 'A', template: '<div></div>', controller: function() { ... },compile: function() {...},link: function() { ... } //(other props excluded) };});

由于 Vue.js 受 Angular 启发,也借用了 Angular 的模板语法。因此循环,这两个框架的插值和条件的语法都非常相似。

下面给出代码片段:

Vue 插值

{{myVariable}}

角插值

{{myVariable}}

Vue 循环

<li v-repeat="items" class="item-{{$index}}">
{{myProperty}}
</li>

Angular 循环

<li ng-repeat="item in items" class="item-{{$index}}">
{{item.myProperty}}
</li>

Vue 条件

<div v-if="myVar"></div>
<div v-show="myVar"></div

角度条件

<div ng-if="myVar"></div>
<div ng-show="myVar"></div>

Vue.js 的编码使得页面渲染变得非常简单。事实上,Vue.js 更像是一个库而不是框架,因为它不提供 Angular 的所有功能。开发者将不得不依赖 Vue.js 的第三方代码,而 Angular 提供了 HTTP 请求服务或路由器等功能。

Angular 和 Vue.js 的版本发布

2017年6月8日发布了 Vue.js v2.3.4的最新稳定版本 。在此版本之前,还有13个版本。

Angular 4  于2017年3月发布。早期版本为 Angular 1和2,没有 Angular 3。Angular 的第5版于2017年11月发布。第6版预计将于2018年3月发布,第7版预计将于2018年9月/ 10月发布。

Angular 开发工具介绍

专注企业应用开发的 Wijmo ,是用 TypeScript 编写的新一代 JavaScript/HTML5 控件集。秉承触控优先的设计理念,Wijmo 在全球率先支持 AngularJS,并×××能卓越、零依赖的 FlexGrid 和图表等多个控件。Wijmo 灵活的 API 为用户提供易用、轻松的操作体验,全面满足开发所需,是构建企业应用程序的全套控件集。

结论

Vue.js 是轻量级的开发框架,很适合开发小规模灵活的 Web 应用程序;而 Angular 尽管学习曲线较为陡峭,但却是构建完整复杂应用的好选择。

原文链接:https://dzone.com/articles/comparing-progressive-javascript-frameworks-angula

转载请注明出自:葡萄城控件

关于葡萄城

葡萄城公司成立于1980年,是全球领先的集开发工具、商业智能解决方案、管理系统设计工具于一身的软件和服务提供商。西安葡萄城是其在中国的分支机构,面向全球市场提供软件研发服务,并为中国企业的信息化提供国际先进的开发工具、软件和研发咨询服务。

Angular和Vue.js 深度对比相关推荐

  1. Prettier 1.15代码格式化工具新增Angular和Vue.js支持

    Prettier 1.15代码格式化工具新增HTML.Vue.js.Angular.MDX支持以及多项语法优化和改进. 对于Angular和Vue,Prettier现在可以格式化这些扩展HTML的框架 ...

  2. 前端三剑客 React、Angular、Vue.js 比较

    一.它们是什么东西,我们先来了解一下 AngularJS AngularJS [1]  诞生于2009年,由Misko Hevery 等人创建,后为Google所收购.是一款优秀的前端JS框架,已经被 ...

  3. vue.js 深度监测

    1.select 控件赋值改变,但是无法获取 解决方法,在监测时手动赋值新值 'model.UseType': {handler(newVal, oldVal) {$("#UseType&q ...

  4. Blazor VS React / Angular / Vue.js

    原文作者: Christian Findlay 原文链接:https://christianfindlay.com/2020/06/04/blazor-vs-react-angular-vue-js/ ...

  5. 前端清单之Vue.js篇

    2019独角兽企业重金招聘Python工程师标准>>> 教程实践 基于 Vue 与 DeepStream 构建实时 CRUD 应用:Vue 是专注于 JavaScript UI 的渐 ...

  6. 关于 Vue.js 的那些事儿

    15年开始,在各大论坛技中,与 Vue.js 这一相关词语的内容爆炸式增长,在前端技术增速中独领风骚,迅速成为前端三巨头之一.记得在某个社区中有人这样介绍三巨头"来自 Google 的 An ...

  7. Vue.js 核心精要实战解析

    课程简介 前端框架领域,Angular.React.Vue.js 三足鼎立,而 Vue.js 因其性能.通用.易用.体积.学习成本低等特点深受广大前端们的追捧,并吸引了一大批前端初学者.作为 Vue. ...

  8. Vue.js是什么?它有什么特点?

    转自:http://c.biancheng.net/view/6714.html 在学习 Vue.js 之前,读者应该已经学习过 HTML.CSS 和 JavaScript 基本知识,本文主要介绍 V ...

  9. 【转】Vue.js 2.0 快速上手精华梳理

    Vue.js 2.0 快速上手精华梳理 Sandy 发掘代码技巧:公众号:daimajiqiao 自从Vue2.0发布后,Vue就成了前端领域的热门话题,github也突破了三万的star,那么对于新 ...

  10. Vue.js实现前段评论展示

    本来想着给这个博客弄个回复系统(类似知乎的回复),最初的实现思路是这样的:主评论后台渲染,前台新增的评论,回复用jquery操作dom放到页面上.实现的时候感觉好复杂,大量的dom操作,目前前段框架不 ...

最新文章

  1. Axure 6.5 RP下载,汉化
  2. 《数据中台实战》:数据中台的分层建模体系
  3. 安装CocoaPod
  4. 数据增强 transform_深度学习-Pytorch框架学习之数据处理篇
  5. 一起学JUCE之HashMap
  6. “您都对”、“客户都对”也能申请为商标?
  7. php正则表达式 什么,php正则表达式是什么?(代码实例)
  8. 【原创】数据库基础之Mysql(2)主从库配置
  9. 一个Android开发快速入门Flutter (一)
  10. 扩展MemberShip的使用:
  11. win7 兼容 因特尔十代_高配主板想用win7咋办 Intel10代CPU配上驱动总裁玩转win7
  12. tif格式怎么转jpg格式
  13. 新入职软件安装-win10
  14. 所以,FileWriter和BufferedWriter的真正区别在哪
  15. 同IP不同端口导致cookie冲突的解决方法
  16. 醉逍遥显示无法更新服务器,蜀门醉逍遥版本修改教程 (值好几千,俺心血).doc
  17. 前后端分离页面500错误,控制台不打印错误日志的错误定位
  18. 写作小技能:知识工作者的全套手艺
  19. 【小程序页面设计模板】小程序设计模板平台分享
  20. 大数据优化服务 黑科技创造价值 智慧旅游来势猛

热门文章

  1. atitit.项目设计模式---ioc attilax总结
  2. Atitit. .net c# web 跟客户端winform 的ui控件结构比较
  3. paip.xdebug 配置attilax总结.txt
  4. 美国:DFA(Dimensional fund advisors LP)基金介绍
  5. 中金:基金投顾试点扩容,买方时代已至
  6. 阿里彭蕾:CEO如何对抗孤独感?
  7. (转)我40个比特币失而复得的经历
  8. Rust: codewars的Highest and Lowest
  9. linux命令增删改查,hw_linux_study_day003,Linux系统终端中的增删改查命令
  10. 【图像处理基础】基于matlab图像RGB+HSV分布图【含Matlab源码 234期】