{ 'class-name': condition } — condition true ဆိုမှ class ထည့်မယ်
<p :class="{ 'text-bold': isBold, 'text-red': isRed }">Text</p>
data() {
return { isBold: false, isRed: false }
}
Toggles:
← ဒီ text က checkbox တိုင်းနဲ့ ပြောင်းတယ်!
Applied classes: {{ appliedClasses }}
Array ထဲ class names တွေ ထည့်လို့ရတယ် — object နဲ့ ရောသုံးလည်းရ
<p :class="[baseClass, activeClass, { 'text-bold': isBold }]">
data() {
return {
baseClass: 'text-large',
activeClass: 'text-green'
}
}
Base class:
Color class:
Array class binding ကြည့်ပါ!
:class="{{ '[' + [baseClass, colorClass].filter(Boolean).join(', ') + ']' }}"
Complex class logic ကို computed ထဲ ထည့်ပြီး template ကို သပ်ရပ်အောင် လုပ်
computed: {
cardClasses() {
return {
'card': true,
'active': this.status === 'active',
'error': this.status === 'error',
'warning': this.status === 'warning'
}
}
}
<div :class="cardClasses"> ← template သပ်ရပ်တယ်
Status:
{{ Object.keys(cardClasses).filter(k => cardClasses[k]).join(', ') }}
CSS properties တွေကို camelCase နဲ့ data အဖြစ် bind လုပ်တယ်
<p :style="{ color: textColor, fontSize: size + 'px', fontWeight: 'bold' }">
data() {
return { textColor: '#42b883', size: 18 }
}
Vue.js :style binding လေ့လာနေပါတယ်!
<!-- Array of style objects -->
<div :style="[baseStyles, extraStyles]">
<!-- Inline dynamic -->
<div :style="{ background: color, transform: 'rotate(' + deg + 'deg)' }">
🏠 Home content — :class =['tab', { 'active-tab': activeTab === tab }]
👤 Profile content
⚙️ Settings content
Active tab: {{ activeTab }}
Variant: Size:
:class="{{ '[\"btn-demo\", \"' + variant + '\", \"' + size + '\", { \"btn-disabled\": ' + disabled + ' }]' }}"
← Lesson 06 | Next: Lesson 08 → Forms