π’ ΠΠ°ΡΠΊΠ°ΡΠ½ΡΠ΅ ΡΠΊΡΠ°Π½Ρ: ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π² React
ΠΠ°ΡΠΊΠ°ΡΠ½ΡΠ΅ ΡΠΊΡΠ°Π½Ρ - ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ UX-ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠ². ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΈΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ React Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ React Loading Skeleton.
ΠΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»Ρ Π² ΠΎΠ±Π»Π°ΡΡΠΈ UI/UX ΡΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡ, ΡΡΠΎ Π²Π°ΠΆΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΈ ΠΎΠΆΠΈΠ΄Π°ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ.
Π’ΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π² Π²Π΅Π±Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΡΠΏΠΈΠ½Π½Π΅ΡΡ ΠΈ Π»ΠΎΠ°Π΄Π΅ΡΡ. ΠΡΠΎ Ρ ΠΎΡΠΎΡΠΈΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, Π²Π΅Π΄Ρ Π°Π½ΠΈΠΌΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΈΠΊΠΎΠ½ΠΊΠ° ΡΠ΅ΡΠΊΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ: ΠΏΡΠΎ Π²Π°Ρ Π½Π΅ Π·Π°Π±ΡΠ»ΠΈ, ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ. ΠΠ΄Π½Π°ΠΊΠΎ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ ΠΎΠ½ ΡΠΆΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ°ΡΠ΅Π». Π§Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, Π½ΠΎ ΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° Π΄Π²ΠΈΠΆΡΡΠΈΠ΅ΡΡ ΡΠΎΡΠΊΠΈ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠΊΡΡΠ½ΠΎ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΎΠ±ΠΎΡΠΎΡ ΡΠΏΠΈΠ½Π½Π΅ΡΠ° Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΠ°Π·Π΄ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
ΠΠ° ΡΠΌΠ΅Π½Ρ Π»ΠΎΠ°Π΄Π΅ΡΠ°ΠΌ ΠΏΡΠΈΡΠ»ΠΈ "ΠΊΠ°ΡΠΊΠ°ΡΠ½ΡΠ΅" ΡΠΊΡΠ°Π½Ρ (skeleton screens), ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΏΡΠΎΡΡΠΎ "ΡΡΠ½ΡΡ Π²ΡΠ΅ΠΌΡ", Π½ΠΎ ΠΈ Π»ΡΡΡΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ΅ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ, ΡΠΌΠ΅Π½ΡΡΠ°Ρ Π½Π΅Π³Π°ΡΠΈΠ²Π½ΡΠ΅ ΠΎΡΡΡΠ΅Π½ΠΈΡ ΡΠ·Π΅ΡΠ° (loading-time frustration). ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠ»Π»ΡΠ·ΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π²ΠΎΡ-Π²ΠΎΡ ΠΏΠΎΡΠ²ΠΈΡΡΡ.
Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ, ΠΊΠ°ΠΊ ΠΈΡ Π΄Π΅Π»Π°ΡΡ Π² React-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ .
ΠΠ»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ³ΡΡΠΆΠ΅Π½ΠΈΡ Π² ΠΎΡΠ½ΠΎΠ²Ρ CSS, JS ΠΈΠ»ΠΈ React Π½Π΅ Π±ΡΠ΄Π΅Ρ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΌΠ΅Π»ΠΎ ΡΠΈΡΠ°ΡΡ Π΄Π°Π»ΡΡΠ΅, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΠ΅ΡΡ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠΌ Π² ΡΡΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡ .
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΠ°ΡΠΊΠ°ΡΠ½ΡΠ΅ ΡΠΊΡΠ°Π½Ρ?
ΠΠ°ΡΠΊΠ°ΡΠ½ΡΠΉ, ΠΈΠ»ΠΈ ΡΠΊΠ΅Π»Π΅ΡΠ½ΡΠΉ, ΡΠΊΡΠ°Π½ β ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°. Π’Π°ΠΊΠΎΠΉ UI ΠΏΠΎΠ²ΡΠΎΡΡΠ΅Ρ "Π½Π°ΡΡΠΎΡΡΡΡ" ΡΠ°Π·ΠΌΠ΅ΡΠΊΡ ΡΡΡΠ°Π½ΠΈΡΡ, Π½ΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ½ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡ β ΡΠ΅ΠΊΡΡΠ°, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠ°ΡΡΠΎΡΠ΅ΠΊ, Π±Π»ΠΎΠΊΠΎΠ² β ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ "Π·Π°Π³Π»ΡΡΠΊΠΈ", ΡΡ ΠΎΠΆΠΈΠ΅ Ρ Π½ΠΈΠΌΠΈ ΠΏΠΎ ΡΠΎΡΠΌΠ΅ (ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ΅ΡΡΠ΅ Π»ΠΈΠ½ΠΈΠΈ ΠΈ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΡ Π³ΡΡΠΏΠΏΡ). ΠΠΎΠ³Π΄Π° ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΡΠ²ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π² ΠΌΠ°ΠΊΠ΅ΡΠ΅, Π·Π°Π³Π»ΡΡΠΊΠΈ ΠΈΡΡΠ΅Π·Π°ΡΡ. ΠΡΠΎΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π½Π΅ ΡΠ°ΠΊΠΈΠΌ ΡΠ΅Π·ΠΊΠΈΠΌ, ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ΠΉ ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ ΡΠ΅ΠΊΡΡΠΎΠΌ.
ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΡΡΠΎ Π·Π°Π½ΡΡΡΠΉ ΠΏΠ»Π΅ΠΉΡΡ ΠΎΠ»Π΄Π΅ΡΠ°ΠΌΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΅Π°Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ "ΡΠΊΠ΅Π»Π΅Ρ" ΡΡΡΠ°Π½ΠΈΡΡ.
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΠΊΠ΅Π»Π΅ΡΠ½ΡΠΉ UI Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ Π½Π°ΡΡΠΎΡΡΠΈΠΉ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΠΈΠ΄ΠΈΡ ΡΡΡΡΠΊΡΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Π΄Π°ΠΆΠ΅ Π±Π΅Π· ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°, ΠΈ Ρ Π½Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΠ΅, Π±ΡΠ΄ΡΠΎ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΈΠ΄Π΅Ρ Π±ΡΡΡΡΠ΅Π΅ β ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΡΡΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΡΠ°ΠΏ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠΆΠ΅ ΠΏΡΠΎΡΠ΅Π».
ΠΠ°ΡΠΊΠ°ΡΠ½ΡΠ΅ ΡΠΊΡΠ°Π½Ρ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠΎΡΠ΅ΡΠ°ΡΡΡΡ Ρ ΡΠ΅Ρ Π½ΠΈΠΊΠΎΠΉ Π»Π΅Π½ΠΈΠ²ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ: ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎΠ΅ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π±ΠΎΠ»Π΅Π΅ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ, ΠΊΠΎΠ³Π΄Π° ΡΠΆΠ΅ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΠΈΡ .
ΠΡΡΠ³ΠΈΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ:
- ΠΏΡΠΈΠ·ΡΠ°ΡΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ (ghost elements),
- Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΠΈ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° (content placeholders),
- Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° (content loaders).
ΠΡΠΈΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ°ΠΉΡΡ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΏΠΎΡΡΠ°Π»Ρ ΠΊΡΡΠΏΠ½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ: Blockchain.com, YouTube, Facebook, Medium.
Π’ΠΈΠΏΡ ΠΊΠ°ΡΠΊΠ°ΡΠ½ΡΡ ΡΠΊΡΠ°Π½ΠΎΠ²
ΠΠ°ΡΠΊΠ°ΡΠ½ΡΠ΅ ΡΠΊΡΠ°Π½Ρ Π±ΡΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠΌΠΈ. Π‘Π°ΠΌΡΠ΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ β ΡΡΠΎ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ (ΡΠ²Π΅ΡΠ½ΡΠ΅) Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΠΈ.
Π’Π΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΡ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°, ΡΡΠΎΠ±Ρ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π΅ΠΌ.
ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠ°ΡΠΊΠ°ΡΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ β ΠΎΠ½ΠΈ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΌΠ΅ΡΠ°ΡΡ, ΠΈ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ ΡΠ΅ΠΆΠ΅.
ΠΠΎΡΠΎΠ²ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ
ΠΠ»Ρ Π±ΡΡΡΡΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ°ΡΡΠ΅ΡΠ½Π° ΠΊΠ°ΡΠΊΠ°ΡΠ½ΡΡ ΡΠΊΡΠ°Π½ΠΎΠ² Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π³ΠΎΡΠΎΠ²ΡΠΌΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡΠΌΠΈ. ΠΠ»Ρ React ΠΎΠ½ΠΈ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΠΎΠΆΠ΅ Π΅ΡΡΡ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠ°ΡΠΎΡΠΊΡ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°.
React Placeholder
Π Π΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ: buildo/react-placeholder
ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΏΠ°ΠΊΠ΅ΡΠ°:
ΠΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π°
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠ»ΡΡΠΈΡΡΡΡΠ°Ρ Π°Π½ΠΈΠΌΠ°ΡΠΈΡ (ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΡΡΠ΅ΠΊΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ
-ΠΏΠ»Π΅ΠΉΡΡ
ΠΎΠ»Π΄Π΅ΡΠ°Ρ
).
- API Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ
- ΠΠ°ΡΠΊΠ°ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΏΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΡΠΈΠ»Π΅ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΡΠΊΠ°ΡΠ°.
- ΠΡΠΈΠ²Π°Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΅ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ»ΡΡΠ°Π΅Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
ΠΡΠΈΠΌΠ΅Ρ
ΠΡΠΈΠΌΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΠ΅Π»Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ react-placeholder:
ΠΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ°ΡΠΊΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ»Π΅ΠΉΡΡ
ΠΎΠ»Π΄Π΅ΡΠ° ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ReactPlaceholder
. ΠΠ½ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±ΠΎΡΠ°ΡΠΈΠ²Π°Π΅Ρ Π½ΡΠΆΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΠ΅Π³. ΠΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ±ΡΠ°ΡΡ ΡΠ°ΠΌΠΈ ΠΈΠ· Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΡΠΎΡΠΌ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π² Π°ΡΡΠΈΠ±ΡΡ customPlaceholder
.
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ GhostPlaceholder
. ΠΠ½ΡΡΡΠΈ Π½Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ TextBlock
(Π±Π»ΠΎΠΊ ΡΠ΅ΠΊΡΡΠ°) ΠΈ RectShape
(ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ), ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠ· react-placeholder/lib/placeholder
.
ΠΡΠ΅ ΠΏΠ»Π΅ΠΉΡΡ ΠΎΠ»Π΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠ΅ΡΠ΅Π· Ρ.Π½. ΠΏΡΠΎΠΏΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°Π΄Π°ΡΡ ΡΠ²Π΅Ρ ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ (ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ΄ΠΎΠ² ΡΠ΅ΠΊΡΡΠ°) Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°.
Π§ΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΊΠ°ΡΠΊΠ°Ρ, Π° ΠΊΠΎΠ³Π΄Π° ΡΠΆΠ΅ ΠΏΠΎΠ΄ΡΠ΅Ρ
Π°Π» ΠΊΠΎΠ½ΡΠ΅Π½Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π±ΡΠ»Π΅Π²ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ready
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ReactPlaceholder
.
ΠΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ.
React Loading Skeleton
Π Π΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ: dvtng/react-loading-skeleton
ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΏΠ°ΠΊΠ΅ΡΠ°:
ΠΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π°
- ΠΡΠ½ΠΎΠ²Π°Π½ Π½Π° API, Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΊΠ°ΡΡΠΎΠΌΠΈΠ·ΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΠΏΡΡ.
- ΠΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠΊΠ΅Π»Π΅ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΡΠ°ΠΊ ΠΈ ΠΏΡΡΠΌΠΎ Π²Π½ΡΡΡΠΈ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°.
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ΅ΠΌΡ ΠΈ ΠΏΡΠ»ΡΡΠΈΡΡΡΡΡΡ Π°Π½ΠΈΠΌΠ°ΡΠΈΡ.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ
- ΠΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΡΡΡΡ ΠΏΠ»Π΅ΠΉΡΡ ΠΎΠ»Π΄Π΅ΡΠΎΠ², Π½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΊΠ°ΡΠΊΠ°ΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΡΡΡΠ΄Π½Π΅Π½Π°.
- ΠΠ°Π»ΠΈΡΠΈΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΊΠ΅Π»Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΡΡΡΠ΄Π½ΠΈΡΡ Π΅Π³ΠΎ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π°.
ΠΡΠΈΠΌΠ΅Ρ
ΠΡΠΈΠΌΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΠ΅Π»Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ react-loading-skeleton:
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Skeleton
ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΠ΅ΠΌΡ SkeletonTheme
ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ.
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ SkeletonComponent
. SkeletonTheme
ΡΠ»ΡΠΆΠΈΡ ΠΎΠ±Π΅ΡΡΠΊΠΎΠΉ Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π² ΠΏΡΠΎΠΏΡΠ°Ρ
ΡΠ²Π΅ΡΠ° (color
, highlightColor
), ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠΈ ΠΏΠ»Π΅ΠΉΡΡ
ΠΎΠ»Π΄Π΅ΡΠΎΠ² ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΡΡΠ΅ΠΊΡΠΎΠ². ΠΠ½ΡΡΡΠΈ Π½Π΅Π³ΠΎ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Skeleton
, ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΡ Π·Π°Π΄Π°Π΅ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΠΏΡΠΎΠ² width
ΠΈ height
.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅: ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Ρ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΊΠ΅Π»Π΅ΡΠ½ΡΠΉ ΡΠΊΡΠ°Π½ YouTube.
ΠΠ°ΡΠΊΠ°ΡΠ½ΡΠ΅ ΡΠΊΡΠ°Π½Ρ Π² ΡΡΠΈΠ»Π΅ YouTube
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° React
Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈ Π½Π°ΡΡΡΠΎΠΈΡΡ React Π² Π½ΠΎΠ²ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈΠ»ΠΈΡΡ Create React App. ΠΡΠΈ ΡΡΠΎΠΌ Π²Π°ΠΌ ΠΏΠΎΡΡΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π΄Π΅Π»Π°ΡΡ β ΡΠΎΠ»ΡΠΊΠΎ Π½Π°Π±ΡΠ°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅. Π‘Π½Π°ΡΠ°Π»Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΡΠΎΠ³ΠΎ Π΅ΡΠ΅ Π½Π΅ ΡΠ΄Π΅Π»Π°Π»ΠΈ:
ΠΠ°ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ skeleton-screens
:
ΠΠΎΠ³Π΄Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π²Π΅ΡΡΠΈΡΡΡ, ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² ΠΏΠ°ΠΏΠΊΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ:
ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΊΡΠ°Π½ React:
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°
ΠΠΌΠ΅ΡΡΠΎ ΡΠ΅Π°Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ Ρ YouTube ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ², ΡΡΠΎΠ±Ρ Π½Π΅ ΡΡΠ»ΠΎΠΆΠ½ΡΡΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» data.js
Π² ΠΏΠ°ΠΏΠΊΠ΅ src
ΠΈ ΡΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΡΡΠ΄Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
Π ΡΡΠΎΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½Ρ Π΄Π²Π° Π±Π»ΠΎΠΊΠ° ΡΡΡΠ°Π½ΠΈΡΡ β "Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½ΠΎΠ΅" ΠΈ "ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ" β ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΠΈΠ΄Π΅ΠΎ-ΠΏΡΠ΅Π²ΡΡ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ Π²Π΅ΡΡΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΠ°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°:
Card
β ΠΏΡΠ΅Π²ΡΡ Π²ΠΈΠ΄Π΅ΠΎ. Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠΈΠ½ΠΈΠ°ΡΡΡΡ Π²ΠΈΠ΄Π΅ΠΎ, Π΅Π³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠΎΠ², Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ°Π½Π°Π»Π° ΠΈ Π΄Π°ΡΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ.CardList
β Π³ΡΡΠΏΠΏΠ° ΠΏΡΠ΅Π²ΡΡ.App
β ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ½ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡdummyData
, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠ°ΡΠΊΠ°ΡΠ½ΡΠΉ ΡΠΊΡΠ°Π½ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π²ΡΡ ΡΠ΅ΠΊΡΠ½Π΄, ΠΈΠΌΠΈΡΠΈΡΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ Π΄Π°Π½Π½ΡΡ , Π° Π·Π°ΡΠ΅ΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡCardList
.
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΠ°ΠΏΠΊΡ components
Π²Π½ΡΡΡΠΈ src
β Π² Π½Π΅ΠΉ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡ ΡΠ°ΠΉΠ»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
Card
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» Card.js
Π² ΠΏΠ°ΠΏΠΊΠ΅ components
:
ΠΡΠΎΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ°Π±Π»ΠΎΠ½.
CardList
Π€Π°ΠΉΠ» components/CardList.js
:
ΠΡΠΎΡ ΠΊΠΎΠ΄ Π΅ΡΠ΅ ΠΏΡΠΎΡΠ΅ β ΠΎΠ½ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½ ΠΌΠ°ΡΡΠΈΠ² ΠΏΡΠ΅Π²ΡΡΡΠ΅ΠΊ Card
.
App
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ» App.js
, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π½ ΠΏΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ Π² Π½Π΅ΠΌ ΠΊΠΎΠ΄:
ΠΡΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΠ»ΠΎΠΆΠ½Π΅Π΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Ρ
ΡΠΊ useState
, ΡΡΠΎΠ±Ρ Ρ
ΡΠ°Π½ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΠΈΠ΄Π΅ΠΎ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ.
Π₯ΡΠΊ useEffect
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΈΠΌΠΈΡΠ°ΡΠΈΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π΄Π°Π½Π½ΡΡ
Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ: ΡΡΠ°ΡΡΠΉ-Π΄ΠΎΠ±ΡΡΠΉ setTimeout. Π’ΠΎΠ»ΡΠΊΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΅Π°Π»ΡΠ½ΡΡ
Π΄Π°Π½Π½ΡΡ
ΠΌΡ ΡΠΎΡ
ΡΠ°Π½ΠΈΠΌ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· ΡΠ°ΠΉΠ»Π° data.js
.
ΠΠΎΡΠ»Π΅ "Π·Π°Π³ΡΡΠ·ΠΊΠΈ" Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π±Π»ΠΎΠΊ Π²ΠΈΠ΄Π΅ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° videos.map
. ΠΠ°ΡΡΠΈΠ² ΠΊΠ°ΡΡΠΎΡΠ΅ΠΊ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π² Π°ΡΡΠΈΠ±ΡΡΠ΅ list
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ CardList
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° Π΅Π³ΠΎ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ.
ΠΠΎΠΊΠ° Π² ΡΠ°Π±Π»ΠΎΠ½Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ loading,
ΡΠΊΠΎΡΠΎ ΠΌΡ ΠΊ Π½Π΅ΠΉ Π²Π΅ΡΠ½Π΅ΠΌΡΡ.
Π‘ΡΠΈΠ»ΠΈΠ·Π°ΡΠΈΡ
ΠΠΎ ΡΠΈΡ
ΠΏΠΎΡ ΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΡΠ°Π²Π»ΡΠ»ΠΈ ΠΊΠ»Π°ΡΡΡ Π² Π²Π΅ΡΡΡΠΊΠ΅, Π½ΠΎ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ»ΠΈ ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ ΡΡΠΈΠ»ΠΈ Π΄Π»Ρ Π½ΠΈΡ
. ΠΠΎΡΠ° ΠΎΠ±Π»Π°Π³ΠΎΡΠΎΠ΄ΠΈΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ» App.css
Π² ΠΏΠ°ΠΏΠΊΠ΅ src
ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΊΠΎΠ΄ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ:
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΏΠΎΠΊΠ° Π±Π΅Π· ΠΊΠ°ΡΠΊΠ°ΡΠ½ΡΡ ΡΠΊΡΠ°Π½ΠΎΠ². ΠΠ°ΡΡ ΡΠ΅ΠΊΡΠ½Π΄, ΠΊΠΎΠ³Π΄Π° ΡΡΡΠ°Π½ΠΈΡΠ° Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ, ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ Π±Π΅Π»ΡΠΉ ΡΠΊΡΠ°Π½, Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ ΡΡΠ°Π·Ρ.
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ React Loading Skeleton
Π React Loading Skeleton Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΊΠ΅Π»Π΅ΡΠ½ΡΠΉ ΡΠΊΡΠ°Π½, ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Π±ΠΈΡΠ°Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΈΠΏΠΎΠ³ΡΠ°ΡΠΈΠΊΠΈ, ΠΎΡΡΡΡΠΏΡ ΠΈ ΠΏΡΠΎΡΠΈΠ΅ ΡΡΠΈΠ»ΠΈ ΠΏΠΎΠ΄ Π²Π°Ρ ΠΊΠΎΠ½ΡΠ΅Π½Ρ. ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΠΏΡΡΠΌΠΎ Π²Π½ΡΡΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π²ΠΌΠ΅ΡΡΠΎ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°.
Π£ ΡΡΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΅ΡΡΡ ΠΏΠ°ΡΠ° ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΏΠ»ΡΡΠ΅ΠΊ: Π»Π΅Π³ΠΊΠ°Ρ ΡΠ΅ΠΌΠΈΠ·Π°ΡΠΈΡ ΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΈΠΊΠ»Π° Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ.
Π’Π΅ΠΌΡ
React Loading Skeleton ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΡΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΡΠ΅ΠΌ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΡΡΠΈΠ»Ρ ΡΡΠ°Π·Ρ Π²ΡΠ΅Ρ
ΡΠΊΠ΅Π»Π΅ΡΠ½ΡΡ
ΡΠΊΡΠ°Π½ΠΎΠ², Π²Π½Π΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅. ΠΠ° ΡΡΠΎ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ SkeletonTheme
.
ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ
ΠΠΎΠΌΠΈΠΌΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΡ
ΠΏΡΠΎΠΏΡΠΎΠ² height
, width
ΠΈ color
, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ duration
.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΠ½ΠΎ ΡΠ°Π²Π½ΠΎ 1.2
. ΠΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ ΡΠΊΡΠ°Π½Π°.
ΠΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΠ°ΠΊΠ΅ΡΠ°
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ react-loading-skeleton
Π² ΠΏΡΠΎΠ΅ΠΊΡ, Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠ°ΡΠΊΠ°ΡΠ½ΡΠ΅ ΡΠΊΡΠ°Π½Ρ Π΄Π»Ρ Π²ΠΈΠ΄Π΅ΠΎ-Π΄Π°Π½Π½ΡΡ
. Π ΠΏΠ°ΠΏΠΊΠ΅ components
ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ SkeletonCard.js
:
ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π½Π΅ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΠΌ Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ (li
) Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° Array.fill()
. ΠΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² 9: ΠΏΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ Π²ΠΈΠ΄Π΅ΠΎΡΠΎΠ»ΠΈΠΊΠΎΠ² Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ dummyData
, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π²ΡΠ²Π΅Π΄Π΅Π½Ρ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ.
Π§ΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ Array.fill, Π·Π°Π³Π»ΡΠ½ΠΈΡΠ΅ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π½Π° MDN. ΠΠ°ΠΌ ΡΠ΅ΠΉΡΠ°Ρ Π²Π°ΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ, ΡΡΠΎ ΠΎΠ½ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² Ρ 9 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΠΈΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° Array.map
ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ Π² ΠΌΠ°ΡΡΠΈΠ² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² li
.
ΠΡΠ°ΠΊ, Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ΅ΠΉΠΊΠΎΠ²ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π΅ΠΎ Ρ Π½Π°Ρ ΡΠΆΠ΅ Π΅ΡΡΡ ΠΊΠ°ΡΠΊΠ°Ρ, ΡΠΎΡΡΠΎΡΡΠΈΠΉ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
Π±Π»ΠΎΠΊΠΎΠ². ΠΡΠΎΠΏΡΡ height
ΠΈ width
ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π·Π° ΡΠ°Π·ΠΌΠ΅ΡΡ Π±Π»ΠΎΠΊΠ°, Π° circle={true}
ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΠΊΡΡΠ³Π»ΡΠΉ Π±Π»ΠΎΠΊ.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° React Loading Skeleton ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π° ΡΠΈΠΌΠΏΠ°ΡΠΈΡΠ½Π°Ρ ΠΏΡΠ»ΡΡΠΈΡΡΡΡΠ°Ρ Π°Π½ΠΈΠΌΠ°ΡΠΈΡ. ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΡ Π°Π½ΠΈΠΌΠ°ΡΠΈΡ, ΠΌΡ ΠΆΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π΄Π΅ΡΠΎΠ»ΡΠ½ΠΎΠΉ.
ΠΡΡΠ°Π»ΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊΠ°ΡΠΊΠ°ΡΠ½ΡΠΉ ΡΠΊΡΠ°Π½ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π΅Π³ΠΎ, ΠΏΠΎΠΊΠ° ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ΄Π³ΡΡΠ·ΠΊΠ° Π΄Π°Π½Π½ΡΡ
. ΠΠ½Π΅ΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° App
:
ΠΠ΅ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π³ΠΎΡΠΎΠ²ΠΎ. ΠΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΊΡΠ°ΡΠΈΠ²ΡΠΉ ΠΊΠ°ΡΠΊΠ°ΡΠ½ΡΠΉ ΡΠΊΡΠ°Π½ Ρ ΠΏΡΠ»ΡΡΠΈΡΡΡΡΠ΅ΠΉ Π°Π½ΠΈΠΌΠ°ΡΠΈΠ΅ΠΉ, Π° Π² ΡΡΠΎ Π²ΡΠ΅ΠΌΡ Π·Π° ΠΊΠ°Π΄ΡΠΎΠΌ ΠΏΠΎΠ΄Π³ΡΡΠΆΠ°ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΡ ΠΈΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ (Π½Π° Π΄Π΅ΠΌΠΎ-ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΡΠΎΠΈΡ Π·Π°Π΄Π΅ΡΠΆΠΊΠ° Π² 5 ΡΠ΅ΠΊΡΠ½Π΄), ΡΠΎ ΡΡΠ°Π·Ρ Π²ΡΠ²Π΅Π΄Π΅ΠΌ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ.
ΠΠΎΡ ΡΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ°ΡΠΊΠ°ΡΠ½ΡΠ΅ ΠΈΠ»ΠΈ ΡΠΊΠ΅Π»Π΅ΡΠ½ΡΠ΅ ΡΠΊΡΠ°Π½Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»ΡΡΡΠ°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΎΠΏΡΡ. ΠΠ½ΠΈ ΠΈΠ·Π±Π°Π²Π»ΡΡΡ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Π΅ΠΉ ΡΠ°ΠΉΡΠ° ΠΎΡ ΡΠ°ΡΡΠ΅ΡΡΠ½Π½ΠΎΡΡΠΈ ΠΈ Π½Π΅ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΠ΅, Π±ΡΠ΄ΡΠΎ ΠΊΠΎΠ½ΡΠ΅Π½Ρ ΡΠΆΠ΅ Π½Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅ ΠΈ Π²ΠΎΡ-Π²ΠΎΡ Π΅Π³ΠΎ ΠΏΠΎΠΊΠ°ΠΆΡΡ.
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π³ΠΎΡΠΎΠ²ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈΠ»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΡΡΡΡ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΠ³ΡΡ ΠΈ ΠΊΠ°ΠΏΠ»ΠΈ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ.