Projekt

Obecné

Profil

ReactJS knihovna » Historie » Verze 9

Jiří Trefil, 2023-03-26 20:11

1 1 Jiří Trefil
h1. ReactJS knihovna
2 2 Jiří Trefil
3 4 Jiří Trefil
React je opensource knihovna vyvíjená společností Meta (facebook) a společně s VueJS a Angularem soupeří o srdce frontend vývojářů.
4
 
5 5 Jiří Trefil
React následje *deklarativní* paradigma a *komponentově orientovaný* návrh. Deklarativní paradigma je v podstatě pouze obálka nad imperativně napsaným kódem, programátor volá pouze API Reactu.
6 4 Jiří Trefil
7 1 Jiří Trefil
Komponenty jsou snadno představitelné jako právě jeden HTML prvek. Komponenty můžeme skládat dohromady a tvořit pomocí nich komplexní stránky. Komponentový návrh umožňuje velice elegantně recyklovat kód a silně podporuje D.R.Y. standard. 
8 4 Jiří Trefil
9
Samotný React běží nad Nodejs serverem. Nodejs (TODO link na nodejs ofiko) je interprect javascriptu, který umožňuje interpretovat javascript přímo na počítači. Nativně javascriptu rozumí pouze webový prohlížeč.
10
11 8 Jiří Trefil
React umožňuje použití Typescriptu (typová nadstavba javascriptu), který se následně kompiluje do čistého javascriptu. V projektu SPADe je používán *Typescript* kvůli robustnější codebase.
12
Zároveň vyvíjíme komponenty funkcionálně (komponenty definovány jako *funkce*, ne jako třídy). Tento přístup je v React ekosystému používanější a samotný kód je mnohem přehlednější.
13 9 Jiří Trefil
 (TODO rychlou typescript wiki napsat - deklarace vlastní typů, atp.)
14
15
React si interně vytváří *Virtual DOM* nad samotným DOMem, se kterým pracuje prohlížeč (respektive js). Tento virtuální DOM umožňuje Reactu jakoukoliv změnu v kódu přímo promítnout bez nutnosti restartovat Node server. Tohoto efektivního překreslení pouze nutných částí aplikace dosahuje pomocí diferencovacího algoritmu (porovnání virtualního domu starého s novým) (TODO viz -> odkaz někam do webu).  
16 4 Jiří Trefil
17 7 Jiří Trefil
 * Ukázka v jednoduché komponenty v Reactu [[Komponenta]].
18
 * Vytvoření formuláře [[Formular]].
19
 * Komunikace se serverem [[Komunikace se serverem]].
20
 * React router [[React router]].
21
 * React hooky [[React hooky]].