Vue(MVVM)、React(MVVM)、Angular(MVC)对比

前言

昨天阿里内推电面一面,面试官了解到项目中用过Vue,就问为什么前端框架使用Vue而不适用其他的框架,当时就懵了。因为只用过Vue,不了解其他两个框架,今天就赶紧去了解一下他们之间的区别。大家发现如果本文中哪个地方不对,欢迎来访。

React与Vue对比

  1. 相似点:
    1. 使用 Virtual DOM
    2. 提供了响应式 (Reactive) 和组件化 (Composable) 的视图组件。
    3. 将注意力集中保持在核心库,而将其他功能如路由和全局状态管理交给相关的库。
  2. 区别:
    1. 在 React 应用中,当某个组件的状态发生变化时,它会以该组件为根,重新渲染整个组件子树。如要避免不必要的子组件的重渲染,你需要手动实现;在 Vue 应用中,组件的依赖是在渲染过程中自动追踪的,所以系统能精确知晓哪个组件确实需要被重渲染,开发者不需要考虑组件是否需要重新渲染之类的优化。
    2. 在React中,一切都是JavaScript,所有的组件的渲染功能都依靠 JSX。JSX 是使用 XML 语法编写 JavaScript 的一种语法糖。你可以使用完整的编程语言 JavaScript 功能来构建你的视图页面;在Vue中有自带的渲染函数,Vue也支持JSX,Vue官方推荐使用模板渲染视图。组件分为逻辑类组件和表现类组件。
    3. 组件作用域内的CSS。CSS 作用域在 React 中是通过 CSS-in-JS 的方案实现的;在Vue中是通过给style标签加scoped标记实现的。
    4. Vue 的路由库和状态管理库都是由官方维护支持且与核心库同步更新的。React 则是选择把这些问题交给社区维护,因此创建了一个更分散的生态系统。

Angular与Vue对比

AngularJS 是 Vue 早期开发的灵感来源,但AngularJS 中存在的许多问题,在 Vue 中已经得到解决。

  1. 区别:
    1. 模块化和灵活性。它允许你以希望的方式组织应用程序,而不是在任何时候都必须遵循 AngularJS 制定的规则。
    2. AngularJS 使用双向绑定,Vue 在不同组件间强制使用单向数据流。这使应用中的数据流更加清晰易懂。
    3. 指令与组件 (不太懂) 在 Vue 中指令和组件分得更清晰。指令只封装 DOM 操作,而组件代表一个自给自足的独立单元——有自己的视图和数据逻辑。在 AngularJS 中,每件事都由指令来做,而组件只是一种特殊的指令。
    4. 性能上 Vue 有更好的性能,并且非常非常容易优化,因为它不使用脏检查;在 AngularJS 中,当 watcher 越来越多时会变得越来越慢,因为作用域内的每一次变化,所有 watcher 都要重新计算。并且,如果一些 watcher 触发另一个更新,脏检查循环 (digest cycle) 可能要运行多次。

注: 本文内容参考:Vue官方文档 如需转载请注明出处:https://www.cnblogs.com/zhuchenglin/p/9485879.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏前端新视界

jQuery 图片查看插件 Magnify 开发简介(仿 Windows 照片查看器)

前言 因为一些特殊的业务需求,经过一个多月的蛰伏及思考,我开发了这款 jQuery 图片查看器插件 Magnify,它实现了 Windows 照片查看器的所有功...

34990
来自专栏编程微刊

如何快速修改网页上的文字?

22040
来自专栏Youngxj

杨小杰工具箱网页源码

18140
来自专栏coding...

蛋疼的魔法上网项目被平台给封锁了...

想看的小伙伴去博客园看吧... http://www.cnblogs.com/gongxiaokai/p/7123839.html

11720
来自专栏无原型不设计

Mockplus教程:分分钟搞定APP首页原型设计

Mockplus是一款快速原型设计工具,支持包括APP原型在内的多种原型与线框图设计。除了快速,Mockplus广受欢迎更因为它极低的上手门槛。今天小编就为大...

34750
来自专栏ThoughtWorks

TW洞见〡现代Web页面开发流程

现代Web页面开发流程 通常来说,Web页面开发的流程大致是这样的:设计师(设计师不是美工,就像程序员不是码农一样)提供设计稿,通常是图片格式。然后前端的开发...

40260
来自专栏编程

滴滴开源基于 Vue.js 的移动端组件库 cube-ui

综合自:https://didi.github.io/cube-ui/ ? 继 6 月份开源Android 端插件化框架 VirtualAPK后,滴滴近日又开源...

47200
来自专栏葡萄城控件技术团队

Spread for Windows Forms快速入门(16)---用Spread设计器创建和编辑图表

Spread支持85种丰富多彩的图表效果。可以在Spread设计器中基于工作表的数据直接生成图表,操作简单。同时,软件人员还可以在Visual Studio设计...

23880
来自专栏程序员的知识天地

微信小程序的组件用法与传统HTML5标签的区别

小程序刚开放公测,互联网圈内开始了各种解读和猜测。其中有观点认为小程序和HTML5有着紧密关联,甚至小程序就是基于HTML5开发。

27820
来自专栏iKcamp

微信小程序教学第四章第一节(含视频):小程序中级实战教程:详情-页面制作

详情 - 页面制作 本文配套视频地址: https://v.qq.com/x/page/o0555o20xjd.html 开始前请把 ch4-1 分支...

240100

扫码关注云+社区

领取腾讯云代金券