glownight

返回

一句话总纲#

React 是「函数式+数据驱动」,Vue 是「响应式+视图驱动」 一个靠重新渲染更新,一个靠精准劫持更新。


1. 数据响应式原理(最核心区别)#

React#

  • 数据不可变(Immutable 思想)
  • 状态更新必须用 setState / useState
  • 不会劫持数据,状态变了 → 重新执行组件函数 → 生成新 VDOM
  • diff 对比 找到变化

Vue#

  • 数据响应式劫持
  • Vue2:Object.defineProperty
  • Vue3:Proxy
  • 自动追踪依赖,数据变了 → 精确通知对应组件/节点更新
  • 不需要手动 setState,直接修改数据

口诀: React 是暴力重渲染,Vue 是精准点对点更新


2. 模板与渲染写法#

React#

  • JSX 一统天下(JS + HTML 混合)
  • 一切都是 JS,循环用 map,条件用 if/&&
  • 灵活度极高,贴近原生 JS

Vue#

  • 模板(template)+ 脚本(script)分离
  • 内置指令:v-if / v-for / v-model
  • 上手更简单,对新手友好

口诀: React All in JS,Vue 模板更直观


3. 组件更新机制#

React#

  • 自动重新渲染:父组件更新 → 子组件默认全部跟着更新
  • 需要手动优化:React.memo / useMemo / useCallback
  • 渲染量大 → 所以需要 Fiber 架构

Vue#

  • 组件自动追踪依赖
  • 数据变 → 只更新用到这个数据的组件
  • 组件更新默认优化好,基本不需要手动优化
  • 渲染量极小 → 不需要 Fiber

口诀: React 需要手动优化,Vue 自带优化躺平用


4. 设计哲学与生态#

React#

  • 函数式编程(FP)
  • 专注 UI 层,路由、状态管理靠社区(React Router / Redux / Zustand)
  • 自由度极高,适合大型项目、团队定制

Vue#

  • 渐进式框架
  • 全家桶一站式(Vue Router / Pinia 官方内置)
  • 开箱即用,约束更强,开发效率高
  • 更适合中后台、快速开发

总结#

  1. 响应式不同:React 靠 setState 重新渲染,Vue 靠 Proxy 自动劫持精准更新。
  2. 渲染机制不同:React 父更新子必更新,需要手动优化;Vue 自动追踪依赖,自带优化。
  3. 写法不同:React 用 JSX,一切皆 JS;Vue 用模板 + 指令,更易上手。
  4. 架构不同:React 渲染量大,需要 Fiber 防止卡顿;Vue 更新精准,不需要 Fiber。

  • React:灵活、函数式、全靠 JS、需要手动优化、有 Fiber
  • Vue:简单、响应式、模板友好、自动优化、无需 Fiber
React 和 Vue 的核心区别是什么?
作者 glownight
发布于 2026年1月24日