1---2name: vue-best-practices-43description: Vue 3 TypeScript, vue-tsc, Volar, Vite, component props, testing, composition API. Use when this capability is needed.4---56# Vue Best Practices78## Capability Rules910| Rule | Keywords | Description |11| ------------------------------------------------------------------------- | ---------------------------------------------------- | --------------------------------------- |12| [vue-tsc-strict-templates](rules/vue-tsc-strict-templates.md) | undefined component, template error, strictTemplates | Catch undefined components in templates |13| [fallthrough-attributes](rules/fallthrough-attributes.md) | fallthrough, $attrs, wrapper component | Type-check fallthrough attributes |14| [strict-css-modules](rules/strict-css-modules.md) | css modules, $style, typo | Catch CSS module class typos |15| [data-attributes-config](rules/data-attributes-config.md) | data-\*, strictTemplates, attribute | Allow data-\* attributes |16| [volar-3-breaking-changes](rules/volar-3-breaking-changes.md) | volar, vue-language-server, editor | Fix Volar 3.0 upgrade issues |17| [module-resolution-bundler](rules/module-resolution-bundler.md) | cannot find module, @vue/tsconfig, moduleResolution | Fix module resolution errors |18| [unplugin-auto-import-conflicts](rules/unplugin-auto-import-conflicts.md) | unplugin, auto-import, types any | Fix unplugin type conflicts |19| [codeactions-save-performance](rules/codeactions-save-performance.md) | slow save, vscode, performance | Fix slow save in large projects |20| [duplicate-plugin-detection](rules/duplicate-plugin-detection.md) | duplicate plugin, vite, vue plugin | Detect duplicate plugins |21| [define-model-update-event](rules/define-model-update-event.md) | defineModel, update event, undefined | Fix model update errors |22| [with-defaults-union-types](rules/with-defaults-union-types.md) | withDefaults, union type, default | Fix union type defaults |23| [deep-watch-numeric](rules/deep-watch-numeric.md) | watch, deep, array, Vue 3.5 | Efficient array watching |24| [vue-directive-comments](rules/vue-directive-comments.md) | @vue-ignore, @vue-skip, template | Control template type checking |25| [script-setup-jsdoc](rules/script-setup-jsdoc.md) | jsdoc, script setup, documentation | Add JSDoc to script setup |26| [vue-router-typed-params](rules/vue-router-typed-params.md) | route params, typed router, unplugin | Fix route params typing |2728## Efficiency Rules2930| Rule | Keywords | Description |31| --------------------------------------------------- | -------------------------- | ------------------- |32| [hmr-vue-ssr](rules/hmr-vue-ssr.md) | hmr, ssr, hot reload | Fix HMR in SSR apps |33| [pinia-store-mocking](rules/pinia-store-mocking.md) | pinia, mock, vitest, store | Mock Pinia stores |3435## Reference3637- [Vue Language Tools](https://github.com/vuejs/language-tools)38- [Vue 3 Documentation](https://vuejs.org/)3940---41> Converted and distributed by [TomeVault](https://tomevault.io/claim/libondev) — claim your Tome and manage your conversions.42<!-- tomevault:4.0:skill_md:2026-04-11 -->