vue-best-practicesлучшие практики Vue Hyf0
hyf0/vue-skills
Лучшие практики Vue.
Установка
npx -y skills add hyf0/vue-skills --skill vue-best-practices --agent claude-codeVue Best Practices
Набор лучших практик для Vue.js. ОБЯЗАТЕЛЬНО использовать для Vue.js задач. Стандартный подход: Composition API с <script setup> и TypeScript. Охватывает Vue 3, SSR, Volar, vue-tsc. Загружать при работе с .vue файлами, Vue Router, Pinia или Vite с Vue.
Основные принципы
- Состояние предсказуемо — один источник истины, всё остальное выводится
- Поток данных явный — props вниз, events вверх
- Маленькие сфокусированные компоненты — легче тестировать, переиспользовать и поддерживать
- Избегать лишних перерендеров — wisely использовать computed и watchers
- Читаемость важна — самодокументирующийся код
1) Подтвердить архитектуру перед кодированием (обязательно)
Стандартный стек: Vue 3 + Composition API + <script setup lang="ts">.
- Если проект явно использует Options API → загрузить
vue-options-api-best-practices - Если проект явно использует JSX → загрузить
vue-jsx-best-practices
Обязательные справочники
Перед любой Vue-задачей прочитать и применить:
references/reactivity.mdreferences/sfc.mdreferences/component-data-flow.mdreferences/composables.md
Спланировать границы компонентов перед кодированием
Для любой нетривиальной фичи создать краткую карту компонентов:
- Одно предложение об ответственности каждого компонента
- Entry/root и route-level компоненты — только как поверхности композиции
- Определить props/emits контракты для каждого дочернего компонента
- Предпочтительная структура папок по фичам:
components/<feature>/...,composables/use<Feature>.ts
2) Основы реактивности
- Минимальное исходное состояние (
ref/reactive), всё производное черезcomputed - Watchers — только для side effects
- Не перевычислять дорогую логику в шаблонах
3) Структура SFC и безопасность шаблонов
- Порядок секций SFC:
<script>→<template>→<style> - Фокусированная ответственность SFC; разбивать большие компоненты
- Шаблоны декларативны — без side effects
4) Поток данных компонентов
- Props down, events up — по умолчанию
defineModel()для двусторонней привязки (Vue 3.4+)provide/injectдля глубоко вложенных зависимостей- Избегать prop drilling через более двух уровней
5) Composables
- Называть с префиксом
use:useUser,useCart - Возвращать реактивные refs, не сырые значения
- Cleanup в
onUnmountedдля event listeners, intervals - Не вызывать composables внутри условий или циклов
6) Производительность
v-memoдля тяжёлых списков с редко меняющимися даннымиshallowRef/shallowReactiveдля больших объектов без глубокой реактивностиdefineAsyncComponentдля разбивки кода по маршрутам- Уникальные стабильные
:keyдляv-for— без использования индексов
7) TypeScript и Volar
- Включить
strict: trueвtsconfig.json - Использовать generic-синтаксис для
defineProps/defineEmits - Проверять типы с помощью
vue-tscв CI
Из того же репозитория
vue-debug-guides — гайды по отладке Vue Hyf0
hyf0/vue-skills
Гайды по отладке Vue.
vue-pinia-best-practices — лучшие практики Pinia Hyf0
hyf0/vue-skills
Лучшие практики Vue Pinia Hyf0.
vue-router-best-practices — лучшие практики Vue Router Hyf0
hyf0/vue-skills
Лучшие практики Vue Router Hyf0.
create-adaptable-composable — адаптивный Composable Vue HYF
hyf0/vue-skills
Адаптивный Composable Vue HYF.
vue-testing-best-practices — лучшие практики тестирования Vue Hyf0
hyf0/vue-skills
Лучшие практики тестирования Vue Hyf0.
vue-options-api-best-practices — лучшие практики Options API Hyf0
hyf0/vue-skills
Лучшие практики Vue Options API Hyf0.
