Skip to main content

Vue 与 React 区别?

举例法:

相同点

  • 两者都是用于创建 UI 的 JavaScript 库
  • 两者都快速轻便
  • 都有自己独立常用的路由器和状态管理库

不同点

  • 模板渲染方式的不同

    • Vue 是通过一种拓展的 HTML 语法进行渲染,比如条件语句 v-if
    • React 是通过 JSX 渲染模板,通过 JS 语法实现的,更加原生
  • 设计理念上的区别

    • Vue 使用的是可变数据
    • React 更强调数据的不可变,用新的替换旧的
  • 数据流的不同

    • Vue 支持双向绑定
    • React 不支持双向绑定,提倡的是单向数据流,称之为 onChange/setState 模式
  • Vuex 和 Redux 的区别

    • Vuex 的数据是可变的,Vuex 是直接修改数据
    • Redux 使用的是不可变数据,Redux 每次都是用新 state 替换旧 state,
  • 监听数据变化的实现原理不同

    • Vue 通过 getter/setter 进行数据劫持,判断数据变化
    • React 默认是通过比较 DOM diff 的方式进行的,如果不优化可能导致大量不必要的重新渲染 (通过 shouldComponentUpdate 这个生命周期方法可以进行控制,但 Vue 将此视为默认的优化)

阐述法

它们之间的最大区别是 Vue 通常使用 HTML 模板文件,而 React 则完全是 JavaScript。 Vue 有双向绑定语法糖,React 则没有。

参考文章:https://segmentfault.com/a/1190000038518135