Styled-components. Что? Когда? И зачем?

vitebsk-miniq 116 views 23 slides Jun 03, 2019
Slide 1
Slide 1 of 23
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23

About This Presentation

Презентация подготовлена по материалам выступления Даниила Янковского на витебском MiniQ#15, который был проведен 30 мая 2019:
https://vk.com/miniq15;
https://communities.by/events/miniq-vitebsk-15.

П...


Slide Content

communities.by

STYLED-COMPONENTS
Что? Когда?
И зачем?
MINIQ #15 ДаниилЯнковский
30.05.2019

Даниил Янковский
Место работы: EPAM
Должность: Software Engineer

План
•Что это такое?
•Почемуименно styled-components?
•Как это работает?
•Показать примеры
•Когда и зачем?

История...

Чтоэтотакое?

Ещёоднаистория...

Вьетнам. Флэшбэки.
+ =

Почему styled-components?
•Большое сообщество
•Удобство разработки (Хорошая документация)
•Скорость работы
•Кроссплатформенность
•Реализация адаптивной вёрстки
•Серверный рендеринг
•Модульные тесты

Сравнение
Oct 12, 2014 Jan 9, 2015 Aug 16, 2016May 27, 2017
stars
forks
issues
used by
4880 6975 23971 8032
2039264107
272 318 1411 494
166 21541 178 13 896 20 561

Удобство разработки
Tagged Literal
Templates
(as ex. styled-components)
Object model
(as ex. Radium)

Удобство разработки
Наследование
TODO:добавить картинку

Удобство разработки
Адаптив
TODO:добавить картинку

Удобство разработки
Styled-components CSS
TODO:добавить картинку TODO:добавить картинку

Сравнение
Styled-components JSS
TODO:добавить картинку TODO:добавить картинку

Сравнение
Styled-components Radium
TODO:добавить картинку TODO:добавить картинку

Сравнение
Styled-components Emotion
TODO:добавить картинку TODO:добавить картинку

Скорость работы
41
16
15 15
RADIUM STYLED-
COMPONENTS
JSS EMOTION
СКОРОСТЬ МОНТИРОВАНИЯ 1000
УНИКАЛЬНЫХ КОМПОНЕНТОВ В МС

Как это работает?
1.Объявляете styled-component
1.Создаётся внешний контекст для компонента
2.Создаётся внутрений контекст, для использования
тем, только если вы использовали Провайдер Темы
2.Разбирает стили для компонента
1.Создаётся уникальное имя класса
2.Собирает стили для дальнейшего добавления
префиксов

Как это работает?
3.Добавление автопрефиксов
1.Собранные во 2 пункты стили, передаются в Stylis
2.Stylisвозвращает стили с префиксами относительно
текущего режима сборки
1.Production:только для текущего браузера
2.Development: все возможные стили
4.Добавление стилей
1.Создаёт или ищет тег <style>
2.Стили добавляются только, когда компонент
задействован на странице.
3.Стили добавляются относительно режима сборки:
1.Production: используется CSSStyleSheet.insertRule()
2.Development : используетсяNode.appendChild()
5.Отрисовка компонента

Немножечко покодим :)

Когда и зачем?

Спасибо за внимание!