Frontend Development Quickstart Guide » Historie » Verze 11
Václav Honzík, 2022-04-24 17:58
1 | 1 | Václav Honzík | h1. Frontend Development Quickstart Guide |
---|---|---|---|
2 | |||
3 | 2 | Václav Honzík | Pro spuštění frontendové aplikace je potřeba mít nainstalovanou (ideálně) nejnovější verzi YARN: https://yarnpkg.com/, který lze snadno nainstalovat přes NPM jež je součástí NodeJS (https://nodejs.org/en/). Yarn nainstalujeme následujícím příkazem (v rootové složce frontendu, tzn. /frontend): |
4 | 1 | Václav Honzík | <pre> |
5 | npm install --global yarn |
||
6 | </pre> |
||
7 | |||
8 | Následně můžeme příkaz yarn používat kdekoliv v konzoli (nicméně může být nutný restart). Před samotným spuštěním je potřeba stahnout všechny dependencies pro projekt, což provedeme příkazem: <pre>yarn install</pre> |
||
9 | |||
10 | 11 | Václav Honzík | Před spuštěním pro lokální development je nutno vytvořit .env soubor, který bude mít správnou konfiguraci, což provedeme python skriptem *create_dev_env.py* (skript je funkční pro jakoukoliv verzi Pythonu od 3.7+). Tzn v terminálu zadáme: |
11 | <pre>python create_dev_env.py</pre> |
||
12 | |||
13 | Pokud bychom potřebovali konfiguraci pro deployment, použijeme skript *create_prod_env.py*. |
||
14 | |||
15 | 1 | Václav Honzík | Samotnou aplikaci spustíme příkazem: |
16 | <pre>yarn run start</pre> |
||
17 | |||
18 | Aplikace ve výchozím nastavení poběží na portu 3000 na localhostu, tzn.: http://localhost:3000/ |
||
19 | 3 | Václav Honzík | |
20 | h2. Adresářová struktura |
||
21 | |||
22 | * features - logické moduly v aplikaci - např. katalog, home, apod. |
||
23 | * swagger - kód vygenerovaný ze swaggeru přes gen:swagger skript |
||
24 | * utils - utilitní třídy, které se logicky nehodí do žádné features složky |
||
25 | |||
26 | h2. Sdílení stavu mezi komponentami |
||
27 | |||
28 | 7 | Václav Honzík | Pokud potřebujeme sdílet stav jinak než přes props (např. napříč více komponentami) musí se použít globální store objekt, který poskytuje Redux (redux/store.ts). Pro přehlednější kód se v projektu navíc využívá knihovna Redux Toolkit, který do značné míry zpřehledňuje a zjednodušuje Redux kód. |
29 | 1 | Václav Honzík | |
30 | 7 | Václav Honzík | h3. Slice |
31 | 1 | Václav Honzík | |
32 | 10 | Václav Honzík | Slice označuje úsek stavu, který lze mezi komponentami sdílet - např. autentikace, načtené itemy, apod. Šablony, ze kterých je možné vyjít jsou např. *userSlice.ts* (navíc obsahuje i persistenci do localStorage). Slice vždy obsahuje jméno, reducers - dělají operace nad stavem, počáteční stav (při startu aplikace) a případně extraReducers - pro thunks. Pro připojení slice do storu musíme získat ještě jeho "root" reducer a připojit ho v modulu storu: |
33 | 7 | Václav Honzík | |
34 | 1 | Václav Honzík | <pre> |
35 | 4 | Václav Honzík | const store = createStore( |
36 | 6 | Václav Honzík | combineReducers({ auth: authReducer, theme: themeReducer, myNewState: myNewStateReducer }), |
37 | 4 | Václav Honzík | {} |
38 | 1 | Václav Honzík | ) |
39 | </pre> |
||
40 | 7 | Václav Honzík | |
41 | h3. Thunks |
||
42 | |||
43 | 10 | Václav Honzík | Thunks jsou funkce, které chceme aby se prováděli async - tzn. např. volání API a typicky se umisťují buď do vlastního modulu (userThunks.ts) nebo do stejného modulu jako slice. Opět lze vyjít z příkladů userThunks.ts pro implementaci základních API callů. |