В Quasar важно поддерживать единообразие в именовании файлов, чтобы проект оставался читаемым и масштабируемым. Основные правила включают:
Файлы компонентов всегда должны иметь расширение
.vue и использовать PascalCase.
Например:
UserProfile.vue
ProductList.vue
Это позволяет отличать компоненты от обычных утилитарных файлов и упрощает автоподключение.
Файлы утилит и сервисов обычно используют kebab-case:
api-service.js
date-helper.js
Такое именование делает их легко идентифицируемыми среди других ресурсов проекта.
Маршруты и страницы в папке pages/
используют PascalCase или kebab-case,
при этом файлы должны отражать структуру маршрутов:
pages/
HomePage.vue
AboutUs.vue
user-profile.vue
В случае сложной вложенной структуры рекомендуется использовать папки для группировки связанных страниц:
pages/
admin/
AdminDashboard.vue
AdminSettings.vueОсновное правило — имя компонента должно
отражать его функционал и быть осмысленным. Нельзя
использовать абстрактные имена вроде Component1.vue или
MyComponent.vue.
Локальные компоненты в пределах одного файла используют camelCase:
<script>
import UserCard from './UserCard.vue'
export default {
components: {
UserCard
}
}
</script>
CamelCase облегчает чтение кода внутри <script> и
предотвращает путаницу при импортах.
Глобальные компоненты регистрируются через
app.component('ComponentName', Component) и должны
совпадать с именем файла.
Каждый компонент должен находиться в папке, соответствующей его назначению:
src/
components/
buttons/
PrimaryButton.vue
IconButton.vue
cards/
ProductCard.vue
UserCard.vue
Такой подход обеспечивает логическую организацию проекта и упрощает навигацию по коду.
Для больших проектов часто используют Feature-based Structure: структура строится по функциональным модулям:
src/
features/
user/
components/
UserCard.vue
UserList.vue
pages/
UserProfile.vue
product/
components/
ProductCard.vue
pages/
ProductList.vueИмя компонента внутри
<script> должно совпадать с именем файла:
<script>
export default {
name: 'UserProfile'
}
</script>Props и events используют camelCase в JavaScript и kebab-case при передаче в шаблоне:
<UserProfile :user-id="123" @profile-updated="updateProfile" />Методы и вычисляемые свойства также следуют camelCase, что улучшает читаемость и поддерживает единый стиль.
Классы CSS для компонентов рекомендуется именовать по принципу **BEM (Block__Element–Modifier)**:
.user-card { }
.user-card__avatar { }
.user-card--active { }
Это предотвращает коллизии имен и делает стили предсказуемыми.
Если используется SCSS/LESS модули в компоненте, название файла стиля совпадает с компонентом:
UserCard.vue
UserCard.module.scssbtn лучше заменить на button.Header, Footer, Sidebar.BaseButton, BaseInput. Это сразу указывает на
универсальность компонента.Такой подход к именованию обеспечивает чистоту проекта, облегчает масштабирование и снижает риск ошибок при интеграции новых разработчиков в команду.