• VueReactAngular三者区别


    1. 基本概念
    Angular 是一个应用设计框架与开发平台,用于创建高效、复杂、精致的单页面应用。

    React 是一个用于构建用户界面的 JavaScript 库

    Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。

    2. 三者比较
    2.1 相同点
    1. 都是基于javascript/typescript的前端开发库,为前端开发提供高效、复用性高的开发方式

    2. 都有组件和模板的开发思想

    3. 各自的组件都有生命周期,不用的组件可以卸载,不占用资源

    4. 都支持指令,如样式、事件等的指令

    2.2 不同点
    1. 创始和发行不同:

    Angular是由googl提供支持的,初始发行于 2016年9月;React由Facebook维护,初始发行于 2013年3月;Vue是由前google人员创建,初始发行于2014年2月

    2. 应用类型不同:

    Angular支持开发native应用程序、SPA单页应用程序、混合应用程序和web应用程序;React支持开发SPA和移动应用程序;Vue支持开发高级SPA,开始支持native应用程序

    3. 模型不同

    angular基于MVC(模型-视图-控制器)架构;react和vue是基于Virtual DOM(虚拟的文档对象模型)

    4. 数据流流向不同

    Angular使用的是双向数据绑定,React用的是单数据流的,而Vue则支持两者。

    5. 对微应用和微服务的支持不同

    Angular使用的是TypeScript,因此它更适合于单页Web应用(single page web application,SPA),而非微服务。相反,React和Vue的灵活性更适合微应用和微服务的开发。

    6. 对原生应用的支持不同

    React Native为iOS和Android开发原生应用;Angular的NativeScript已被原生应用所采用,特别是Ionic框架已经被广泛地运用在制作混合应用等方面;Vue的Weex平台正在开发之中,尚无下一步使之成为全面跨平台的计划。

    7. 框架和库

    Angular 是一个框架而不是一个库,因为它提供了关于如何构建应用程序的强有力的约束,并且还提供了更多开箱即用的功能。React 和 Vue 是一种库,可以和各种包搭配。

    8. 组件之间传值方式不同

    Angular 中直接的父子组件,父组件可以直接访问子组件的 public 属性和方法,也可以借助于@Input 和 @Output 进行通讯。没有直接关系的,借助于 Service 单例进行通讯;React 组件之间通过通过prop或者state来通信,不同组件之间还有Rex状态管理功能;Vue组件之间通信通过props ,以及Vuex状态管理来传值

    React、Angular、Vue.js:对比

    什么是Vue?

    Vue是一套用于构建用户界面的渐进式JavaScript框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,方便与第三方库或既有项目整合。

    与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用。

    Vue特性:

    1. 模板和渲染函数的弹性选择

    2. 简单的语法和项目配置

    3. 更快的渲染速度和更小的体积四

    4. 生命周期

    什么是React?

    React是一个用于构建用户界面的JavaScript库,所有React应用程序的核心都是组件。组件是一个自包含的模块,可以呈现一些输出,组件是可组合的。组件可能在其输出中包含一个或多个其他组件。

    React的优点:

    1、它提供最大的灵活性和响应能力。

    2、由于它是基于文档对象模型,所以它允许浏览器友好地以HTML,XHTML或XML格式排列文档。

    3、具有丰富的JavaScript库

    4、具有很好的灵活的结构和可扩展性

    5、React提供了React Native平台,可通过相同的React组件模型为iOS和Android开发本机呈现的应用程序。

    React特性:

    1. 单向绑定,先更新model,然后渲染UI元素,数据在一个方向流动,使得调试更加容易。代码冗余,各种生命周期太麻烦,刚开始接触好难记。

    2. 用了虚拟DOM。(对虚拟DOM的理解刚开始我不是很理解概念,建议大家去看【深入REACT技术栈】这本书有很好的讲解)

    3. 更适合大型应用和更好的可测试性

    4. Web端和移动端原生APP通吃

    5. 更大的生态系统,更多的支持和好用的工具

    6. 组件生命周期

    什么是Angular?

    Angular是一个是一个用HTML,CSS和JavaScript / TypeScript构建客户端应用程序的开源Web应用程序框架。,由Google的Angular团队以及个人和公司社区领导。

    Angular是建造AngularJS的同一个团队的完全重写。为了避免混淆,该团队宣布应该为每个框架使用单独的术语,其中“AngularJS”指的是1.X版本,而“Angular”指的是没有“JS”指的是版本2及更高版本。

    Angular的优点

    • Angular提供一个非常干净和维护的方式来创造单页的应用。

    • Angular提供数据绑定功能在HTML中,从而给用户提供丰富和响应的体验

    • Angular代码可进行单元测试。

    • Angular使用依赖注入和利用关注点分离。

    • Angular提供了可重用的组件。

    • 使用Angular,开发人员编写更少的代码,并获得更多的功能。

    • 在Angular中,视图都是纯HTML页面,并用JavaScript编写控制器做业务处理。

    Vue和React和Angular的区别

    1、vue.js更轻量,压缩后大小只有20K+, 但React压缩后大小为44k,Angular压缩后大小有56k,所以对于移动端来说,vue.js更适合;

    2、vue.js更易上手,学习曲线平稳,而Angular入门较难,概念较多(比如依赖注入),它使用java写的,很多思想沿用了后台的技术;react需学习较多东西,附带react全家桶。

    3、vue.js吸收两家之长,借用了angular的指令(比如v-show,v-hide,对应angular的ng-show,ng-hide)和react的组件化(将一个页面抽成一个组件,组件具有完整的生命周期)

    4、vue.js还有自己的特点,比如计算属性

     vueReactangular
    控制器
    过滤器
    指令
    渲染指令
    数据绑定 双向 单向 双向

    以上就是Vue和React和Angular的区别是什么?的详细内容,更多请关注html中文网其它相关文章!

    一、Vue.js:
    其实Vue.js不是一个框架,因为它只聚焦视图层,是一个构建数据驱动的Web界面的库。
    Vue.js通过简单的API(应用程序编程接口)提供高效的数据绑定和灵活的组件系统。
    Vue.js的特性如下:
       1.轻量级的框架
       2.双向数据绑定
       3.指令
       4.插件化

    优点: 1. 简单:官方文档很清晰,比 Angular 简单易学。
         2. 快速:异步批处理方式更新 DOM。
         3. 组合:用解耦的、可复用的组件组合你的应用程序。
         4. 紧凑:~18kb min+gzip,且无依赖。
         5. 强大:表达式 & 无需声明依赖的可推导属性 (computed properties)。
         6. 对模块友好:可以通过 NPM、Bower 或 Duo 安装,不强迫你所有的代码都遵循 Angular 的各种规定,使用场景更加灵活。

    缺点: 1. 新生儿:Vue.js是一个新的项目,没有angular那么成熟。
         2. 影响度不是很大:google了一下,有关于Vue.js多样性或者说丰富性少于其他一些有名的库。
         3. 不支持IE8:

    二、angularJS:
      angularJS是一款优秀的前端JS框架,已经被用于Google的多款产品当中。
      angularJS的特性如下:
        1.良好的应用程序结构
        2.双向数据绑定
        3.指令
        4.HTML模板
        5.可嵌入、注入和测试

    优点: 1. 模板功能强大丰富,自带了极其丰富的angular指令。
          2. 是一个比较完善的前端框架,包含服务,模板,数据双向绑定,模块化,路由,过滤器,依赖注入等所有功能;
         3. 自定义指令,自定义指令后可以在项目中多次使用。
          4. ng模块化比较大胆的引入了Java的一些东西(依赖注入),能够很容易的写出可复用的代码,对于敏捷开发的团队来说非常有帮助。
          5. angularjs是互联网巨人谷歌开发,这也意味着他有一个坚实的基础和社区支持。

    缺点: 1. angular 入门很容易 但深入后概念很多, 学习中较难理解.
       2. 文档例子非常少, 官方的文档基本只写了api, 一个例子都没有, 很多时候具体怎么用都是google来的, 或直接问misko,angular的作者.
          3. 对IE6/7 兼容不算特别好, 就是可以用jQuery自己手写代码解决一些.
         4. 指令的应用的最佳实践教程少, angular其实很灵活, 如果不看一些作者的使用原则,很容易写出 四不像的代码, 例如js中还是像jQuery的思想有很多dom操作.
         5. DI 依赖注入 如果代码压缩需要显示声明.

    三、React:

    React主要用于构建UI。你可以在React里传递多种类型的参数,如声明代码,帮助你渲染出UI、也可以是静态的HTML DOM元素、也可以传递动态变量、甚至是可交互的应用组件。

    React特性如下: 
        1.声明式设计:React采用声明范式,可以轻松描述应用。
        2.高效:React通过对DOM的模拟,最大限度地减少与DOM的交互。
        3.灵活:React可以与已知的库或框架很好地配合。

    优点: 1. 速度快:在UI渲染过程中,React通过在虚拟DOM中的微操作来实现对实际DOM的局部更新。
          2. 跨浏览器兼容:虚拟DOM帮助我们解决了跨浏览器问题,它为我们提供了标准化的API,甚至在IE8中都是没问题的。
          3. 模块化:为你程序编写独立的模块化UI组件,这样当某个或某些组件出现问题是,可以方便地进行隔离。
          4. 单向数据流:Flux是一个用于在JavaScript应用中创建单向数据层的架构,它随着React视图库的开发而被Facebook概念化。
          5. 同构、纯粹的javascript:因为搜索引擎的爬虫程序依赖的是服务端响应而不是JavaScript的执行,预渲染你的应用有助于搜索引擎优化。
          6. 兼容性好:比如使用RequireJS来加载和打包,而Browserify和Webpack适用于构建大型应用。它们使得那些艰难的任务不再让人望而生畏。

    缺点: 1. React本身只是一个V而已,并不是一个完整的框架,所以如果是大型项目想要一套完整的框架的话,基本都需要加上ReactRouter和Flux才能写大型应用。

     
  • 相关阅读:
    hdu4280 Island Transport(最大流Dinic数组模拟邻接连边)
    hihoCoder1378 (最大流最小割)
    单聊语音
    Mybatis批量更新数据
    mysql 之 MRR
    Intellij IDEA 快捷键整理
    SpringBoot 整合 Swagger2 使用教程
    jdk/dubbo spi
    redis问题(待解决)
    JVM调优心得
  • 原文地址:https://www.cnblogs.com/hanease/p/16260882.html
Copyright © 2020-2023  润新知