Styling and CSS

Як додавати CSS класи до компонентів?

Передайте рядок як проп className:

render() {
  return <span className="menu navigation-menu">Меню</span>
}

Класи зазвичай залежать від пропсів та стану компоненту:

render() {
  let className = 'menu';
  if (this.props.isActive) {
    className += ' menu-active';
  }
  return <span className={className}>Меню</span>
}

Порада

Якщо ви часто пишете такий код, пакунок classnames може спростити його.

Чи можу я використовувати inline стилі?

Так, дивіться документ щодо стилізування .

Чи є inline стилі поганою практикою?

Зазвичай CSS класи кращі за продуктивністю ніж inline стилі.

Що таке CSS-in-JS?

“CSS-in-JS” відносяться до патерну, де CSS описується з використанням JavaScript замість описування у зовнішніх файлах. Ви можете ознайомитись з бібліотеками CSS-in-JS тут.

Зауважте, що цей функціонал не є частиною React, але надається сторонніми бібліотеками. React не має чіткої точки зору стосовно визначення стилів; якщо ви маєте сумнів, гарним початком може бути визначення ваших стилів в окремому *.css файлі з посиланням на них використовуючи className.

Чи можу я робити анімації в React?

React може використовуватися для роботи з анімаціями. Для прикладів, дивіться React Transition Group та React Spring.