ΠΠ΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠΈΡΠΊΠ° Π΄Π°Π½Π½ΡΡ ΠΎ ΡΡΡΠ°Π½Π΅ ΠΏΠΎ Π΅Π΅ ΡΠ°ΡΡΠΈΡΠ½ΠΎΠΌΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌΡ ΠΈΠΌΠ΅Π½ΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Rest Countries API, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π²ΡΠΎΡΡΡ Π²Π΅ΡΡΠΈΡ (v2) ΠΈ Π΅Π½Π΄ΠΏΠΎΠΈΠ½Ρ /name, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΡΡΠ°Π½ ΠΏΠΎΠΏΠ°Π²ΡΠΈΡ ΠΏΠΎΠ΄ ΠΊΡΠΈΡΠ΅ΡΠΈΠΉ ΠΏΠΎΠΈΡΠΊΠ°.
ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΡΡΡΠ°Π½. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ°Π½Ρ,
ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Sudan
, ΠΌΠΎΠ³ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΡΡΠ°Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ
ΡΠ°ΡΡΡΡ Π½Π°Π·Π²Π°Π½ΠΈΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΡΠ°Π½Ρ, South Sudan
. ΠΠ΅ Π½ΡΠΆΠ½ΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡΡΡΡ ΠΎΠ± ΡΡΠΈΡ
ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡΡ
.
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎΠΉ. ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΡΡΡΠ°Π½Ρ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π²ΠΎΠ΄ΠΈΡ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅.
input
. ΠΠΎ Π΄Π΅Π»Π°ΡΡ
HTTP-Π·Π°ΠΏΡΠΎΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΡΠΈ Π½Π΅Π»ΡΠ·Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ
ΠΌΠ½ΠΎΠ³ΠΎ HTTP-Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ (race
conditions). ΠΠΎΡΡΠΎΠΌΡ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄
debounce
ΠΈ Π΄Π΅Π»Π°ΡΡ HTTP-Π·Π°ΠΏΡΠΎΡ ΡΠΏΡΡΡΡ 500ΠΌΡ
ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
ΠΏΠ΅ΡΠ΅ΡΡΠ°Π» Π²Π²ΠΎΠ΄ΠΈΡΡ ΡΠ΅ΠΊΡΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉ npm-ΠΏΠ°ΠΊΠ΅Ρ
lodash.debounce.
ΠΡΠ»ΠΈ Π±Π΅ΠΊΠ΅Π½Π΄ Π²Π΅ΡΠ½ΡΠ» Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΠΌ 10 ΡΡΡΠ°Π½ ΠΏΠΎΠ΄ΠΎΡΠ΅Π΄ΡΠΈΡ ΠΏΠΎΠ΄ ΠΊΡΠΈΡΠ΅ΡΠΈΠΉ Π²Π²Π΅Π΄Π΅Π½Π½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π½ΠΎΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π·Π°ΠΏΡΠΎΡ Π±ΠΎΠ»Π΅Π΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠΌ. ΠΠ»Ρ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ pnotify.
ΠΡΠ»ΠΈ Π±Π΅ΠΊΠ΅Π½Π΄ Π²Π΅ΡΠ½ΡΠ» ΠΎΡ 2-Ρ Π΄ΠΎ 10-Ρ ΡΡΡΠ°Π½, ΠΏΠΎΠ΄ ΠΈΠ½ΠΏΡΡΠΎΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠΌΠ΅Π½ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΡ ΡΡΡΠ°Π½.
ΠΡΠ»ΠΈ Π±Π΅ΠΊΠ΅Π½Π΄ Π²Π΅ΡΠ½ΡΠ» ΠΌΠ°ΡΡΠΈΠ² Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠΉ, Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΡΠ΅Π½Π΄Π΅ΡΠΈΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ° Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΎ ΡΡΡΠ°Π½Π΅: Π½Π°Π·Π²Π°Π½ΠΈΠ΅, ΡΡΠΎΠ»ΠΈΡΠ°, Π½Π°ΡΠ΅Π»Π΅Π½ΠΈΠ΅, ΡΠ·ΡΠΊΠΈ ΠΈ ΡΠ»Π°Π³.
====================================================================================
Π‘ΠΎΠ·Π΄Π°ΠΉ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ ΡΠ°ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠΈΡΠΊΠ° Π΄Π°Π½Π½ΡΡ ΠΎ ΡΡΡΠ°Π½Π΅ ΠΏΠΎ Π΅Ρ ΡΠ°ΡΡΠΈΡΠ½ΠΎΠΌΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌΡ ΠΈΠΌΠ΅Π½ΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ API Rest Countries, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ΅ΡΡΡΡ name, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΡΡΠ°Π½ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠΈΠ²ΡΠΈΡ ΠΊΡΠΈΡΠ΅ΡΠΈΠΉ ΠΏΠΎΠΈΡΠΊΠ°. ΠΠΎΠ±Π°Π²Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
ΠΠ°ΠΏΠΈΡΠΈ ΡΡΠ½ΠΊΡΠΈΡ fetchCountries(name)
ΠΊΠΎΡΠΎΡΠ°Ρ Π΄Π΅Π»Π°Π΅Ρ HTTP-Π·Π°ΠΏΡΠΎΡ Π½Π°
ΡΠ΅ΡΡΡΡ name ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΠΎΠΌΠΈΡ
Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ ΡΡΡΠ°Π½ - ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π·Π°ΠΏΡΠΎΡΠ°. ΠΡΠ½Π΅ΡΠΈ Π΅Ρ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ»
fetchCountries.js
ΠΈ ΡΠ΄Π΅Π»Π°ΠΉ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΊΡΠΏΠΎΡΡ.
Π ΠΎΡΠ²Π΅ΡΠ΅ ΠΎΡ Π±ΡΠΊΠ΅Π½Π΄Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ² ΠΊΠΎΡΠΎΡΡΡ ΡΠ΅Π±Π΅ Π½Π΅ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ. Π§ΡΠΎΠ±Ρ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ Π΄ΠΎΠ±Π°Π²Ρ ΡΡΡΠΎΠΊΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π·Π°ΠΏΡΠΎΡΠ° - ΡΠ°ΠΊ ΡΡΠΎΡ Π±ΡΠΊΠ΅Π½Π΄ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ. ΠΠ·Π½Π°ΠΊΠΎΠΌΡΡΡ Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΡΠΈΠ»ΡΡΡΠΎΠ².
Π’Π΅Π±Π΅ Π½ΡΠΆΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°:
name
- ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ ΡΡΡΠ°Π½Ρcapital
- ΡΡΠΎΠ»ΠΈΡΠ°population
- Π½Π°ΡΠ΅Π»Π΅Π½ΠΈΠ΅flag
- ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ»Π°Π³Π°languages
- ΠΌΠ°ΡΡΠΈΠ² ΡΠ·ΡΠΊΠΎΠ²
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΡΡΡΠ°Π½Ρ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π²ΠΎΠ΄ΠΈΡ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅
input#search-box
. HTTP-Π·Π°ΠΏΡΠΎΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΡΠΈ Π½Π°Π±ΠΎΡΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΡΡΡΠ°Π½Ρ, ΡΠΎ Π΅ΡΡΡ ΠΏΠΎ
ΡΠΎΠ±ΡΡΠΈΡ input
. ΠΠΎ, Π΄Π΅Π»Π°ΡΡ Π·Π°ΠΏΡΠΎΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΡΠΈ Π½Π΅Π»ΡΠ·Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ
ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΠΌ
ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠΈΡΠΌ Debounce
Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ ΡΠΎΠ±ΡΡΠΈΡ ΠΈ Π΄Π΅Π»Π°ΡΡ
HTTP-Π·Π°ΠΏΡΠΎΡ ΡΠΏΡΡΡΡ 300ΠΌΡ
ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π» Π²Π²ΠΎΠ΄ΠΈΡΡ ΡΠ΅ΠΊΡΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ
lodash.debounce.
ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠΈΡΠ°Π΅Ρ ΠΏΠΎΠ»Π΅ ΠΏΠΎΠΈΡΠΊΠ°, ΡΠΎ HTTP-Π·Π°ΠΏΡΠΎΡ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, Π° ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ° ΡΠΏΠΈΡΠΊΠ° ΡΡΡΠ°Π½ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΡΡΠ°Π½Π΅ ΠΏΡΠΎΠΏΠ°Π΄Π°Π΅Ρ.
ΠΡΠΏΠΎΠ»Π½ΠΈ ΡΠ°Π½ΠΈΡΠΈΠ·Π°ΡΠΈΡ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ trim()
, ΡΡΠΎ ΡΠ΅ΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΊΠΎΠ³Π΄Π°
Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ±Π΅Π»Ρ ΠΈΠ»ΠΈ ΠΎΠ½ΠΈ Π΅ΡΡΡ Π² Π½Π°ΡΠ°Π»Π΅ ΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ.
ΠΡΠ»ΠΈ Π² ΠΎΡΠ²Π΅ΡΠ΅ Π±ΡΠΊΠ΅Π½Π΄ Π²Π΅ΡΠ½ΡΠ» Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΠΌ 10 ΡΡΡΠ°Π½, Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΏΠΎΡΠ»ΡΠ΅ΡΡΡ
ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΈΠΌΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠΌ. ΠΠ»Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ notiflix ΠΈ
Π²ΡΠ²ΠΎΠ΄ΠΈ ΡΠ°ΠΊΡΡ ΡΡΡΠΎΠΊΡ
"Too many matches found. Please enter a more specific name."
.
ΠΡΠ»ΠΈ Π±ΡΠΊΠ΅Π½Π΄ Π²Π΅ΡΠ½ΡΠ» ΠΎΡ 2-Ρ Π΄ΠΎ 10-Ρ ΡΡΡΠ°Π½, ΠΏΠΎΠ΄ ΡΠ΅ΡΡΠΎΠ²ΡΠΌ ΠΏΠΎΠ»Π΅ΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΡ ΡΡΡΠ°Π½. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΠΈΡΠΊΠ° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ»Π°Π³Π° ΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΡΡΡΠ°Π½Ρ.
ΠΡΠ»ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π·Π°ΠΏΡΠΎΡΠ° ΡΡΠΎ ΠΌΠ°ΡΡΠΈΠ² Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠΉ, Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ° ΠΊΠ°ΡΡΠΎΡΠΊΠΈ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΎ ΡΡΡΠ°Π½Π΅: ΡΠ»Π°Π³, Π½Π°Π·Π²Π°Π½ΠΈΠ΅, ΡΡΠΎΠ»ΠΈΡΠ°, Π½Π°ΡΠ΅Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡΠ·ΡΠΊΠΈ.
β οΈ ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΡΡΡΠ°Π½. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ°Π½Ρ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊSudan
, ΠΌΠΎΠ³ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΡΡΠ°Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ Π½Π°Π·Π²Π°Π½ΠΈΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΡΠ°Π½Ρ,South Sudan
. ΠΠ΅ Π½ΡΠΆΠ½ΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡΡΡΡ ΠΎΠ± ΡΡΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡΡ .
ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π²ΡΠ» ΠΈΠΌΡ ΡΡΡΠ°Π½Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, Π±ΡΠΊΠ΅Π½Π΄ Π²Π΅ΡΠ½ΡΡ Π½Π΅ ΠΏΡΡΡΠΎΠΉ
ΠΌΠ°ΡΡΠΈΠ², Π° ΠΎΡΠΈΠ±ΠΊΡ ΡΠΎ ΡΡΠ°ΡΡΡ ΠΊΠΎΠ΄ΠΎΠΌ 404
- Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ. ΠΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΡΠΎ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠ·Π½Π°Π΅Ρ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΏΠΎΠΈΡΠΊ Π½Π΅ Π΄Π°Π» ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ². ΠΠΎΠ±Π°Π²Ρ
ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ "Oops, there is no country with that name"
Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ notiflix.
β οΈ ΠΠ΅ Π·Π°Π±ΡΠ²Π°ΠΉ ΠΎ ΡΠΎΠΌ, ΡΡΠΎfetch
Π½Π΅ ΡΡΠΈΡΠ°Π΅Ρ 404 ΠΎΡΠΈΠ±ΠΊΠΎΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ²Π½ΠΎ ΠΎΡΠΊΠ»ΠΎΠ½ΠΈΡΡ ΠΏΡΠΎΠΌΠΈΡ ΡΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠ»ΠΎΠ²ΠΈΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ.
====================================================================================
ΠΡΠΎΠ΅ΠΊΡ ΡΠΎΠ±ΡΠ°Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ parcel-project-template.
- ΠΠ»Ρ HTTP Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° axios.
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ
async/await
. - ΠΠ»Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° notiflix.
- ΠΠΎΠ΄ ΠΎΡΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½
Prettier
.
Π‘ΠΎΠ·Π΄Π°ΠΉ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ ΡΠ°ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΌΡ ΡΠ»ΠΎΠ²Ρ. ΠΠΎΠ±Π°Π²Ρ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΠΎΡΠΌΠΎΡΡΠΈ Π΄Π΅ΠΌΠΎ Π²ΠΈΠ΄Π΅ΠΎ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
image-search-app-demo.mp4
Π€ΠΎΡΠΌΠ° ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π΅ΡΡΡ Π² HTML Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±ΡΠ΄Π΅Ρ Π²Π²ΠΎΠ΄ΠΈΡΡ ΡΡΡΠΎΠΊΡ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅, Π° ΠΏΡΠΈ ΡΠ°Π±ΠΌΠΈΡΠ΅ ΡΠΎΡΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ HTTP-Π·Π°ΠΏΡΠΎΡ.
<form class="search-form" id="search-form">
<input
type="text"
name="searchQuery"
autocomplete="off"
placeholder="Search images..."
/>
<button type="submit">Search</button>
</form>
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π±ΡΠΊΠ΅Π½Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ API ΡΠ΅ΡΠ²ΠΈΡΠ° Pixabay. ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠΉΡΡ, ΠΏΠΎΠ»ΡΡΠΈ ΡΠ²ΠΎΠΉ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΈ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΡ Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ.
Π‘ΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΡΡΠΎΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠ° ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅Π±Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ:
key
- ΡΠ²ΠΎΠΉ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ API.q
- ΡΠ΅ΡΠΌΠΈΠ½ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ°. Π’ΠΎ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π²Π²ΠΎΠ΄ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.image_type
- ΡΠΈΠΏ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΡ Ρ ΠΎΡΠΈΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π·Π°Π΄Π°ΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅photo
.orientation
- ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΡ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΈ. ΠΠ°Π΄Π°ΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅horizontal
.safesearch
- ΡΠΈΠ»ΡΡΡ ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΡ. ΠΠ°Π΄Π°ΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅true
.
Π ΠΎΡΠ²Π΅ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠΈΠ²ΡΠΈΡ ΠΊΡΠΈΡΠ΅ΡΠΈΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π·Π°ΠΏΡΠΎΡΠ°. ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ΅Π±Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°:
webformatURL
- ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΌΠ°Π»Π΅Π½ΡΠΊΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠΏΠΈΡΠΊΠ° ΠΊΠ°ΡΡΠΎΡΠ΅ΠΊ.largeImageURL
- ΡΡΡΠ»ΠΊΠ° Π½Π° Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.tags
- ΡΡΡΠΎΠΊΠ° Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ Π΄Π»Ρ Π°ΡΡΠΈΠ±ΡΡΠ°alt
.likes
- ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π»Π°ΠΉΠΊΠΎΠ².views
- ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠΎΠ².comments
- ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π².downloads
- ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°Π³ΡΡΠ·ΠΎΠΊ.
ΠΡΠ»ΠΈ Π±ΡΠΊΠ΅Π½Π΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΡΡΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ², Π·Π½Π°ΡΠΈΡ Π½ΠΈΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ Π½Π΅Π±ΡΠ»ΠΎ.
Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΠΉ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Ρ ΡΠ΅ΠΊΡΡΠΎΠΌ
"Sorry, there are no images matching your search query. Please try again."
.
ΠΠ»Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ
notiflix.
ΠΠ»Π΅ΠΌΠ΅Π½Ρ div.gallery
ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π΅ΡΡΡ Π² HTML Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅, ΠΈ Π² Π½Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ
ΡΠ΅Π½Π΄Π΅ΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΡ ΠΊΠ°ΡΡΠΎΡΠ΅ΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΡΠΈ ΠΏΠΎΠΈΡΠΊΠ΅ ΠΏΠΎ Π½ΠΎΠ²ΠΎΠΌΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΌΡ ΡΠ»ΠΎΠ²Ρ
Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠΈΡΠ°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π³Π°Π»Π΅ΡΠ΅ΠΈ, ΡΡΠΎΠ±Ρ Π½Π΅ ΡΠΌΠ΅ΡΠΈΠ²Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ.
<div class="gallery">
<!-- ΠΠ°ΡΡΠΎΡΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ -->
</div>
Π¨Π°Π±Π»ΠΎΠ½ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ ΠΊΠ°ΡΡΠΎΡΠΊΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Π³Π°Π»Π΅ΡΠ΅ΠΈ.
<div class="photo-card">
<img src="" alt="" loading="lazy" />
<div class="info">
<p class="info-item">
<b>Likes</b>
</p>
<p class="info-item">
<b>Views</b>
</p>
<p class="info-item">
<b>Comments</b>
</p>
<p class="info-item">
<b>Downloads</b>
</p>
</div>
</div>
Pixabay API ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠ°Π³ΠΈΠ½Π°ΡΠΈΡ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ page
ΠΈ
per_page
. Π‘Π΄Π΅Π»Π°ΠΉ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΡΠ²Π΅ΡΠ΅ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΠ»ΠΎ 40 ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (ΠΏΠΎ
ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ 20).
- ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°
page
Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ1
. - ΠΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π·Π°ΠΏΡΠΎΡΠ΅, Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ Π½Π°
1
. - ΠΡΠΈ ΠΏΠΎΠΈΡΠΊΠ΅ ΠΏΠΎ Π½ΠΎΠ²ΠΎΠΌΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΌΡ ΡΠ»ΠΎΠ²Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
page
Π½Π°Π΄ΠΎ Π²Π΅ΡΠ½ΡΡΡ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ ΠΏΠ°Π³ΠΈΠ½Π°ΡΠΈΡ ΠΏΠΎ Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.
Π HTML Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅ ΡΠΆΠ΅ Π΅ΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ° ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΡΠΈ ΠΊΠ»ΠΈΠΊΠ΅ ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π·Π°ΠΏΡΠΎΡ Π·Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π³ΡΡΠΏΠΏΠΎΠΉ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΡ ΠΊ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ Π³Π°Π»Π΅ΡΠ΅ΠΈ.
<button type="button" class="load-more">Load more</button>
- ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠΊΡΡΡΠ°.
- ΠΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ° ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΏΠΎΠ΄ Π³Π°Π»Π΅ΡΠ΅Π΅ΠΉ.
- ΠΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΌ ΡΠ°Π±ΠΌΠΈΡΠ΅ ΡΠΎΡΠΌΡ ΠΊΠ½ΠΎΠΏΠΊΠ° ΡΠ½Π°ΡΠ°Π»Π° ΠΏΡΡΡΠ΅ΡΡΡ, Π° ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΠΎΡΠ° ΠΎΠΏΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ.
Π ΠΎΡΠ²Π΅ΡΠ΅ Π±ΡΠΊΠ΅Π½Π΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ totalHits
- ΠΎΠ±ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄ΠΎΡΠ»ΠΈ ΠΏΠΎΠ΄ ΠΊΡΠΈΡΠ΅ΡΠΈΠΉ ΠΏΠΎΠΈΡΠΊΠ° (Π΄Π»Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠ³ΠΎ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ°). ΠΡΠ»ΠΈ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΡΠ΅Π» Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ, ΠΏΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Ρ
ΡΠ΅ΠΊΡΡΠΎΠΌ "We're sorry, but you've reached the end of search results."
.
β οΈ Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»Π΅Π½ ΠΏΡΠΈ ΡΠ΄Π°ΡΠ΅ Π·Π°Π΄Π°Π½ΠΈΡ, Π½ΠΎ Π±ΡΠ΄Π΅Ρ Ρ ΠΎΡΠΎΡΠ΅ΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠΉ.
ΠΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ° ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π½ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠΈΡΠΊΠ΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΡΠΎΡΠΎΠΌ
Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅Π³ΠΎ Π½Π°ΡΠ»ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ (ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ totalHits
). Π’Π΅ΠΊΡΡ
ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ "Hooray! We found totalHits images."
ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ SimpleLightbox Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠΉ Π³Π°Π»Π΅ΡΠ΅ΠΈ.
- Π ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π΅ΡΠ½ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΡ ΠΊΠ°ΡΡΠΎΡΠΊΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΡΡΡΠ»ΠΊΡ, ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
- Π£ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄
refresh()
ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠΉ Π³ΡΡΠΏΠΏΡ ΠΊΠ°ΡΡΠΎΡΠ΅ΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ CSS ΠΊΠΎΠ΄ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π² ΠΏΡΠΎΠ΅ΠΊΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠΌΠΏΠΎΡΡ, ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΠΈΡΠ°Π½ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
// ΠΠΏΠΈΡΠ°Π½ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
import SimpleLightbox from 'simplelightbox';
// ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠΌΠΏΠΎΡΡ ΡΡΠΈΠ»Π΅ΠΉ
import 'simplelightbox/dist/simple-lightbox.min.css';
Π‘Π΄Π΅Π»Π°ΡΡ ΠΏΠ»Π°Π²Π½ΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΠΎΡΠ° ΠΈ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π³ΡΡΠΏΠΏΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎΡ ΡΠ΅Π±Π΅ ΠΊΠΎΠ΄ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ°, Π° ΡΠ°Π·Π±Π΅ΡΠΈΡΡ Π² Π½ΡΠΌ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ.
const { height: cardHeight } = document
.querySelector('.gallery')
.firstElementChild.getBoundingClientRect();
window.scrollBy({
top: cardHeight * 2,
behavior: 'smooth',
});
ΠΠΌΠ΅ΡΡΠΎ ΠΊΠ½ΠΎΠΏΠΊΠΈ Β«Load moreΒ» ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΡΠΈ ΠΏΡΠΎΠΊΡΡΡΠΊΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ. ΠΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠΌ ΡΠ΅Π±Π΅ ΠΏΠΎΠ»Π½ΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΌΠΎΠΆΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
===============================================================================
ΠΠ΄ΠΈΠ½ ΡΠ°Π· Π½Π° ΠΏΡΠΎΠ΅ΠΊΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ.
npm ci
ΠΠ°ΠΏΡΡΡΠΈΡΡ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΠ° ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ http://localhost:1234.
npm run dev
Π‘Π±ΠΎΡΠΊΠ° Π±ΡΠ΄Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠΈΡΡ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π° GitHub Pages, Π² Π²Π΅ΡΠΊΡ
gh-pages
, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΊΠΎΠ³Π΄Π° ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ Π²Π΅ΡΠΊΠ° main
. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠ»Π΅ ΠΏΡΡΠΌΠΎΠ³ΠΎ ΠΏΡΡΠ° ΠΈΠ»ΠΈ ΠΏΡΠΈΠ½ΡΡΠΎΠ³ΠΎ
ΠΏΡΠ»-ΡΠ΅ΠΊΠ²Π΅ΡΡΠ°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π² ΡΠ°ΠΉΠ»Π΅ package.json
ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»Π΅ homepage
ΠΈ ΡΠΊΡΠΈΠΏΡ
build
, Π·Π°ΠΌΠ΅Π½ΠΈΠ² ΠΈΠΌΡ_ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
ΠΈ ΠΈΠΌΡ_ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
Π½Π° ΡΠ²ΠΎΠΈ.
"homepage": "https://ΠΈΠΌΡ_ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.github.io/ΠΈΠΌΡ_ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ",
"scripts": {
"build": "parcel build src/*.html --public-url /ΠΈΠΌΡ_ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ/"
},
ΠΠ° Π²ΡΡΠΊΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ ΡΡΠΎΠΈΡ Π·Π°ΠΉΡΠΈ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Settings
> Pages
ΠΈ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ ΡΡΠΎ ΡΠ°ΠΉΠ»Ρ ΡΠ°Π·Π΄Π°ΡΡΡΡ ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ /root
Π²Π΅ΡΠΊΠΈ gh-pages
.
Π§Π΅ΡΠ΅Π· ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΆΠΈΠ²ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ Π² ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ
ΡΠ²ΠΎΠΉΡΡΠ²Π΅ homepage
, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
https://goitacademy.github.io/parcel-project-template.
- ΠΡΠ΅ ΠΏΠ°ΡΡΠ°Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΡΠΈΠ»Π΅ΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ Π»Π΅ΠΆΠ°ΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅
src/sass
ΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π²src/sass/main.scss
- ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠΉΡΠ΅ Π² ΠΏΠ°ΠΏΠΊΡ
src/images
, Π·Π°ΡΠ°Π½Π΅Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π² ΠΈΡ . Π‘Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠΎΡΡΠΎ ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΡΠΎΠ±Ρ Π½Π΅ Π½Π°Π³ΡΡΠΆΠ°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΊΠ°ΡΡΠΈΠ½ΠΎΠΊ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π° ΡΠ»Π°Π±ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.