前言
昨天阿里内推电面一面,面试官了解到项目中用过Vue,就问为何前端框架使用Vue而不适用其余的框架,当时就懵了。由于只用过Vue,不了解其余两个框架,今天就赶忙去了解一下他们之间的区别。你们发现若是本文中哪一个地方不对,欢迎来访。html
React与Vue对比
- 类似点:
- 使用 Virtual DOM
- 提供了响应式 (Reactive) 和组件化 (Composable) 的视图组件。
- 将注意力集中保持在核心库,而将其余功能如路由和全局状态管理交给相关的库。
- 区别:
- 在 React 应用中,当某个组件的状态发生变化时,它会以该组件为根,从新渲染整个组件子树。如要避免没必要要的子组件的重渲染,你须要手动实现;在 Vue 应用中,组件的依赖是在渲染过程当中自动追踪的,因此系统能精确知晓哪一个组件确实须要被重渲染,开发者不须要考虑组件是否须要从新渲染之类的优化。
- 在React中,一切都是JavaScript,全部的组件的渲染功能都依靠 JSX。JSX 是使用 XML 语法编写 JavaScript 的一种语法糖。你可使用完整的编程语言 JavaScript 功能来构建你的视图页面;在Vue中有自带的渲染函数,Vue也支持JSX,Vue官方推荐使用模板渲染视图。组件分为逻辑类组件和表现类组件。
- 组件做用域内的CSS。CSS 做用域在 React 中是经过 CSS-in-JS 的方案实现的;在Vue中是经过给style标签加scoped标记实现的。
- Vue 的路由库和状态管理库都是由官方维护支持且与核心库同步更新的。React 则是选择把这些问题交给社区维护,所以建立了一个更分散的生态系统。
Angular与Vue对比
AngularJS 是 Vue 早期开发的灵感来源,但AngularJS 中存在的许多问题,在 Vue 中已经获得解决。前端
- 区别:
- 模块化和灵活性。它容许你以但愿的方式组织应用程序,而不是在任什么时候候都必须遵循 AngularJS 制定的规则。
- AngularJS 使用双向绑定,Vue 在不一样组件间强制使用单向数据流。这使应用中的数据流更加清晰易懂。
- 指令与组件 (不太懂)
在 Vue 中指令和组件分得更清晰。指令只封装 DOM 操做,而组件表明一个自给自足的独立单元——有本身的视图和数据逻辑。在 AngularJS 中,每件事都由指令来作,而组件只是一种特殊的指令。
- 性能上
Vue 有更好的性能,而且很是很是容易优化,由于它不使用脏检查;在 AngularJS 中,当 watcher 愈来愈多时会变得愈来愈慢,由于做用域内的每一次变化,全部 watcher 都要从新计算。而且,若是一些 watcher 触发另外一个更新,脏检查循环 (digest cycle) 可能要运行屡次。
注:
本文内容参考:Vue官方文档
如需转载请注明出处:http://www.javashuo.com/article/p-bdpszoij-gg.htmlvue