关于 vue3-best-practices
vue3-best-practices 是面向 Vue 3 开发与代码审查的指南型技能,按影响程度整理了 8 类共 45 条规则。内容覆盖响应式性能、组件、打包、模板、状态管理和迁移等主题。
主要功能
- 01按优先级整理 45 条规则
- 02优化响应式数据与组件
- 03改进打包体积和加载
- 04指导 Composition API 与模板实践
- 05涵盖状态管理和生命周期
适用场景
- 01编写 Vue 3 组件或 composable
- 02审查并优化应用性能
- 03从 Vue 2 迁移到 Vue 3
- 04优化打包大小与加载时间
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ eva813/ skills-base --skill vue3-best-practices安装后在 Claude Code 中输入/vue3-best-practices确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
rules/bundle-lazy-loading.mdbundle-tree-shaking.mdcomponent-async-components.mdcomposition-script-setup.mdreactivity-computed-caching.mdreactivity-ref-vs-reactive.mdtemplate-performance.md详细介绍
Vue 3 最佳实践
Vue 3 应用的全面性能优化与开发指南。包含 8 个类别中的 45 条规则,并按影响程度排序,以指导自动重构和代码生成。
适用场景
以下情况可参考这些指南:
- 编写新的 Vue 3 组件或组合式函数
- 实现响应式数据和计算属性
- 检查代码中的性能问题
- 从 Vue 2 迁移到 Vue 3
- 优化打包体积或加载时间
- 使用状态管理(Pinia/Vuex)
- 在组件中实现异步操作
按优先级划分的规则类别
| 优先级 | 类别 | 影响 | 前缀 |
|---|---|---|---|
| 1 | 响应式性能 | CRITICAL | reactivity- |
| 2 | 组件优化 | CRITICAL | component- |
| 3 | 打包体积与加载 | HIGH | bundle- |
| 4 | 组合式 API | MEDIUM-HIGH | composition- |
| 5 | 模板性能 | MEDIUM | template- |
| 6 | 状态管理 | MEDIUM | state- |
| 7 | 生命周期优化 | LOW-MEDIUM | lifecycle- |
| 8 | 高级模式 | LOW | advanced- |
快速参考
1. 响应式性能(CRITICAL)
reactivity-ref-vs-reactive- 基本类型使用 ref,对象使用 reactivereactivity-shallow-ref- 大型不可变对象使用 shallowRefreactivity-computed-caching- 利用计算属性缓存reactivity-watch-vs-watcheffect- 选择合适的侦听器reactivity-unref-performance- 尽量减少热点路径中的 unref 调用reactivity-readonly-immutable- 不可变数据使用 readonly
2. 组件优化(CRITICAL)
component-async-components- 重型组件使用 defineAsyncComponentcomponent-functional- 简单的展示逻辑使用函数式组件component-keep-alive- 使用 keep-alive 缓存开销较大的组件component-lazy-hydration- 为非关键组件实现延迟水合component-prop-validation- 使用高效的 prop 验证component-emit-performance- 优化事件触发
3. 打包体积与加载(HIGH)
bundle-tree-shaking- 组织导入语句,以实现最佳的 tree-shakingbundle-dynamic-imports- 使用动态导入进行代码拆分bundle-plugin-imports- 使用 unplugin-auto-import 改善开发体验bundle-lodash-imports- 单独导入 lodash 函数bundle-moment-alternatives- 使用 day.js 替代 moment.jsbundle-icons-optimization- 优化图标的导入与使用
4. 组合式 API(MEDIUM-HIGH)
composition-script-setup- 优先使用composition-composables-reuse- 将可复用逻辑提取为组合式函数composition-provide-inject- 使用 provide/inject 进行依赖注入composition-expose-selectively- 仅公开必要的属性composition-reactive-transform- 在适当情况下使用响应式转换composition-auto-import- 配置自动导入以改善开发体验
5. 模板性能(MEDIUM)
template-v-once- 静态内容使用 v-oncetemplate-v-memo- 开销较大的列表渲染使用 v-memotemplate-key-optimization- 优化 v-for 的 key 以提升性能template-conditional-rendering- 根据情况选择 v-if 或 v-showtemplate-slot-performance- 优化插槽和作用域插槽的用法template-directive-optimization- 创建高效的自定义指令
6. 状态管理(MEDIUM)
state-pinia-optimization- 优化 Pinia store 结构state-store-composition- 使用 store 组合模式state-persistence- 实现高效的状态持久化state-normalization- 规范化复杂的状态结构state-subscription- 优化状态订阅state-devtools- 配置 devtools 以便调试
7. 生命周期优化(低至中)
lifecycle-cleanup- 在 onUnmounted 中正确清理资源lifecycle-async-setup- 处理 setup 中的异步操作lifecycle-watchers-cleanup- 清理侦听器和副作用lifecycle-dom-access- 在生命周期钩子中安全访问 DOMlifecycle-ssr-considerations- 处理 SSR 生命周期差异
8. 高级模式(低)
advanced-teleport-usage- 使用 Teleport 实现传送门模式advanced-suspense-async- 使用异步组件实现 Suspenseadvanced-custom-renderer- 在需要时创建自定义渲染器advanced-compiler-macros- 有效使用编译器宏advanced-plugin-development- 开发高效的 Vue 插件
框架集成
Vite 集成
- 利用 Vite 快速的 HMR 和构建优化
- 配置适当的代码块拆分策略
- 使用 Vite 插件进行 Vue 专属优化
TypeScript 集成
- 利用 Vue 3 改进后的 TypeScript 支持
- 使用适当的类型定义,提升 DX
- 配置 TypeScript,以获得最佳构建性能
测试集成
- 将 Vue Test Utils 与 Composition API 搭配使用
- 实施高效的组件测试策略
- 优化测试性能和可靠性
使用方法
阅读各条规则文件,了解详细说明和代码示例:
rules/reactivity-ref-vs-reactive.md
rules/component-async-components.md
rules/composition-script-setup.md
每条规则文件都包含:
- 简要说明规则的重要性
- 错误的 Vue 3 代码示例及说明
- 正确的 Vue 3 代码示例及说明
- 性能影响和测量结果
- 补充背景信息和 Vue 3 专属注意事项
从 Vue 2 迁移
从 Vue 2 迁移时的特殊注意事项:
- Composition API 与 Options API 模式
- 响应式系统的变化和优化
- 组件定义和注册的更新
- 事件处理和生命周期变化
性能监控
监控 Vue 3 性能的工具和技术:
- Vue DevTools 集成
- 使用浏览器工具进行性能分析
- Bundle 分析和优化
- 运行时性能监控
评论
支持 Markdown