Вопрос проверяет понимание динамического управления inline-стилями во Vue и отличий этого подхода от работы с CSS-классами.
:style позволяет задавать inline-стили на основе данных компонента. Значения могут вычисляться динамически через выражения или computed-свойства. Этот подход полезен для значений, которые сложно выразить через классы. Однако его не рекомендуется использовать для сложной стилизации. Чаще всего :style применяется для отдельных свойств.
Директива :style используется, когда внешний вид элемента напрямую зависит от данных.
:style — это механизм Vue для динамического задания inline-стилей через JavaScript-объект или массив объектов.
Простейший пример:
<div :style="{ color: isError ? 'red' : 'black' }"></div>
Vue применит соответствующее значение в зависимости от состояния данных.
Наиболее распространённый вариант:
<div :style="{ width: size + 'px', opacity: isVisible ? 1 : 0.5 }"></div>
Для более сложной логики рекомендуется:
computed: {
styles() {
return {
backgroundColor: this.isActive ? 'green' : 'gray'
}
}
}
<div :style="styles"></div>
:style уместен, если:
значение вычисляется динамически
стиль зависит от данных
невозможно выразить через классы
Для сложных визуальных состояний лучше использовать CSS-классы.
:style подходит для точечной динамической стилизации, но не заменяет полноценную работу с CSS.