Задание
Разработка погодного приложения с помощью фреймворка Vue.js
Функционал программы
Вывод информации о погоде в любом городе.
Фрагмент программного кода
<script>
import axios from 'axios'
export default {
data() {
return {
city: "",
error: "",
info: null
}
},
computed: {
cityName() {
return "" + this.city + ""
},
showTemp() {
return "Температура: " + this.info.main.temp
},
showFeelsLike() {
return "Ощущается как: " + this.info.main.feels_like
},
showMinTemp() {
return "Минимальная температура: " + this.info.main.temp_min
},
showMaxTemp() {
return "Максимальная температура: " + this.info.main.temp_max
},
},
methods: {
getWeather() {
if(this.city.trim().length < 2) {
this.error = "Нужно название более одного символа :)"
return false;
}
this.error = ""
axios.get(`https://api.openweathermap.org/data/2.5/weather?q=${this.city}&units=metric&appid=61cb345351956e0d77f1afdebf567839`)
.then(res => (this.info = res.data))
}
}
}
</script>
<template>
<div class="wrapper">
<h1>Погодное приложение</h1>
<p>Узнать погоду в {{city == "" ? "вашем городе" : cityName}}</p>
<input type="text" v-model="city" placeholder="Введите город">
<button v-if="city != ''" @click="getWeather()">Узнать погоду</button>
<button disabled v-else>Введите название города</button>
<p class="error">{{ error }}</p>
<div v-if="info != null">
<p>{{ showTemp }}</p>
<p>{{ showFeelsLike }}</p>
<p>{{ showMinTemp }}</p>
<p>{{ showMaxTemp }}</p>
</div>
</div>
</template>
<style scoped>
.wrapper {
width: 900px;
height: 500px;
border-radius: 50px;
padding: 20px;
background: #1f0f24;
text-align: center;
color: #fff;
}
.wrapper h1 {
margin-top: 50px;
}
.wrapper p {
margin-top: 20px;
}
.wrapper input {
margin-top: 30px;
background: transparent;
border: 0;
border-bottom: 2px solid #110813;
color: #fcfcfc;
font-size: 14px;
padding: 5px 8px;
outline: none;
}
.wrapper input:focus {
border-bottom-color: #6e2d7d;
}
.wrapper button {
background: #e3bc4b;
color: #fff;
border-radius: 10px;
border: 2px solid #b99935;
padding: 10px 15px;
margin-left: 20px;
cursor: pointer;
transition: transform 500ms ease;
}
.wrapper button:disabled {
background: #7c610e;
cursor: not-allowed;
}
.wrapper button:hover {
transform: scale(1.1) translateY(-5px);
}
.error {
color: #d03939;
}
</style>
Скриншот архива с проектом

Пояснения по запуску программы
Установить Node.js Открыть проект в VS Code/ Командой npm run dev запустить сервер. Если не будет работать: проинициализировать Vue, создать проект заново. Перекопировать код в новый проект. На всевопросы выбрать No.
Телеграм
-