ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΡΠΎΠ³Π½ΠΎΠ·Π° ΠΏΠΎΠ³ΠΎΠ΄Ρ Π½Π° Vue JS
Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Vue JS ΠΏΡΠΎΠ΅ΠΊΡ Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΎ ΠΏΠΎΠ³ΠΎΠ΄Π΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°Π΄Π°Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
ΠΠ·Π½Π°ΠΊΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ Π·Π½Π°Π½ΠΈΠΉ ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ΅ Vue.js.
Π‘Π°ΠΉΡ ΠΏΡΠΎΠ³Π½ΠΎΠ·Π° ΠΏΠΎΠ³ΠΎΠ΄Ρ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Vue 3. ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Vue CLI, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±ΡΡΡΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°Π±Π»ΠΎΠ½ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. Π‘ΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ - Visual Studio Code.
ΠΠ°Π½Π½ΡΠ΅ ΠΎ ΠΏΠΎΠ³ΠΎΠ΄Π΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ API ΡΠ΅ΡΠ²ΠΈΡΠ° OpenWeatherMap, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π½Π° ΠΊΠ°ΡΡΠ΅ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ OpenStreetMap β Π±Π΅ΡΠΏΠ»Π°ΡΠ½Π°Ρ ΠΊΠ°ΡΡΠ° Π²ΡΠ΅Π³ΠΎ ΠΌΠΈΡΠ°.
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ·: ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠ°ΡΡΡ, Π³Π΄Π΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠΉ Π³ΠΎΡΠΎΠ΄ ΠΈ Π² ΠΏΡΠ°Π²ΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΠΊΡΠ°Π½Π° Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΠΏΡΠΎΠ³Π½ΠΎΠ·Π΅ ΠΏΠΎΠ³ΠΎΠ΄Ρ. ΠΡΠΎΠ³Π½ΠΎΠ· ΠΏΠΎΠ³ΠΎΠ΄Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΈ Π½Π° Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠ΅ 5 Π΄Π½Π΅ΠΉ.
Π ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅ ΠΏΠΎΠΈΡΠΊΠ° ΠΌΠ΅ΡΡΠ°, ΠΏΠΎΡΠ»Π΅ Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠΈΠ»ΡΡΡ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° Π½Π°ΡΠ΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠ½ΠΊΡΠ° Π² Π²ΠΈΠ΄Π΅ Π²ΡΠΏΠ°Π΄Π°ΡΡΠ΅Π³ΠΎ ΡΠΏΠΈΡΠΊΠ°. ΠΠ°Π½Π½ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡΡ Π½Π° ΡΡΡΡΠΊΠΎΠΌ ΠΈ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ°Ρ .
Π‘ΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΠΎΡΠ»Π΅ ΠΎΡΠΊΡΡΡΠΈΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° ΠΊΠΎΠ΄Π°, Π±ΡΠ΄Π΅Ρ Π²ΠΈΠ΄Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΡΡΡΡΠΊΡΡΡΠ°:
ΠΠΎΡΡΠ½Π΅Π½ΠΈΠ΅ ΠΊ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ ΠΈ ΠΏΠ°ΠΏΠΊΠ°ΠΌ:
- src β ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠ°
- ΠΏΠ°ΠΏΠΊΠ° js β javascript β ΡΠ°ΠΉΠ»Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΠ΅ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΠΌΠΈΠΊΡΠΈΠ½Ρ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅
- node_modules β ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΠ°ΠΏΠΊΠΈ src:
- App.vue β ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Π² Π½Π΅ΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈ ΡΡΡΠ°Π½ΠΈΡΡ
- main.js β ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠ½ΡΠΈΡΡΠ΅Ρ ΠΈ ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
- components β ΠΏΠ°ΠΏΠΊΠ°, Π³Π΄Π΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°
- pages β Π·Π΄Π΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ
- router β ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ°ΠΉΠ» router.js, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΡΡΡΠΎΠ² ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ Π² ΠΏΠ°ΠΏΠΊΠ΅ pages
Π‘ΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΡΠ΅ΡΡΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΡΡΡΠ°Π½, Π³ΠΎΡΠΎΠ΄ΠΎΠ², Π½Π°ΡΠ΅Π»Π΅Π½Π½ΡΡ ΠΏΡΠ½ΠΊΡΠΎΠ²
Π ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° ΡΡΡΠ°Π½ ΠΈ Π³ΠΎΡΠΎΠ΄ΠΎΠ² ΠΌΠΈΡΠ°, Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ· Π½ΠΈΡ ΡΠ²Π»ΡΡΡΡΡ ΠΏΠ»Π°ΡΠ½ΡΠΌΠΈ. Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΡΠΎΠ·Π΄Π°Π½ CSV-ΡΠ°ΠΉΠ» Ρ Π½Π°ΡΠ΅Π»ΡΠ½Π½ΡΠΌΠΈ ΠΏΡΠ½ΠΊΡΠ°ΠΌΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΏΠΈΡΠΊΠ° ΠΠΠ Π΄Π»Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΎΡΠ³ΠΎΠ²Π»ΠΈ.
Π‘ΠΏΠΈΡΠΎΠΊ ΠΠΠ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ https://unece.org/trade/uncefact/unlocode. ΠΠ΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΎΡΠΌΠ°ΡΠ°Ρ : csv, txt, mdb. ΠΠ°Π½Π½ΡΠ΅ Π² ΡΡΠΈΡ ΡΠ°ΠΉΠ»Π°Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ UN/LOCODE β ΠΌΠ΅ΠΆΠ΄ΡΠ½Π°ΡΠΎΠ΄Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π³Π΅ΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°: ΠΊΠΎΠ΄Ρ ΡΡΡΠ°Π½ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ISO 3166-1 alpha-2, Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°ΡΠ΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠ½ΠΊΡΠ° ΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ.
Π‘ΡΠΎΠ»Π±Π΅Ρ Π³Π΅ΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΈΡΠΎΡΡ/Π΄ΠΎΠ»Π³ΠΎΡΡ, Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠ²ΡΠ΅ ΠΈΠΌΠ΅ΡΡΡΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅: 0000lat 00000long (lat - ΡΠΈΡΠΎΡΠ°: N ΠΈΠ»ΠΈ S ; long - Π΄ΠΎΠ»Π³ΠΎΡΠ°: W ΠΈΠ»ΠΈ E)
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Papa Parse
ΠΠ»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· CSV-ΡΠ°ΠΉΠ»Π° Π³ΠΎΡΠΎΠ΄ΠΎΠ² ΠΈ ΡΡΡΠ°Π½, Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Papa Parse, Π΄ΠΎΡΡΡΠΏΠ½Π°Ρ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ https://www.papaparse.com/. ΠΠ°Π½Π½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠ°ΠΊ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· CSV, ΡΠ°ΠΊ ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΊ CSV-ΡΠΎΡΠΌΠ°ΡΡ. ΠΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ npm:
ΠΡΠΈΠΌΠ΅Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· CSV Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ CountriesCodes.vue:
Π‘Π΅ΡΠ²ΠΈΡ OpenWeatherMap
OpenWeatherMap β ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ ΡΠ΅ΡΠ²ΠΈΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ API ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΎ ΠΏΠΎΠ³ΠΎΠ΄Π΅. Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠ΅ΡΠ²ΠΈΡ ΠΏΠ»Π°ΡΠ½ΡΠΉ, Π½ΠΎ Π΅ΡΡΡ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΉ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π».
Π§ΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ API, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ https://openweathermap.org/, ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ²ΠΎΠΉ API-ΠΊΠ»ΡΡ. Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠΎΠ³Π½ΠΎΠ· Π½Π° ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈ ΠΏΡΠΎΠ³Π½ΠΎΠ· Π½Π° 5 Π΄Π½Π΅ΠΉ Π² 3-Ρ ΡΠ°ΡΠΎΠ²ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅.
ΠΠΎΠ»ΡΡΠΈΡΡ Π³Π΅ΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ³Π½ΠΎΠ·Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ: Π²ΡΠ·ΠΎΠ² API ΠΏΠΎ Π³Π΅ΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌ β ΡΠΈΡΠΎΡΠ΅ ΠΈ Π΄ΠΎΠ»Π³ΠΎΡΠ΅, Π²ΡΠ·ΠΎΠ² API ΠΏΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π³ΠΎΡΠΎΠ΄Π°.
ΠΡΠ·ΠΎΠ² API: https://api.openweathermap.org/data/2.5/weather?lat={lat}&lon={lon}&appid={API key}. ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π² XML ΠΈΠ»ΠΈ JSON ΡΠΎΡΠΌΠ°ΡΠ΅.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ Π²ΡΠ·ΠΎΠ²Ρ API
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Π½Π°Π·Π²Π°Π½ΠΈΡ Π³ΠΎΡΠΎΠ΄ΠΎΠ² Π² Π³Π΅ΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ API Π³Π΅ΠΎΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.
ΠΡΠΈΠΌΠ΅Ρ Π³Π΅ΠΎΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ: api.openweathermap.org/data/2.5/forecast?q={city name}&appid={API key}
ΠΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ OpenWeatherMap ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ App.vue:
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ place, code ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΈΠ· CountriesTextBox.vue β Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°ΡΠ΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠ½ΠΊΡΠ°, ΠΊΠΎΠ΄ ΡΡΡΠ°Π½Ρ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ISO 3166-1 alpha-2.
Π‘Π΅ΡΠ²ΠΈΡ OpenStreetMap
OpenStreetMap (OSM) β ΡΡΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ, ΠΎΡΠΊΡΡΡΡΠΉ ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΠΊΠ°ΡΡΡ ΠΌΠΈΡΠ°. ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ, Π΄Π°Π½Π½ΡΠ΅ OSM ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ, ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π²ΡΠ΅ΠΌΠΈ ΠΆΠ΅Π»Π°ΡΡΠΈΠΌΠΈ.
OSM ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π±Π°Π·Ρ ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠ°ΡΡΠΈΠ½ΠΊΠ° ΡΠΎΡΠΌΠΈΡΡΡΡΡΡ Π½Π° Π΅Ρ ΠΎΡΠ½ΠΎΠ²Π΅. ΠΡΡ Π±Π°Π·Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ. ΠΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π½Π° ΠΊΠ°ΡΡΠ΅ Π΄Π΅Π»ΡΡΡΡ Π½Π° ΡΠ΅ΡΡΡΠ΅ ΡΠΈΠΏΠ°: ΡΠΎΡΠΊΠ°, Π»ΠΈΠ½ΠΈΡ, ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½ ΠΈ ΡΠΎΡΡΠ°Π²Π½ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ.
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ OSM-ΠΊΠ°ΡΡΡ Π½Π° Π²Π΅Π±-ΡΠ°ΠΉΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ JavaScript, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ: Openlayers, Leaflet, Mapbox. Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Openlayers.
OpenLayers β ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π½Π° JavaScript Π΄Π»Ρ Π²ΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΡ ΠΊΠ°ΡΡ. ΠΠ½Π° ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ BSD Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. OpenLayers ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ OpenStreetMap ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠ°ΡΡΡ. ΠΠΎΡΡΡΠΏΠ° ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅.
Openlayers ΠΈ Π½Π°Π±ΠΎΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ npm:
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° Vue JS Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΊΠ°ΡΡ OpenStreetMap ΡΠ΅ΡΠ΅Π· Openlayers:
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ App.vue
ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ App.vue ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ Π²ΠΌΠ΅ΡΡΠ΅ Π²ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π Π½Π΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ OpenWeatherMap API ΠΈ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° Π½Π°ΡΠ΅Π»Π΅Π½Π½ΡΡ ΠΏΡΠ½ΠΊΡΠΎΠ², ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΡΠΈΠΏΠ° ΠΏΠΎΠ³ΠΎΠ΄Ρ ΠΈ ΠΊΠ°ΡΡΠ° OpenStreetMap.
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ CountriesCodes.vue, CountriesTextBox.vue
CountriesCodes.vue β ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ CSV-Π΄Π°Π½Π½ΡΠ΅ ΠΎ Π½Π°ΡΠ΅Π»Π΅Π½Π½ΡΡ
ΠΏΡΠ½ΠΊΡΠ°Ρ
ΠΈ ΡΡΡΠ°Π½Π°Ρ
. ΠΠ°Π³ΡΡΠ·ΠΊΠ°
Π΄Π°Π½Π½ΡΡ
ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ beforeMount. Π ΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· $emit:
Π App.vue Π΄Π°Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΡΠ°ΠΊ:
CountriesTextBox.vue β ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π΄Π»Ρ Π²Π²ΠΎΠ΄Π° ΠΈ ΠΏΠΎΠΈΡΠΊΠ° ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΈ Π²Π²ΠΎΠ΄Π΅ ΡΠ΅ΠΊΡΡΠ° ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠΏΠ°Π΄Π°ΡΡΠΈΠΉ, ΠΎΡΡΠΈΠ»ΡΡΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠΊΠΈ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΏΠ°Π΄Π°ΡΡΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎ ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΉ css-ΡΠ²ΠΎΠΉΡΡΠ² Π΄Π»Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² HTML.
CountriesTextBox.vue ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ CSV-Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· App.vue:
ΠΠΎΡΠ»Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ, ΡΡΡΠ°Π½Ρ ΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠ΅ΡΠ²ΠΈΡΡ ΠΏΡΠΎΠ³Π½ΠΎΠ·Π° ΠΏΠΎΠ³ΠΎΠ΄Ρ Π² App.vue ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠ°Π»Π΅Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
Π² App.vue ΠΎΡ CountriesTextBox.vue ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ getLocation:
ΠΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ°ΡΡΡΡΡΠΎΠ² Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ ΠΊ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°Ρ Π±ΠΈΠ±Π»ΠΈΡΠ΅ΠΊΠ°:
Π Π°Π·Π½ΡΠΌ ΡΠΈΠΏΠ°ΠΌ ΠΏΠΎΠ³ΠΎΠ΄Ρ ΠΏΡΠΎΠ³Π½ΠΎΠ·Π° ΠΏΠΎΠ³ΠΎΠ΄Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΡΠ²ΠΎΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ: ΠΏΡΠΎΠ³Π½ΠΎΠ· ΡΠ΅ΠΉΡΠ°Ρ, Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΈ Π½Π° 5 Π΄Π½Π΅ΠΉ.
ΠΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ src/pages: ForecastNow.vue, ForecastToday.vue,
ForecastFiveDays.vue. ΠΠ»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΌΠ°ΡΡΡΡΡΠΎΠ² Π² ΡΠ°ΠΉΠ»Π΅ src/router/router.js ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΌΠ°ΡΡΠΈΠ² Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌ
ΡΠΎΡΡΠ΅ΡΠ°.
Π€ΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π° router.js :
ΠΠ»Ρ Π²ΡΠ±ΠΎΡΠ° ΡΠΈΠΏΠ° ΠΏΡΠΎΠ³Π½ΠΎΠ·Π° ΠΏΠΎΠ³ΠΎΠ΄Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ°ΠΉΡΠ° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°ΠΆΠ°ΡΡ Π½Π°
ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Π² ΠΏΡΠ°Π²ΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΠΊΡΠ°Π½Π°. ΠΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²ΠΊΠ»Π°Π΄ΠΎΠΊ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ
ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ForecastTypeTabs.vue, ΠΊΠΎΡΠΎΡΡΠΉ Π² ΡΠΈΠΊΠ»Π΅ ΠΎΠ±ΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ
Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ. ΠΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ/Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Π΄Π»Ρ
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³Π½ΠΎΠ·Π° ΡΠ΅ΡΠ΅Π· $emit ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ App.vue ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΌ ΡΠΈΠΏΠ΅ ΠΏΠΎΠ³ΠΎΠ΄Ρ.
Π€ΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π° ForecastTypeTabs.vue:
Π ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ App.vue Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΡΠ°ΠΌ ΡΠΎΡΡΠ΅Ρ <router-view> ΠΈ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ ΠΊ
Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ ΡΠ΅ΡΠ΅Π· ΠΌΠ΅ΡΠΎΠ΄ getForecastType.
ΠΡΠΈΠΌΠ΅Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ForecastNow.vue, ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΠΌΡ Π·Π° ΠΏΡΠΎΠ³Π½ΠΎΠ· ΠΏΠΎΠ³ΠΎΠ΄Ρ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ:
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ForecastNow.vue ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON ΠΎΡ ΡΠ΅ΡΠ²ΠΈΡΠ° OpenWeatherMap, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π² ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅.
ΠΡΠΎΠ³ΠΎΠ²ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ
ΠΠ½Π»Π°ΠΉΠ½ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅:
Π‘ΡΡΠ»ΠΊΠ° Π½Π° ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄:
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ±ΠΎΡΠΊΠΈ
- ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ
- Π²ΠΎΠΉΡΠΈ Π² ΠΏΠ°ΠΏΠΊΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°
- ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ
- Π·Π°ΠΏΡΡΡΠΈΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ