0%

Vue 和 React 的异同

相同点

  1. 都有虚拟 DOM,都有组件概念,都有自己的构建工具,都有自己的 Chrome 调试工具,都支持服务端渲染,都是数据驱动视图。
  2. 都通过 props 参数进行父子组件的数据传递。

不同点

  1. Vue 使用普通的 HTML 书写页面结构。而 React 使用 JSX 书写页面结构,也就是在 JS 中书写 HTML 。(从技术上来说,Vue 也支持 render 函数和 JSX 语法。)
  2. Vue 文档友好,相对简单易学,便于整合现有系统,不需要整体重构。而 React 文档是英文的,组件更多靠 JS 实现。
  3. Vue 由尤雨溪的团队维护,React 由 Facebook 官方维护。vue-router 和 vuex 由 Vue 官方维护,而 react-router 和 react-redux 由社区成员维护。
  4. Vue 使用 data 属性保存数据,而 React 使用 state 对象保存数据,state 对象要使用 setState() 方法改变状态。
  5. Vue 构建移动应用的 weex 仍处于开发试验阶段,不够完善,而 React Native 更加成熟强大。
  6. Vue 会追踪每个组件的状态,不会重新渲染整个组件树,而 React 会重新渲染所有的子组件,所以 React 有 shouldComponentUpdated 生命周期函数去控制。
  7. Vue 使用单文件创建组件,而 React 使用 JSX + 行内样式创建组件。
  8. Vue 支持双向数据绑定,而 React 是单向数据流,需要自己去模拟实现。
  9. Vue 中传递给子组件的 props 会自动更新,而 React 需要通过 componentWillReceiveProps 生命周期钩子去监测 props 变化。