Разработка метео-приложения на Vue 3 с нуля: Фронтенд для начинающих. Часть 2

Posted by






Пишем метео-приложение на Vue 3 с нуля! Часть 2. Фронтенд-разработка для начинающих

Пишем метео-приложение на Vue 3 с нуля! Часть 2. Фронтенд-разработка для начинающих

Добро пожаловать во вторую часть серии статей о разработке метео-приложения на Vue 3! В предыдущей части мы настроили среду разработки, создали проект с помощью Vue CLI и подготовили его к началу работы. Теперь пришло время начать разрабатывать фронтенд нашего приложения.

Шаг 1: Создание компонентов

Первым шагом для разработки фронтенда нашего метео-приложения будет создание компонентов. В Vue компонент – это независимая и переиспользуемая часть пользовательского интерфейса.

Создание компонента для отображения погоды

Создадим компонент WeatherCard.vue, который будет отображать информацию о погоде. Для этого создадим новый файл с именем WeatherCard.vue и добавим следующий код:

        <template>
            <div class="weather-card">
                <h2>{{ city }}</h2>
                <p>Температура: {{ temperature }}°C</p>
                <p>Влажность: {{ humidity }}%</p>
                <p>Скорость ветра: {{ windSpeed }} м/c</p>
            </div>
        </template>

        <script>
            export default {
                props: {
                    city: String,
                    temperature: Number,
                    humidity: Number,
                    windSpeed: Number
                }
            }
        </script>

        <style scoped>
            .weather-card {
                background-color: #f5f5f5;
                padding: 20px;
                border-radius: 10px;
                box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
            }
        </style>
    

Добавление компонента в приложение

Чтобы использовать компонент WeatherCard.vue в нашем приложении, нужно добавить его в файл App.vue. Просто добавьте следующий код в файл App.vue:

        <template>
            <div id="app">
                <weather-card
                    city="Москва"
                    :temperature="22"
                    :humidity="60"
                    :windSpeed="3"/>
            </div>
        </template>

        <script>
            import WeatherCard from './components/WeatherCard.vue';

            export default {
                name: 'App',
                components: {
                    WeatherCard
                }
            }
        </script>

        <style>
            #app {
                font-family: Avenir, Helvetica, Arial, sans-serif;
                -webkit-font-smoothing: antialiased;
                -moz-osx-font-smoothing: grayscale;
                text-align: center;
                color: #2c3e50;
                margin-top: 60px;
            }
        </style>
    

Теперь у нас есть компонент для отображения погоды, который мы можем добавить в наше приложение.

Шаг 2: Получение данных о погоде

Для получения данных о погоде мы будем использовать открытое API OpenWeatherMap. Мы сможем получить данные о температуре, влажности, скорости ветра и других погодных параметрах для заданного города.

Для этого нам нужно будет создать новый файл WeatherService.js, который будет содержать логику получения данных с API. Мы также добавим методы для обработки полученных данных и передачи их в компонент WeatherCard.vue.

Это только начало разработки фронтенда нашего метео-приложения на Vue 3. В следующей части мы будем продолжать работу над приложением, добавляя новые компоненты, работая с данными и улучшая пользовательский интерфейс. Следите за обновлениями!


0 0 votes
Article Rating
14 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Иван Смирнов
7 months ago

Привет! Была у кого-нибудь проблема что идет замена пробела на %20, все способы перепробовал, может знает кто-нибудь как пофиксить?

Frida Oblomova
7 months ago

Спасибо, прекрасная фея!!!!! ❤️❤️❤️❤️ Очень классные видео уроки!!

Александр Неразумный
7 months ago

Отличный материал. Будет здорово если вы раскидаете видосики по плейлистам, а так же предоставите ссылку гита на репозиторий)

Yul Vilaya
7 months ago

и вроде все работает , но когда я перезагружаю страницу сразу такая ошибка Uncaught TypeError: Cannot read properties of undefined (reading '0')

Yul Vilaya
7 months ago

почему то не работает так как у вас со стилями <div :style="`background-image: url(./assets/img/weather-main/${weatherInfo?.weather[0].description}.png)`"> , ошибка в консоли Uncaught TypeError: Cannot read properties of undefined (reading '0') и подчеркивает эту строку. Но если вывести не в url то выводит название . подскажите в чем ошибка?

Олег Mind
7 months ago

Спасибо!

дима д
7 months ago

постоянно получаю такое предупреждение
main.js?t=1689737534882:6 [Vue warn]: Invalid prop: type check failed for prop "weatherInfo". Expected Object, got Null
at <WeatherSummary weatherInfo=null >
at <App>
по итогу передаю только то, что изначально стоит в переменной weatherInfo

Andrey Solovev
7 months ago

Спасибо, здорово

Paul Step
7 months ago

Здравствуйте! Прежде всего огромная благодарность за ваши уроки! Очень здорово объясняете, всё нравится! Спасибо за ваш труд. Но, если вы читаете комментарии, подскажите, пожалуйста по одному моменту. Не могу подгружать изображения с ярлыками погоды. Сделал как у вас, но в консоли JS оно ругается, что лишние пробелы, да и не особо хочет выводить картинки. Вот такая ошибка в консоли
GET http://localhost:5173/src/assets/img/weather-main/few%20clouds.png); 404 (Not Found)
Вот такой у меня код
<div

:style="`background-image: url('/src/assets/img/weather-main/${weatherInfo?.weather[0].description}.png);`"

class="pic-main">

</div>
Спасибо

Александр Деревков
7 months ago

Спасибо за материал!
Ждём новых видео!

Алексей Шляпников
7 months ago

Хорошая подача материала!

TESLA
7 months ago

Thanks

Илья Вашурин
7 months ago

Красотка! Ты добилась своего. Я подписался даже без знаний в IT

Maxim Gal
7 months ago

Можно не писать функцию для заглавной буквы, а использовать уже имеющийся css через first-letter