komponenty v kaskákdě

23
Komponenty v kaskádě Reactisti - Praha, Prosinec 2015

Upload: filip-mares

Post on 16-Apr-2017

435 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Komponenty v kaskákdě

Komponenty v kaskáděReactisti - Praha, Prosinec 2015

Page 2: Komponenty v kaskákdě

Filip Mareš

Principal Software EngineerMonster Worldwide@etylsarin

Page 3: Komponenty v kaskákdě

Komponenty kam se podíváš

„UI by se měly skládat z opětovně použitelných komponent s dobře

definovaným rozhraním“

Page 4: Komponenty v kaskákdě

WTF?!

Page 5: Komponenty v kaskákdě

CSS a komponenty

Christopher “vjeux” ChedeauReact: CSS in JS

Page 6: Komponenty v kaskákdě

7 „problémů“ CSS• Všechno je v globálním namespace• Závislosti• Eliminace mrtvého kódu• Minifikace• Sdílení konstant• Umístění ve stylopisu hraje roli• Izolace

Page 7: Komponenty v kaskákdě

CSS v JSIn-line styly FTW!

Page 8: Komponenty v kaskákdě

CSS v Reactu

Page 9: Komponenty v kaskákdě

Cascading Style Sheets

• Selektor ≠ proměnná• CSS vzniklo v době

webových stráneka dokumentů

Page 10: Komponenty v kaskákdě

7 „problémů“ CSS• Všechno je v globálním namespace• Závislosti• Eliminace mrtvého kódu• Minifikace• Sdílení konstant• Umístění ve stylopisu hraje roli• Izolace

Page 11: Komponenty v kaskákdě

Nevýhody CSS v JS• Globální styly• Použití stávajících knihoven• Styly pro různé prohlížeče / uživatele• Svázání konkrétního vzhledu s

komponentou• Svázání konkrétní technologie s

komponentou

Page 12: Komponenty v kaskákdě

Nevýhody in-line CSS

• (Ne)ukládání do mezipaměti• Velikost HTML hraje roli• :hover/:focus/:active• Media queries (@ pravidla)• CSS Animace• Stylování pro různé prohlížeče• DevTools / SourceMaps

Page 13: Komponenty v kaskákdě

CSS v Reactu

Page 14: Komponenty v kaskákdě

css-loaderloader: ‘css-loader?modules’

Page 15: Komponenty v kaskákdě

Disciplína FTW!

Page 16: Komponenty v kaskákdě

Ideální řešení• Sass, Less, nebo PostCSS syntaxe• Nezávislé na frameworku• Nezávislé na CSS názvosloví• Žádná extra režie při renderování

stylů na klientu

Page 17: Komponenty v kaskákdě

Jak si zvolit konvence?

• Velikost projektu• Externí knihovny• Časová náročnost• Don’t Repeat Yourself• Modifikace• Izolace

Page 18: Komponenty v kaskákdě

ITCSSObecné

Konkrétní

Page 19: Komponenty v kaskákdě

ITCSSMéně

specifické

Vícespecifické

NastaveníNástrojeObecnéZákladníObjekty

KomponentyExkluzivní

Page 20: Komponenty v kaskákdě

ITCSS

Page 21: Komponenty v kaskákdě

Kam dál?• React Native• Shadow DOM• MSS ?

Page 22: Komponenty v kaskákdě

Díky!