Project
https://letscode-dev.github.io/react-star-warsRepository
https://github.com/letscode-dev/react-star-warsStoryBook
https://letscode-dev.github.io/react-star-wars/storybookYouTube Playlist
https://www.youtube.com/playlist?list=PL7cTIfGFrdKkQAWKDu2NdFt5Cx38B-A3iLet's Code
https://letscode-dev.github.io/
# Install
npm i # install dependencies
# General
npm run start # run app in the development mode
npm run storybook # run storybook
npm run deploy # deploy app on Github Pages
# Deploy (part of "deploy" script)
npm run build # builds the app for production
npm run build-storybook # storybook build
npm run build-gh-pages # deploy on Github Pages
# Not used
npm run eject # remove the single build dependency
npm run deploy-storybook # storybook deploy
- https://swapi.dev (ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ API)
- https://swapi.py4e.com (Π·Π°ΠΏΠ°ΡΠ½ΠΎΠ΅ API - Π΅ΡΠ»ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ)
- https://starwars-visualguide.com (ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ API)
React.js
- Π Π°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ
create-react-app
- Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° (Ρ
ΡΠΊ
useState
) - ΠΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ» ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° (Ρ
ΡΠΊ
useEffect
) - Context API (Ρ
ΡΠΊ
useContext
) - Π Π΅ΡΡ ΠΈ DOM (Ρ
ΡΠΊ
useRef
) - ΠΠ΅ΠΌΠΎΠΈΠ·Π°ΡΠΈΡ (Ρ
ΡΠΊ
useCallback
) - Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Ρ ΡΠΊΠΎΠ²
- Π€ΡΠ°Π³ΠΌΠ΅Π½ΡΡ
- ΠΠ°ΡΡΠ΅ΡΠ½
Higher-Order Component
- ΠΠ°ΡΡΠ΅ΡΠ½
ΠΠΎΠ΄ΡΡΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ
- ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΠ±ΡΡΠΈΠΉ
- Controlled Components
- ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ CSS,
css-modules
, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°classnames
- Π‘ΠΏΠΈΡΠΊΠΈ ΠΈ ΠΊΠ»ΡΡΠΈ,
Reconciliation Algorithm
- ΠΡΠ»ΠΎΠΆΠ΅Π½Π½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²
React.lazy()
- ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°
prop-types
Π΄Π»Ρ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ props
React Router
- ΠΠ°Π·ΠΎΠ²ΡΠΉ ΡΠΎΡΡΠΈΠ½Π³
- URL Parameters
- Query Parameters
- ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΡΡΠ°Π½ΠΈΡΡ 404 (Not Found)
- Π₯ΡΠΊΠΈ
useLocation
ΠΈuseHistory
Redux
- ΠΠ°Π·ΠΎΠ²Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° react-redux-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
- Π₯ΡΠΊΠΈ
useDispatch
,useSelector
- Redux Middleware
- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΡ
action Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ
redux-thunk
- ΠΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ store Ρ
redux-devtools-extension
ΠΠ±ΡΠ΅Π΅
- ΠΠ°Π΄Π°Π½ΠΈΠ΅ Alias Π² React-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ (Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°
react-app-rewire-alias
) - ΠΠ΅ΠΏΠ»ΠΎΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° GitHub Pages (Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°
gh-pages
) - Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ui-Kit ΠΈΠ· Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ Π²
@storybook
- ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°
lodash
Ρ Π³ΠΎΡΠΎΠ²ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ Visual Studio Code
. Π‘Π½ΠΈΠΏΠΏΠ΅ΡΡ ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Ρ
JavaScript
- ΠΠ΅ΡΠΎΠ΄Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ:
map
,filter
,forEach
- ΠΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΡΡΡ:
Promise
,Async Functions
- ES6-ΠΌΠΎΠ΄ΡΠ»ΠΈ (import ΠΈ export)
- ΠΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠ°Π·Π²ΠΎΡΠΎΡΠ° Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (props Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°)
- ΠΠ΅ΡΡΡΡΠΊΡΡΡΠΈΠ·Π°ΡΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
- Π’Π΅ΡΠ½Π°ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ
- Π Π°Π±ΠΎΡΠ° Ρ Local Storage
- Π Π°Π±ΠΎΡΠ° Ρ API Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ
Fetch
ΠΡΡΡΡΠΊΠ°
- CSS Custom Properties, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· JavaScript
- CSS Filters
- CSS Flexbox
- CSS Multi Columns
- Π‘ΡΠΈΠ»ΠΈΠ·Π°ΡΠΈΡ ΡΠΊΡΠΎΠ»Π»Π±Π°ΡΠ°
ΠΠΎΡΡΠ΄ΠΎΠΊ ΠΈΠΌΠΏΠΎΡΡΠΎΠ²
- ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
- ΠΠΎΠ½ΡΠ΅ΠΊΡΡ
- HOC
- UI-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
- ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
- ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
- Π₯ΡΠΊΠΈ
- Π ΠΎΡΡΡ
- Π‘Π΅ΡΠ²ΠΈΡΡ
- Π£ΡΠΈΠ»ΠΈΡΡ
- ΠΠΎΠ½ΡΡΠ°Π½ΡΡ
- Π‘ΡΠΈΠ»ΠΈ