vue和其他框架的对比

React

相似点

  1. 使用了虚拟dom
  2. 提供了响应式和组件化视图组件
  3. 分为核心库和其他库(如路由和状态管理)

不同点

  1. 运行时性能
    在react中,组件状态发生改变,会以该组件为根,重新渲染整个组件子树
    避免发生不必要子组件被重新渲染,要么使用PureComponent或者手动实现shouldComponentUpdate,并且可能用到不可变的数据结构
    使用PureComponent或者shouldComponentUpdate,必须保证该组件的整个子树渲染输出由props决定,不符合该条件会导致渲染结果可能不一致

而在vue中,组件的依赖在渲染过程中自动跟踪,默认自动获得shouldComponentUpdate,没有子树问题限制

  1. HTML&CSS
    在react中,一切皆JavaScript,不仅HTML用JSX来表达,CSS也被纳入JavaScript中,Vue是拥抱经典web技术,并进行扩展

  2. JSX vs Templates
    在react中,组件渲染依赖与JSX,JSX是使用XML语法编写的欧中语法糖,而JSX渲染函数,有以下优点
    (1)可以用完成的JavaScript功能构建试图页面
    (2)开发工具对JSX支持比现有的vue模板先进
    在vue中,其实也提供了渲染函数以及支持JSX,但是还是默认推荐模板,任何合乎HTML的都是vue模板
    (1)模板比JSX读起来自然,能提升传统HTML开发者的效率
    (2)基于HTML的模板易于迁移vue
    (3)设计师和新人开发容易理解和参与到项目
    (4)可以使用其他模板预处理器,如Pug书写vue
    (5)组件第一种为偏视图,推荐使用模板;第二种为偏逻辑,推荐使用JSX或者渲染函数,而表现类的组件多于偏逻辑

  3. 组件作用域内的CSS
    在react中,CSS作用域通过CSS-in-JS的方案实现,但在 JavaScript 灵活处理样式的同时,也需要权衡 bundle 的尺寸和运行时的开销
    而vue设置样式的默认方法是单文件组件里类似style的标签,单文件组件可以在同一个文件里完全控制CSS,将其作为组建的一部分
    在一个,vue单文件的样式设置是非常灵活的,通过vue-loader,可以使用任意预处理器,后处理器,甚至深度集成都在<style>标签内

  1. 规模
  2. 向上扩展
    vue和react都提供强大的路由应对大型项目,react在状态管理非常创新,但是却更容易集成在vue中。而vue更深入的集成了状态管理解决方案vuex
    vue的路由和状态管理由官方维护支持且与核心库同步更新。
    react将这些问题交给社区维护,因此更为分散但有更为繁荣
vue提供vue-cli脚手架,更加容易的搭建项目
react虽然提供了create-react-app,但局限性也很明显(故意设计):
(1)不允许项目生成时进行任何配置,而vue支持 Yeoman-like 定制
(2)只提供一个构件单页面应用的唯一模板,而vue提供各种用途模板
(3)它不能用用户自建的模板构建项目,而自建模板对企业环境下预先建立协议是特别有用的
  1. 向下扩展
    react学习曲线陡峭,需要了解JSX和ES2015,需要学习构建系统
    vue向上扩展类似react,向下扩展类似jquery,可以快速建立简单的应用程序
  1. 原生渲染
    React Native 能使你用相同的组件模型编写有本地渲染能力的 APP (iOS 和 Android)。能同时跨多平台开发。相应地,Vue 和 Weex 会进行官方合作,Weex 是阿里巴巴发起的跨平台用户界面开发框架,同时也正在 Apache 基金会进行项目孵化,Weex 允许你使用 Vue 语法开发不仅仅可以运行在浏览器端,还能被用于开发 iOS 和 Android 上的原生应用的组件。

在现在,Weex 还在积极发展,成熟度也不能和 React Native 相抗衡。但是,Weex 的发展是由世界上最大的电子商务企业的需求在驱动,Vue 团队也会和 Weex 团队积极合作确保为开发者带来良好的开发体验。

另一个 Vue 的开发者们很快就会拥有的选项是 NativeScript,这是一个社区驱动的插件。

  1. Mobx
    Mobx 在 React 社区很流行,实际上在 Vue 也采用了几乎相同的反应系统。在有限程度上,React + Mobx 也可以被认为是更繁琐的 Vue,所以如果你习惯组合使用它们,那么选择 Vue 会更合理。

Angular

  1. TypeScript
    Angular必须用TypeScript开发,因为文档和虚席资源几乎都面向TS(TSLint是typescript格式验证工具
    TS好处是静态类型检查在大规模应用中非常有用,也可以对有java和c#北京开发者提升效率
    但是,在小规模项目中,TS的优势不太明显,vue会是更好的选择,不使用TS去使用Angular会比较困难

  2. 运行时性能
    这两个框架都很快,有非常类似的 benchmark 数据。你可以浏览具体的数据做更细粒度的对比,不过速度应该不是决定性的因素。

  3. 体积
    最近的 Angular 版本中在使用了 AOT 和 tree-shaking 技术后使得最终的代码体积减小了许多,优化的 angular-cli 生成的默认项目尺寸 (~65KB)
    一个包含了 Vuex + Vue Router 的 Vue 项目 (gzip 之后 30kB)

  4. 灵活性
    Vue 相比于 Angular 更加灵活,Vue 官方提供了构建工具来协助你构建项目,但它并不限制你去如何组织你的应用代码。有人可能喜欢有严格的代码组织规范,但也有开发者喜欢更灵活自由的方式。

  5. 学习曲线
    学习 Vue,你只需要有良好的 HTML 和 JavaScript 基础。有了这些基本的技能,你就可以非常快速地通过阅读 指南 投入开发。

Angular 的学习曲线是非常陡峭的,作为一个框架,它的 API 面积比起 Vue 要大得多,因此需要理解更多的概念才能开始有效率地工作。当然,Angular 本身的复杂度是因为它的设计目标就是只针对大型的复杂应用;但不可否认的是,这也使得它对于经验不甚丰富的开发者相当的不友好。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,366评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,521评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,689评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,925评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,942评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,727评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,447评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,349评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,820评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,990评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,127评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,812评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,471评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,017评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,142评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,388评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,066评论 2 355

推荐阅读更多精彩内容