Задать вопрос
@Sergey750il

Можно ли передавать CSS классы через props?

Здравствуйте. Верным ли решением считается передавать CSS классы в компонент через props? Или props исключительно для данных?
  • Вопрос задан
  • 321 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 3
delphinpro
@delphinpro
frontend developer
я так понимаю, ваш класс меняет состояние компонента. Передавать состояние компонента через пропсы нормально.
Однако я бы напрямую может и не стал так делать.
Лучше передать само состояние, и внутри компонента назначить класс

Плохо
props: {
  'class': String
}


Лучше
props: {
  disabled: Boolean
}

<div :class={disabled: disabled}>


Это уменьшает связанность системы в целом. Компонент отвечает сам за себя, и родитель не знается о том, какие классы ему нужны.
Ответ написан
Комментировать
yarkov
@yarkov Куратор тега Vue.js
Помог ответ? Отметь решением.
Aetae
@Aetae Куратор тега Vue.js
Тлен
Передавать класс в props можно, многие библиотек так делают, но осторожно и только когда без этого не обойтись.

Особенно стоит обратить внимание на это при использовании scoped стилей: переданный внутрь класс не будет работать сам по себе, т.к. привязан к scope родительского компонента, придётся использовать псвевдоселектор :deep(), а это уже чревато коллизиями.

Лучше же разбить всё на максимально небольшие компоненты с простыми api конфигурации и повсеместно использовать слоты, чтобы такие вещи не требовались слишком часто.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы