前端面试知识库
框架专题

框架专题导读

用"渲染模型 + 状态流 + 性能"组织 Vue 与 React 面试题。

框架题不是 API 问答,而是考你是否理解这套框架如何管理更新、组件边界和状态。先讲机制原理,再讲源码实现,最后落到项目实践。

这一章的目标

  • 能说清响应式追踪或状态调度如何驱动渲染
  • 能对比 Vue Proxy 响应式 vs React Fiber 调度的根本差异
  • 能从编译优化、Diff 策略、组件边界推导性能方案

推荐学习路径

响应式与状态更新机制

Vue 3 Proxy 响应式(track/trigger)vs React Fiber 调度(lane 优先级 + 时间切片)

渲染管线与 Diff 策略

Vue 编译优化(PatchFlag + Block Tree + 静态提升)vs React 不可变 Reconciliation(双缓存 + Lane)

组件边界与通信模式

Composable / Hooks 设计、provide/inject vs Context、Pinia vs Zustand

性能优化与工程实践

v-memo / useMemo、shallowRef / React.memo、虚拟滚动、懒加载

高频主线

维度Vue 3React
状态模型Proxy 响应式(自动追踪依赖)不可变状态 + setState 调度
更新粒度组件级精确更新(编译标记)组件级 + 子树协调
编译优化静态提升、PatchFlag、Block Tree无编译优化,运行时 Reconcile
组合逻辑Composable(use 前缀 + ref 返回)Custom Hook(闭包 + 依赖数组)
状态管理Pinia(~1KB,原生 TS)Zustand / Jotai / Redux

框架对比核心问题

状态更新机制

对比项Vue 3React
核心模型Proxy 劫持 + track/trigger 自动收集依赖不可变状态 + setState 调度
更新触发响应式数据变化自动触发手动调用 setState / dispatch
更新粒度组件级精确更新(编译标记辅助)组件级 + 子树协调
批量更新自动批量(nextTick 合并)React 18 自动批量(原需 flushSync)

渲染与 Diff 策略

对比项Vue 3React
编译优化静态提升、PatchFlag、Block Tree、事件缓存无编译优化,运行时 Reconcile
Diff 算法同层对比 + LIS 最长递增子序列同层对比 + Key 匹配
虚拟 DOM编译期标记动态节点,跳过静态全量递归对比子树
调度能力无优先级调度,同步更新Fiber + Lane 优先级 + 时间切片

组合逻辑与状态管理

对比项Vue 3React
组合模式Composable(use 前缀 + toValue 输入 + ref 返回)Custom Hook(闭包 + 依赖数组 + 规则约束)
副作用管理effectScope 批量清理 watch/computedcleanup 函数手动返回
全局状态Pinia(~1KB,原生 TS,无需 Mutation)Zustand / Jotai / Redux
跨级通信provide/inject + PiniaContext + 第三方状态库

新特性与进阶

对比项Vue 3React
双向绑定defineModel(3.4+)、v-model 多实例受控组件 + onChange 手动绑定
性能标记shallowRefv-memov-onceReact.memouseMemouseCallback
并发能力无内置并发调度useTransitionuseDeferredValue
服务端渲染Nuxt 3 / onServerPrefetchServer Components + Suspense 流式 SSR
路由守卫完整 12 步导航流程 + 元信息鉴权路由库依赖(React Router loaders)

面试中不要只说"Vue 很方便"或"React 很灵活",而要说明响应式追踪 / 状态调度如何驱动渲染,以及你在项目里如何利用这些机制做优化。

本页内容