60 / 67
Как организовать слой доменной логики в Vue?
Доменная логика -- это чистые функции и классы на TypeScript без зависимости от Vue. Они живут в отдельной папке domain/ и содержат бизнес-правила, валидации, расчёты. Vue-реактивность оборачивает их в composables.
TypeScript
// domain/pricing.ts -- чистая функция
export function calculateDiscount(subtotal: number, userTier: string): number {
if (userTier === 'premium' && subtotal > 5000) return subtotal * 0.15
if (subtotal > 10000) return subtotal * 0.1
return 0
}