React
Kanalga Telegramβda oβtish
ΠΠΎΠ΄Π±ΠΎΡΠΊΠΈ ΠΏΠΎ React js ΠΈ Π²ΡΠ΅ ΡΡΠΎ Ρ Π½ΠΈΠΌ ΡΠ²ΡΠ·Π°Π½ΠΎ. ΠΠΎ Π²ΡΠ΅ΠΌ Π²ΠΎΠΏΡΠΎΡΠ°ΠΌ @evgenycarter
Ko'proq ko'rsatish2 645
Obunachilar
-224 soatlar
-67 kun
-1430 kun
Postlar arxiv
2 645
ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΡΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π°
https://indepth.dev/posts/1498/101-javascript-critical-rendering-path
βοΈ @React_lib
2 645
ΠΠ°ΠΉΠ΄ΠΈ ΠΎΡΠΈΠ±ΠΊΡ Π² React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅: Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΠ°ΡΡΠΈ
Π ΡΡΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ Β«ΠΠ°ΠΉΠ΄ΠΈ ΠΎΡΠΈΠ±ΠΊΡΒ» Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΏΡΠΎΡΡΠΎΠΉ React ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ-ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ ΠΈ Π½Π΅Π°ΠΊΡΠΈΠ²Π½ΡΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ. ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ ΠΎΡΠΈΠ±ΠΊΡ.
βοΈ @React_lib
2 645
React JS ΡΠ°ΠΉΡ Ρ Π½ΡΠ»Ρ
- ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° React ΠΈ Bootstrap
- ΠΠ΄Π°ΠΏΡΠΈΠ²Π½ΠΎΠ΅ ΠΌΠ΅Π½Ρ Ρ bootstrap
- Π ΠΎΡΡΠΈΠ½Π³ ΡΠ°ΠΉΡΠ°, ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ ΠΏΠΎ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌ
- Π΄Π΅Π»Π°Π΅ΠΌ ΡΠ»Π°ΠΉΠ΄Π΅Ρ Bootstrap
- Π²Π΅ΡΡΡΠΊΠ° ΡΠ°Π±Ρ Π°Π΄Π°ΠΏΡΠΈΠ²Π½ΠΎ
- ΡΠΎΡΠΌΠ° ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ
- Π²Π΅ΡΡΡΠΊΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Bootstrap
- Π²Π΅ΡΡΡΠΊΠ° ΡΠ°ΠΉΡΠ° Π±Π»ΠΎΠ³ ΠΏΠΎΡΡΡ
- ΠΊΠ°ΠΊ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΠ°ΠΉΡ React JS Π½Π° Ρ
ΠΎΡΡΠΈΠ½Π³
βοΈ @React_lib
2 645
CΡΠΈΠ»ΠΈΠ·Π°ΡΠΈΡ React ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΡΠ»ΠΈ ΡΡ Π½ΠΎΠ²ΠΈΡΠΎΠΊ Π² React, ΡΠ΅Π±Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π½ΡΡ
ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌ ΡΡΠΈΠ»ΠΈΠ·Π°ΡΠΈΠΈ React ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎ ΠΏΡΠ°Π²Π΄Π΅ Π³ΠΎΠ²ΠΎΡΡ, ΠΌΡ Π²ΡΡ Π΅ΡΠ΅ ΠΏΡΡΠ°Π΅ΠΌΡΡ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ Π»ΡΡΡΠ΅ ΠΏΠΎΡΡΡΠΏΠΈΡΡ. ΠΠ°Π»Π΅Π΅
βοΈ @React_lib
2 645
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° SWR Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ· ΡΠ΅Π±Ρ Π½Π°Π±ΠΎΡ Ρ
ΡΠΊΠΎΠ², ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ
ΡΡΠΎ useSWR. ΠΠΎΠΌΠΈΠΌΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
, Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ SWR - ΡΠ½Π°ΡΠ°Π»Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, ΠΏΠΎΡΠΎΠΌ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ Π·Π°ΠΏΡΠΎΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ.
SWR ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΎΡ stale-while-revalidate, ΡΡΠΎ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ², Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ½Π°ΡΠ°Π»Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΊΡΡΠ°, Π° ΠΏΠΎΡΠΎΠΌ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π·Π°ΠΏΡΠΎΡ Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ²Π΅ΠΆΠΈΡ
Π΄Π°Π½Π½ΡΡ
. ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ°ΠΉΡΠ°, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅ ΠΆΠ΄Π°ΡΡ ΠΈ Π²ΠΈΠ΄Π΅ΡΡ ΡΠΏΠΈΠ½Π½Π΅ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ: ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ SWR, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ΅Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ ΠΊΡΡΠ°, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° API Suspense. ΠΠ²ΡΠΎΡΠ°ΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Next.js.
https://swr.vercel.app/
βοΈ @React_lib
2 645
ΠΠ°ΡΡΠΎΠΌΠ½ΡΠΉ React ΡΠ΅Π½Π΄Π΅ΡΠ΅Ρ
ΠΠΎΠ³Π΄Π° React ΡΠ΅Π½Π΄Π΅ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ DOM, ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ React DOM. ΠΡΠΈ ΡΠ΅Π½Π΄Π΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ
react-dom/server. ΠΠ»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠ΅Π½Π΄Π΅ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ react-native.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ²ΠΎΠΉ ΡΠ΅Π½Π΄Π΅ΡΠ΅Ρ, Ρ
ΠΎΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ react ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²Π΅Π·Π΄Π΅ ΠΎΠ΄ΠΈΠ½.
ΠΠΎΠ΄ΡΠ»Ρ react ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ API Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² βΡΠ΅Π½Π΄Π΅ΡΠ΅ΡΠ°Ρ
β. ΠΠ»Ρ ΡΠ²ΡΠ·ΠΈ Ρ
ΡΠΊΠΎΠ² Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ βΠ΄ΠΈΡΠΏΠ°ΡΡΠ΅Ρβ. ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ useState, Π²ΡΠ·ΠΎΠ² ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ Π΄ΠΈΡΠΏΠ°ΡΡΠ΅ΡΡ ΡΠ΅Π½Π΄Π΅ΡΠ΅ΡΠ°. ΠΠ± ΡΡΠΎΠΌ Π΅ΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ ΡΡΠ°ΡΡΡ Π² Π±Π»ΠΎΠ³Π΅ ΠΡΠ½Π° ΠΠ±ΡΠ°ΠΌΠΎΠ²Π°.
ΠΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ΅Π½Π΄Π΅ΡΠ΅ΡΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ βhost configβ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠΏΠΈΡΠ°Π½Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ API React. ΠΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
const HostConfig = {
createInstance(type, props) {
// e.g. DOM renderer returns a DOM node
},
// ...
supportsMutation: true, // it works by mutating nodes
appendChild(parent, child) {
// e.g. DOM renderer would call .appendChild() here
},
// ...
};
https://github.com/facebook/react/blob/main/packages/react-reconciler/README.md
βοΈ @React_lib2 645
ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ react-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ dot-notation ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ Ρ ΡΠ°ΡΡΠΎ ΠΏΡΠΈΠ±Π΅Π³Π°Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊ ΡΡΠΎΠΌΡ ΡΠΏΠΎΡΠΎΠ±Ρ
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²ΠΎΠΏΠΎΠ»Π°Π³Π°ΡΡΠΈΠΌ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ react. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ - ΡΡΠΎ Π³Π»Π°Π²Π½ΡΠ΅ ΡΡΡΠΎΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ. Π ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, Π² ΠΈΠ΄Π΅Π°Π»Π΅, Π²ΡΠ΅Π³Π΄Π° Π»Π΅ΠΆΠΈΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΎΠ±ΠΎΡΠΎΠ±Π»Π΅Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π°, ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ΄Π° ΠΌΠΈΠΊΡΠΎ-ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΈΠΊΡΠΎ-Π·Π°Π΄Π°ΡΠΈ. ΠΠ°Π»Π΅Π΅
βοΈ @React_lib
2 645
Π₯ΡΠΊΠΈ react-router
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ react-router Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠΎΡΡΠ΅ΡΠ° ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΡΡΠΎΠΌΠ½ΡΠ΅ Ρ
ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ
ΠΎΠ΄ΡΡ Π² react-router-dom:
- useHistory. ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ history, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠΎΡΡΠ΅ΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ URL, Π»ΠΈΠ±ΠΎ Π²Π΅ΡΠ½ΡΡΡΡΡ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ.
- useLocation. ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ location, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΠ΅ΠΊΡΡΠΈΠΉ URL. ΠΡΠΎΡ Ρ
ΡΠΊ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ΅Π½ useState, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ location ΠΏΡΠΈ ΡΠΌΠ΅Π½Π΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ URL.
- useParams. Π₯ΡΠΊ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ URL, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π² ΡΠΎΡΡΠ΅.
- useRouteMatch. ΠΡΠΎΡ Ρ
ΡΠΊ ΠΏΡΡΠ°Π΅ΡΡΡ ΡΠΎΠΏΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ URL ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈ <Route>. ΠΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π²Π·Π°ΠΌΠ΅Π½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° <Route>, Π΅ΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΡΠ΅Π½Π΄Π΅ΡΠΈΡΡ ΡΡΠΎ-ΡΠΎ ΠΏΡΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠΌ URL.
- useQuery. Π₯ΡΠΊ Π½Π΅ Π²Ρ
ΠΎΠ΄ΠΈΡ Π² ΡΠΏΠΈΡΠΎΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ
, Π½ΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ useLocation.
https://reactrouter.com/web/api/Hooks
βοΈ @React_lib
2 645
Π Π°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ React Testing Library.
https://te.legra.ph/Rasprostranennye-oshibki-pri-ispolzovanii-React-Testing-Library-06-29
βοΈ @React_lib
2 645
Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ - ΡΠΏΠ°ΡΠ³Π°Π»ΠΊΠ° ΠΏΠΎ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Ρ React
ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠΉ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° react? Π§ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠΉ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³, ΠΈ ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ Π½Π΅Π½ΡΠΆΠ½ΡΠΉ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³? ΠΠΎΡ ΠΊΡΠ°ΡΠΊΠ°Ρ ΡΠΏΠ°ΡΠ³Π°Π»ΠΊΠ°, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π±ΡΠ΄Π΅ΡΠ΅ Π·Π°Π΄Π°Π²Π°ΡΡ ΡΠ΅Π±Π΅ ΡΡΠΈ Π²ΠΎΠΏΡΠΎΡΡ.
https://alexsidorenko.com/blog/react-render-cheat-sheet/
βοΈ @React_lib
2 645
Error Boundaries Π² React: ΠΏΡΠ΅ΠΏΠ°ΡΠΈΡΡΠ΅ΠΌ Π»ΡΠ³ΡΡΠΊΡ
ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° React, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΈΡΠ°ΡΡ ΠΈ ΠΏΠΈΡΠ°ΡΡ ΠΎΡΠ·ΡΠ²Ρ. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΡΠΊΡΡΠ» ΡΠΏΠΈΡΠΎΠΊ ΠΎΡΠ·ΡΠ²ΠΎΠ², ΠΏΡΠΎΠ»ΠΈΡΡΠ°Π» Π΅Π³ΠΎ, Π½Π°ΠΆΠ°Π» ΠΊΠ½ΠΎΠΏΠΊΡ Β«ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΠΎΡΠ·ΡΠ²Β». Π€ΠΎΡΠΌΠ° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΎΡΠ·ΡΠ²Π° ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ Π² ΠΏΠΎΠΏΠ°ΠΏΠ΅, Π½Π°Π΄ ΡΠΏΠΈΡΠΊΠΎΠΌ. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π²Π²ΠΎΠ΄ΠΈΡΡ ΡΠ΅ΠΊΡΡ, ΡΠ²ΠΎΠΉ e-mail. ΠΠ΄ΡΡΠ³ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ ΠΏΠΎΡΡΡ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ, ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π·Π°Π±ΡΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ β Π±Π΅Π»ΡΠΉ ΡΠΊΡΠ°Π½. React ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΡΠΌΠΎΠ³ Π½ΠΈΡΠ΅Π³ΠΎ ΠΎΡΡΠ΅Π½Π΄Π΅ΡΠΈΡΡ ΠΈΠ·-Π·Π° ΡΡΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΠΊΠ°ΠΊΠΎΠΌ-ΡΠΎ ΠΏΠΎΠΏΠ°ΠΏΠ΅. ΠΠ°Π»Π΅Π΅
βοΈ @React_lib
2 645
ΠΠΎΠ³ΡΡΠΆΠ°Π΅ΠΌΡΡ Π² React Suspense API
https://blog.bitsrc.io/understanding-the-suspense-api-in-react-18-bbea3f6f6df1
βοΈ @React_lib
2 645
ΠΠΈΡΠ΅ΠΌ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ React, Nest ΠΈ NX. Π§Π°ΡΡΡ 1: Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ°
Π ΡΠ΅ΡΠΈΠΈ ΡΡΠ°ΡΠ΅ΠΉ ΠΌΡ ΠΏΠΎΡΡΠ°ΠΏΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅-ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ. Π‘Π½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΈ Π½Π°ΡΡΡΠΎΠΈΠΌ ΠΌΠΎΠ½ΠΎΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ c ΠΏΠΎΠΌΠΎΡΡΡ NX, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ React, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ backend Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ NestJS, ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠΌ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
MongoDB.
βοΈ @React_lib
2 645
UI-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π΄Π»Ρ React: ΡΠΎΠΏ-10 Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ²
https://dev.to/nilanth/10-react-packages-with-1k-ui-components-2bf3
βοΈ @React_lib
2 645
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ useDeferredValue
ΠΡΠ½ ΠΠ±ΡΠ°ΠΌΠΎΠ² ΠΏΠΎΠ΄Π΅Π»ΠΈΠ»ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Ρ
ΡΠΊΠ° useDeferredValue ΠΈΠ· React 18:
function Form() {
const [state, setState] = useState({ value: "hello" })
const deferredState = useDeferredValue(state)
// ...
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ deferredState Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ
, ΡΠ΅Π½Π΄Π΅Ρ ΠΊΠΎΡΠΎΡΡΡ
Π½Π΅ ΡΡΠΎΡΠ½ΡΠΉ: Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ. ΠΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ debounce. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ state Π½Π°ΠΏΡΡΠΌΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, input.
βοΈ @React_lib2 645
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΎΡΠΌΠ°ΠΌΠΈ Π² React
- Formik. ΠΠ΄Π½Π° ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ
Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΎΡΠΌΠ°ΠΌΠΈ. Π£ΠΌΠ΅Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΡΠΌΡ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ TypeScript, Π° ΡΠ°ΠΊΠΆΠ΅ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ ΡΠ΅ΡΠ΅Π· Yup ΠΈΠ»ΠΈ Joi. Π Formik Π²Ρ
ΠΎΠ΄ΠΈΡ Π½Π°Π±ΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΡΠΌΡ: Form, Field, ErrorMessage, Π½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΡΠΎΡΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Ρ
ΡΠΊ useFormik.
- React Hook Form. ΠΠΈΠ±ΠΊΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΡΠΌ ΡΠ΅ΡΠ΅Ρ
Ρ
ΡΠΊΠΈ. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ TypeScript ΠΈ React Native. Π£ΠΌΠ΅Π΅Ρ Π΄Π΅Π»Π°ΡΡ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΡΠΎΡΠΌΡ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊ Π½Π°ΡΠΈΠ²Π½ΡΠΌ ΠΈΠ½ΠΏΡΡΠ°ΠΌ ΡΠ΅ΡΠ΅Π· ref Π°ΡΡΠΈΠ±ΡΡ. ΠΡΠ»ΠΈ ΠΈΠ½ΠΏΡΡ ΠΊΠ°ΡΡΠΎΠΌΠ½ΡΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ· Material UI, ΡΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±Π΅ΡΡΠΊΡ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Controller.
- React Final Form. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΠ°ΡΡΠ΅ΡΠ½ Observer Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈ ΡΠ΅-ΡΠ΅Π½Π΄Π΅ΡΠ°. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΡΠΎΡΠΌΡ, Π² ΡΠΎΡΡΠ°Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π²Ρ
ΠΎΠ΄ΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Form, Field, ΡΠ°ΠΊ ΠΈ Ρ
ΡΠΊΠΈ. ΠΠ΅ΠΉΠ½ΡΠ΅Π½Π΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Erik Rasmussen, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ» Π°Π²ΡΠΎΡΠΎΠΌ Redux Form, ΡΡΠΈΡΠ°Π΅Ρ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΉ ΡΠΈΡΠ΅ΠΉ React Final Form Π²ΡΡΠΎΠΊΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ.
βοΈ @React_lib
2 645
React Hooks: useState
Π₯ΡΠΊ useState() ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΠ°Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠ°ΡΡ Π³Π΅ΡΡΠ΅Ρ/ΡΠ΅ΡΡΠ΅Ρ - Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π€ΡΠ½ΠΊΡΠΈΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΠΈΠ³Π½Π°ΡΡΡΡ: const [value, setValue] = useState(defaultValue).
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ
const UpdateState = () => {
const [age, setAge] = useState(19)
const handleClick = () => setAge(age + 1)
return (
<>
<p>ΠΠ½Π΅ {age} Π»Π΅Ρ.</p>
<button onClick={handleClick}>Π‘ΡΠ°ΡΡ ΡΡΠ°ΡΡΠ΅!</button>
</>
)
}
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ
const MultipleStates = () => {
const [age, setAge] = useState(19)
const [num, setNum] = useState(1)
const handleAge = () => setAge(age + 1)
const handleNum = () => setNum(num + 1)
return (
<>
<p>ΠΠ½Π΅ {age} Π»Π΅Ρ.</p>
<p>Π£ ΠΌΠ΅Π½Ρ {num} Π±ΡΠ°ΡΡΠ΅Π² ΠΈ ΡΠ΅ΡΡΠ΅Ρ.</p>
<button onClick={handleAge}>Π‘ΡΠ°ΡΡ ΡΡΠ°ΡΡΠ΅!</button>
<button onClick={handleNum}>ΠΠΎΠ»ΡΡΠ΅ Π±ΡΠ°ΡΡΠ΅Π² ΠΈ ΡΠ΅ΡΡΠ΅Ρ!</button>
</>
)
}
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠΎΡΡΠΎΡΠ½ΠΈΡ
const StateObject = () => {
const [state, setState] = useState({ age: 19, num: 1 })
const handleClick = (val) =>
setState({
...state,
[val]: state[val] + 1
})
const { age, num } = state
return (
<>
<p>ΠΠ½Π΅ {age} Π»Π΅Ρ.</p>
<p>Π£ ΠΌΠ΅Π½Ρ {num} Π±ΡΠ°ΡΡΠ΅Π² ΠΈ ΡΠ΅ΡΡΠ΅Ρ.</p>
<button onClick={() => handleClick('age')}>Π‘ΡΠ°ΡΡ ΡΡΠ°ΡΡΠ΅!</button>
<button onClick={() => handleClick('num')}>
ΠΠΎΠ»ΡΡΠ΅ Π±ΡΠ°ΡΡΠ΅Π² ΠΈ ΡΠ΅ΡΡΠ΅Ρ!
</button>
</>
)
}
Π‘ΡΠ΅ΡΡΠΈΠΊ
const CounterState = () => {
const [count, setCount] = useState(0)
return (
<>
<p>ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΡΠΈΠΊΠ°: {count}.</p>
<button onClick={() => setCount(0)}>Π‘Π±ΡΠΎΡΠΈΡΡ</button>
<button onClick={() => setCount((prevVal) => prevVal + 1)}>
Π£Π²Π΅Π»ΠΈΡΠΈΡΡ (+)
</button>
<button onClick={() => setCount((prevVal) => prevVal - 1)}>
Π£ΠΌΠ΅Π½ΡΡΠΈΡΡ (-)
</button>
</>
)
}
ΠΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ
const Profile = () => {
const [profile, setProfile] = useState({
firstName: 'ΠΠ²Π°Π½',
lastName: 'ΠΠ΅ΡΡΠΎΠ²'
})
const handleChange = ({ target: { value, name } }) => {
setProfile({ ...profile, [name]: value })
}
const { firstName, lastName } = profile
return (
<>
<h1>ΠΡΠΎΡΠΈΠ»Ρ</h1>
<form>
<input
type='text'
value={firstName}
onChange={handleChange}
name='firstName'
/> <br />
<input
type='text'
value={lastName}
onChange={handleChange}
name='lastName'
/>
</form>
<p>
ΠΠΌΡ: {firstName} <br />
Π€Π°ΠΌΠΈΠ»ΠΈΡ: {lastName}
</p>
</>
)
}
βοΈ @React_lib2 645
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ React ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΡΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, ΡΠΎ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΡΠΈΡΠΈΠ½Ρ ΡΠΎΡΠΌΠΎΠ·ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ:
- React DevTools ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ React ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π£ΠΌΠ΅Π΅Ρ ΡΠ½ΠΈΠΌΠ°ΡΡ perfomance ΠΏΡΠΎΡΠΈΠ»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΎΡΡΠ΅Π½Π΄Π΅ΡΠΈΠ»ΡΡ ΠΈ ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΡΡΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ.
- Why Did You Render (WDYR) Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ React DevTools ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ Ρ
Π²Π°ΡΠ°ΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π² ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ WDYR. ΠΡΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π½Π°Ρ
ΠΎΠ΄ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΡΠ΅Π½Π΄Π΅Ρ ΠΊΠΎΡΠΎΡΡΡ
ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠΏΡΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ. ΠΠ°ΠΉΠ΄Π΅Π½Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ WDYR ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π² Π»ΠΎΠ³ΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠ°.
- React Render Tracker ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
βοΈ @React_lib
2 645
Π Π΅Π°Π»ΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΡ startTransition
Ricky Hanlon ΠΏΠΎΠΊΠ°Π·Π°Π» ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΡ API startTransition ΠΈΠ· React 18, Ρ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ΠΌ ΡΠ°Π±ΠΎΡΡ API ΠΈ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² perfomance ΠΏΡΠΎΡΠΈΠ»Π΅.
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΡΠ»Π°ΠΉΠ΄Π΅Ρ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Ρ Β«ΡΡΠΆΠ΅Π»ΡΠΌΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡΠΌΠΈΒ», ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄Π»Ρ ΡΠ΅Π½Π΄Π΅ΡΠ°, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π½Π° ΡΠ»Π°Π±ΡΡ
ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ
. ΠΠΎΡΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ»Π°ΠΉΠ΄Π΅ΡΠ° ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΠ» ΡΠ΅ΡΠ΅Π½Π΄Π΅Ρ ΡΡΠΆΠ΅Π»ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. Π‘Π°ΠΌΡΠΉ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠ΅Π½Π΄Π΅ΡΠ° ΡΡΠΆΠ΅Π»ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π² React 17 ΡΠ΅ΡΠ΅Π· debounce, Ρ.Π΅. ΠΎΡΠΊΠ»Π°Π΄ΡΠ²Π°Ρ ΡΠ΅Π½Π΄Π΅Ρ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ»Π°ΠΉΠ΄Π΅ΡΠ°.
Π React 18 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ»Π°ΠΉΠ΄Π΅ΡΠ° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΠ±Π΅ΡΠ½ΡΡΡ Π² startTransition, ΠΈ React ΡΠΆΠ΅ ΡΠ°ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠ΅Π½Π΄Π΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΠΎΡΠ»Π΅ ΡΠ΅Π½Π΄Π΅ΡΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ»Π°ΠΉΠ΄Π΅ΡΠ°, React ΡΠ΅Π½Π΄Π΅ΡΠΈΡ transition ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ². Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² ΡΡΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΉ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³, React Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΈ Π½ΠΎΠ²ΡΠ΅ Π²Π΅ΡΠΈ:
- Yielding: ΠΊΠ°ΠΆΠ΄ΡΠ΅ 5 ΠΌΡ React ΡΡΠ°Π²ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΡΠ΅Π½Π΄Π΅ΡΠ° Π½Π° ΠΏΠ°ΡΠ·Ρ, ΡΡΠΎΠ±Ρ Π΄Π°ΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ Π΄ΡΡΠ³ΡΡ ΡΠ°Π±ΠΎΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΎΠΌΠΈΡΡ.
- ΠΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅: React ΡΡΠ°Π²ΠΈΡ ΡΠ΅Π½Π΄Π΅Ρ Π½Π° ΠΏΠ°ΡΠ·Ρ, Π΅ΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΡΠ΅Π½Π΄Π΅ΡΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠ»Π·ΡΠ½ΠΎΠΊ ΡΠ»Π°ΠΉΠ΄Π΅ΡΠ° ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠ°.
- ΠΡΠ±ΡΠ°ΡΡΠ²Π°Π½ΠΈΠ΅ ΡΡΠ°ΡΡΡ
ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ²: ΠΊΠΎΠ³Π΄Π° React Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΡΡ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ, ΡΠΎ ΠΎΠ½ ΠΎΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ ΡΡΠ°ΡΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈ ΡΠ΅Π½Π΄Π΅ΡΠΈΡ Π½ΠΎΠ²ΡΠΉ.
https://github.com/reactwg/react-18/discussions/65
βοΈ @React_lib
