1. 组合式 API 中异步组件响应性丢失
现象 :在 setup() 内使用 await 异步加载组件后,部分响应式变量未正确触发更新。
临时方案 :用 shallowRef + markRaw 包裹异步组件:
javascript
const AsyncComp = shallowRef(markRaw(defineAsyncComponent(() => import('...'))));
2. <script setup> 作用域下 v-model 自定义修饰符失效
场景 :在自定义组件中使用 v-model 时,通过 defineProps 接收的修饰符参数未正确传递。
修复参考 :显式声明 modelModifiers 类型:
typescript
defineProps<{ modelModifiers?: { uppercase: boolean } }>();
3. Teleport 组件与 SSR 兼容性问题
表现 :在 Nuxt 等 SSR 框架中,<Teleport> 内容可能重复渲染或未正确挂载到目标节点。
规避措施:动态禁用 Teleport 的 SSR 功能:
html
<Teleport :disabled="process.server" to="#target">
4. Suspense 边界捕获异步错误异常
问题 :嵌套的 <Suspense> 组件中,子组件的异步错误未被最外层 onErrorCaptured 捕获。
跟踪进展 :建议检查 Vue GitHub Issue #11879 的修复状态。
5. Reactive 对象解构后响应性断开
陷阱 :对 reactive({ ... }) 解构赋值时,新变量失去响应性:
javascript
const state = reactive({ count: 0 });
const { count } = state; // 🚫 count 不再响应
正确实践 :始终通过 state.count 访问,或改用 toRefs 转换。