πͺ Star Wars Application
πΆ Available Scripts and Commands
# 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
π Lighthouse Metrics Performance
πΌ Π Π°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠ΅ ΡΠ΅ΠΌΡ
Π Π°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ 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
ΠΠ°Π·ΠΎΠ²ΡΠΉ ΡΠΎΡΡΠΈΠ½Π³
URL Parameters
Query Parameters
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΡΡΠ°Π½ΠΈΡΡ 404 (Not Found)
Π₯ΡΠΊΠΈ useLocation
ΠΈ useHistory
ΠΠ°Π·ΠΎΠ²Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° 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
. Π‘Π½ΠΈΠΏΠΏΠ΅ΡΡ ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Ρ
ΠΠ΅ΡΠΎΠ΄Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ: 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-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
Π₯ΡΠΊΠΈ
Π ΠΎΡΡΡ
Π‘Π΅ΡΠ²ΠΈΡΡ
Π£ΡΠΈΠ»ΠΈΡΡ
ΠΠΎΠ½ΡΡΠ°Π½ΡΡ
Π‘ΡΠΈΠ»ΠΈ
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½Ρ
ESLint
+ Prettier
Π’Π΅ΡΡΡ: Jest
, Enzyme
Π’Π΅ΡΡΡ Cypress
ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π² Lighthouse
(Google Chrome)
ΠΠ΅ΡΠ΅Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Header ΠΏΡΠΈ Π°Π΄Π°ΠΏΡΠΈΠ²Π΅
Π ΠΎΡΡΠ΅Ρ. ΠΠ½ΠΈΠΌΠ°ΡΠΈΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄Π΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ
ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠΈΡΡΡ
ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ NPM-ΠΏΠ°ΠΊΠ΅ΡΠ° Π΄Π»Ρ UiKit
.bat-ΡΠ°ΠΉΠ»Ρ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠΊΡΠΈΠΏΡΠΎΠ²
npm i --save classnames lodash prop-types react react-dom react-redux react-router react-router-dom react-scripts redux redux-devtools-extension redux-thunk
npm i --save-dev @storybook/addon-actions @storybook/addon-essentials @storybook/addon-links @storybook/node-logger @storybook/preset-create-react-app @storybook/react @storybook/storybook-deployer gh-pages react-app-rewire-alias react-app-rewired