Перейти к содержимому
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
}

Как организовать слой доменной логики в Vue? | JScriptiser