1. react 是面向 js 编程,vue 时面向 HTML 模板编程。
  2. react 只是一个负责将 data 渲染为 view 的渲染视图的库而已,公式 view = fn(data)。而 vue 是类 mvvm 架构。
  3. react 偏 fp,vue 偏 oop。
  4. react 默认没有没有实现双向绑定,但是使用 react 实现起来其实也很简单。vue 默认支持双向绑定。
  5. react 想要完成一个实际项目需要很多其它三方库,比如 react router,redux,axios 等。这些库大多不是官方维护的而是开源社区维护。vue 也需要许多库配合使用, 比如 vue-rosurce,vue-router,vuex,但是这些库都是官方维护的,所以在技术选型上 vue 一般就拍脑袋一套官方全家桶下来,但是 react 可能就凭实际项目需求情况和个人喜好了。
  6. 跨平台开发角度。vue 如果想写移动 native 可以使用 weex,react 可以上 react native,但是前者明显不如后者受欢迎。
  7. ssr 角度。vue 需要 ssr 的话可以使用 nuxt.js,react 可以使用 next.js。
  8. 从 ui 库的角度来说。 react 的杀手级 UI 库 ant design 国内许多大公司中后台都在用,至少我面试中很多大厂 react 技术栈都是。vue 比较受欢迎的 ui 库有 element。
  9. 从学习的角度来说。vue 比 react 概念更多,开始学习的时候你需要了解很多概念,各种模板语法,指令, slot, mixin 等,基本上不需要学习 ES6 就可以上手。但是等 vue3 出来后默认使用 typescript 开发就需要去熟悉 ES6 了。react 概念不多,但是你要 react 代码写的优雅,必须要熟悉 ES6,react 的特点就是简单自由,像双向绑定这种很容易实现的东西,react 就留给你自己去实现而不是像 vue 一样把一大堆工具塞给你。
  10. 从 cli 的角度来说,个人认为 create-react-app 不如 vue-cli 好用。cra 提供的功能太少了,改 webpack 配置比较麻烦,而 vue-cli 的插件系统还有创建新项目交互选项比 cra 丰富很多。
  11. 框架只是工具,现在前端界流行 spa,前后端分离,使用前端路由,但是三大框架都有向 web components 标准看齐的节奏。三大框架其实大同小异,都是搞数据驱动,组件化。我们不应该成为框架的奴隶,当我们熟练使用后,应该去了解一下他们的原理实现,说不定以后一套标准下来三个框架都凉了。