Стилизованные компоненты и функциональный компонент с использованием параметра стиля

Я просто спросил себя, в чем причина использования стилизованных компонентов вместо настраиваемого функционального компонента в реакции, кроме сохранения нескольких LOC. Пример кода:

const StyledButton = (props) => (
  <button
    style={{
      color: '#E8E8E8',
      padding: '8px 16px',
    }}
    {...props}
  />
);

const jsx = () => <div><StyledButton>Click Me!</StyledButton></div>;
const StyledButton = styled.button`
  color: '#E8E8E8';
  padding: '8px 16px';
`;

const jsx = () => <div><StyledButton>Click Me!</StyledButton></div>;

С уважением, Томас


person Thomas Dissert    schedule 07.01.2021    source источник
comment
Чистый код и, самое главное, область видимости класса CSS. если вы хотите внести изменения в условные стили. Стилизованный компонент элегантный способ сделать это вместо вложения встроенных стилей. Есть еще несколько.   -  person Sam    schedule 07.01.2021
comment
Даже если бы единственная разница заключалась в том, что мне не нужно было использовать кавычки вокруг каждого значения CSS и camelCase всех атрибутов CSS, я бы не вернулся :) Как бы вы стилизовали псевдоэлементы и псевдоселекторы с встроенными стилями ? Как бы вы стилизовали span и значки внутри своего button?   -  person Zsolt Meszaros    schedule 07.01.2021


Ответы (1)


С помощью styled-components вы можете использовать всю мощь CSS, а это значит, что вы можете:

  • Перезаписать CSS дочерних тегов и классов
  • Используйте псевдоклассы, такие как :visited, :first и т. Д.
  • Используйте hover и другие состояния пользовательского интерфейса
  • Легко используйте переменные css

Так же, как несколько примеров, но, очевидно, все остальное, что css может делать по умолчанию, что потребует дополнительного javascript для работы с простыми стилями.

Также вы можете узнать больше о мотивации стилизованных компонентов здесь.

person Philip Feldmann    schedule 07.01.2021