Vue 3 附录:进阶知识体系提要
从扩展问答类长文中抽取结构与主干要点;细节与手写题仍以正文 01~06 各章为准。
说明(阅读建议)
- 原理延伸阅读:见 02-响应式、05-diff 与优化。
- 写法与复用:见 03-组合式 API。
- 生态:路由、指令、Suspense 见 04;TS、SSR、错误见 06。
一、Vue 3 相比 Vue 2:五条主线
- 源码 / 工程:TS 重写、Monorepo 分包,维护性与扩展性更好。
- 性能 / 体积:Tree-shaking、编译期 PatchFlag / 静态提升、diff 优化,线上常用路径更小更快。
- API 形态:Composition API +
<script setup>,大型组件逻辑组织更清晰。 - 响应式:
Proxy取代Object.defineProperty,补齐全面的对象/集合监听能力。 - 破坏性变更:
filter、$on/$off/$once、.sync等退场或替换(参见 01-入门)。
二、响应式简要表述模板
- 实现:
Proxy + Reflect + effect→ track / trigger。 - 为何 Proxy:原生支持增删属性、数组索引、
Map/Set;懒代理优化初始化。 - ref vs reactive:原始值 vs 对象聚合;解构用 toRefs;整体替换多用 ref。
三、Composition API 优缺点
- 优点:逻辑聚合、Composable 复用、TS 友好。
- 缺点:上手曲线略陡;过度拆分 hooks 可读性反降。
<script setup>:少样板、编译期优化、类型推导自然;配套 defineProps / defineEmits / defineExpose。
四、生命周期(组合式)
常用:onMounted / onUpdated / onBeforeUnmount / onUnmounted,缓存组件配合 onActivated / onDeactivated,错误 onErrorCaptured。
与 Vue 2 对照见 03。
五、组件通信全景
- 父子:props + emit(
defineProps/defineEmits)。 - 跨层:provide/inject(传 ref/reactive 保持响应式)。
- 全局状态:Pinia(替代 Vuex 为主流)。
- 兄弟:优先状态抬升 / Pinia;避免依赖已移除的内置事件总线。
- ref + defineExpose:命令式调用子能力。
六、内置组件速记
Teleport、Suspense、KeepAlive、transition 系列 —— 详见 04 与 Vue 2 文档中动画/keep-alive 章节。
七、Vue Router 4(提要)
createRouter + createWebHistory / createWebHashHistory;组合式 useRouter / useRoute;动态 addRoute;路由懒加载 import()。
守卫顺序(官方 Full Navigation Resolution Flow 摘要):beforeRouteLeave(将失活的组件)→ 全局 beforeEach → beforeRouteUpdate(复用的组件)→ 路由 beforeEnter → 解析异步组件 → beforeRouteEnter(将激活的组件)→ 全局 beforeResolve → 确认导航 → 全局 afterEach → DOM 更新 →(选项式下)beforeRouteEnter 里传给 next 的回调。细节以 Navigation Guards 为准。
八、Pinia(提要)
相对 Vuex:无 mutation 分层负担、模块即 store、TS 友好、体积小。
持久化常用 pinia-plugin-persistedstate。
九、diff / 虚拟 DOM / nextTick(提要)
- PatchFlag + 静态提升 → 缩小比对面。
- 列表 LIS → 少移动 DOM。
- nextTick:等待队列刷新后再读 DOM(实现原理:微任务优先)。
十、性能优化分层(提要)
- 编译:交给 Vue 3 编译器。
- 代码:shallow、computed、懒加载、列表 key、虚拟滚动、
v-memo。 - 打包:分包、压缩、按需引入组件库、CDN / HTTP2 等。
关于附录长文
原 知识体系导图(Vue 3).md 曾含「逐题标准答案」、手写 reactive/computed/nextTick 参考实现及 Vite vs Webpack 对比稿,适合系统复习时对照精读。主体内容已拆分到:
- 原理 → 02 / 05
- 写法 → 03 / 04
- 工程 → 06 / 07(本附录)
若需恢复旧版长文,可在版本历史中检索或向仓库维护者索取存档。
