Vue 3:TypeScript、服务端渲染与错误处理
一、TypeScript
- 优先
<script setup lang="ts">。 ref<T>、reactive<T>等泛型标注。tsconfig的include/paths配好,保证模板与类型声明覆盖。
(复杂类型推断可结合 vue-tsc 做 CI 校验。)
二、服务端渲染 SSR
流程拆分
- 服务端:
createSSRApp、路由匹配、数据预取、@vue/server-renderer生成 HTML。 - 客户端:携带打包 JS
hydrate接管交互,而不是重新mount一整棵树。
CSR vs SSR
- CSR:首屏空壳 + JS,SEO/首屏弱。
- SSR:首屏 HTML 完整,利于 SEO;服务端成本上升。
实践框架
Nuxt、或自建 Node(Express/Koa)集成。
注意
- VNode 需两端一致才能 hydration。
- 全局状态需 序列化注入(如
window.__INITIAL_STATE__)。 - 路由配置前后端共用。
三、错误处理
全局
app.config.errorHandler:Vue 渲染/生命周期等路径。- 搭配
window.onerror、unhandledrejection覆盖非 Vue 路径。
组件
onErrorCaptured:局部降级 UI。
路由
router.onError:chunk 加载失败等。
异步
- Promise
.catch;async/await+try/catch。
四、小结
- TS:
<script setup>+ 泛型 + 构建检查。 - SSR:渲染 → hydrate → 状态注水。
- 错误:分层兜底 + 上报管道。
如需 Pinia / Vue Router 扩展问答,见 07-附录。
