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

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

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) 可能要运行多次。
发布了321 篇原创文章 · 获赞 48 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/ferrysoul/article/details/104337366