SuperAPI AI 工具集

vue-best-practices

前端与建站

查看项目

更新于 10-15 15:26

技能介绍

用途

本技能面向 Vue 3 与 Vue.js 的开发实践,提供一套最佳实践速查参考。适用于在编写、审查或重构 Vue 3 组件时使用,帮助开发者遵循推荐的写法并规避常见错误。

主要能力

技能内容以速查表(Quick Reference)形式组织,按主题划分,每个主题对应一份参考文档:

  • TypeScript:涵盖 Props 提取、泛型组件、useTemplateRef、JSDoc、响应式 props 解构,参考 typescript.md。
  • Volar:涵盖 IDE 配置、strictTemplates、CSS modules、指令注释、Volar 3.0 迁移,参考 volar.md。
  • 组件:涵盖 defineModel、深度侦听、onWatcherCleanup、useId、延迟 teleport,参考 components.md。
  • 工具链:涵盖 moduleResolution、HMR SSR、重复插件检测,参考 tooling.md。
  • 测试:涵盖 Pinia store 模拟、setup stores、Vue Router 类型化参数,参考 testing.md。

关键模式

技能列出了若干核心模式,包括:

  • 提取组件 Props:使用 vue-component-type-helpers 的 ComponentProps 类型。
  • 响应式 Props 解构(Vue 3.5+):解构后的 props 保持响应式,为 Vue 3.5+ 推荐写法。
  • useTemplateRef(Vue 3.5+):自动类型化的模板引用。
  • onWatcherCleanup(Vue 3.5+):在侦听器中清理副作用,例如中止请求。
  • defineModel 配合 required:返回 Ref<Item> 而非 Ref<Item | undefined>。
  • 数值深度深度侦听:Vue 3.5+ 中通过 deep: 1 侦听数组变更而无需完整遍历。
  • Pinia store 测试设置:使用 @pinia/testing 的 createTestingPinia 并传入 createSpy。

常见错误

技能同时列出了需要避免的常见错误:

  • 使用 InstanceType<typeof Component>['$props'],应改用 ComponentProps。
  • 在 createTestingPinia 中缺少 createSpy,@pinia/testing 1.0+ 中为必需项。
  • 对联合类型使用 withDefaults,应改用响应式 Props 解构。
  • 将 strictTemplates 放在错误的 tsconfig 中,应添加到 tsconfig.app.json 而非根配置。
  • 在 Volar 3.0 下使用 ts_ls,Neovim 中应改用 vtsls。
  • 对大型结构使用 deep: true,应使用数值深度以提升性能。
  • 直接侦听解构后的 props,应包装为 getter:watch(() => count, ...)。
  • 在 SSR 中使用随机 ID,应使用 useId() 生成水合安全的 ID。

适用场景

适合在 Vue 3 项目开发过程中作为速查参考,尤其在涉及 TypeScript 类型、IDE 配置、组件模式、工具链配置和单元测试时。

限制

资料未提供该技能的安装方式、收费模式、支持平台及具体使用步骤,这些信息暂未提供。