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