Heim > Web-Frontend > js-Tutorial > Meine Reaktionsreise: Tag 13

Meine Reaktionsreise: Tag 13

Mary-Kate Olsen
Freigeben: 2024-12-14 07:33:11
Original
664 Leute haben es durchsucht

My React Journey: Day 13

Project O'Clock:Wetter-App

Heute habe ich eine einfache Wetter-App erstellt, die Echtzeit-Wetterdaten von der OpenWeather-API abruft. Die App ermöglicht Benutzern die Suche nach einer Stadt und zeigt wichtige Wetterinformationen wie Temperatur, Luftfeuchtigkeit, Windgeschwindigkeit und Wetterbedingungen an.

Schlüsselcode-Highlights

  1. API-Details Die App verwendet die OpenWeather-API mit metrischen Einheiten für die Temperatur.
const apiKey = "789b1d530**********"; 
const apiUrl = "https://api.openweathermap.org/data/2.5/weather?&units=metric&q=";
Nach dem Login kopieren

2.Abfrageselektoren
Diese Elemente verbinden die HTML-Struktur mit JavaScript:

const searchBox = document.querySelector(".search input");
const searchBtn = document.querySelector(".search button");
const weatherIcon = document.querySelector(".weather-icon");
Nach dem Login kopieren

3.Wetterdaten abrufen
Die Funktion checkWeather() sendet eine API-Anfrage und verarbeitet die Antwort.

async function checkWeather(city) {
    const response = await fetch(apiUrl + city + `&appid=${apiKey}`);

    if (response.status == 404) {
        document.querySelector(".error").style.display = "block";
        document.querySelector(".weather").style.display = "none";
    } else {
        const data = await response.json();

        // Updating Weather Information
        document.querySelector(".city").innerHTML = data.name;
        document.querySelector(".temp").innerHTML = Math.round(data.main.temp) + "°c";
        document.querySelector(".humidity").innerHTML = data.main.humidity + "%";
        document.querySelector(".wind").innerHTML = data.wind.speed + " km/hr";

        // Dynamic Weather Icon Update
        if (data.weather[0].main == "Clouds") {
            weatherIcon.src = "images/clouds.png";
        } else if (data.weather[0].main == "Rain") {
            weatherIcon.src = "images/rain.png";
        } else if (data.weather[0].main == "Clear") {
            weatherIcon.src = "images/clear.png";
        } else if (data.weather[0].main == "Drizzle") {
            weatherIcon.src = "images/drizzle.png";
        } else if (data.weather[0].main == "Mist") {
            weatherIcon.src = "images/mist.png";
        }

        document.querySelector(".weather").style.display = "block";
        document.querySelector(".error").style.display = "none";
    }
}
Nach dem Login kopieren

4.Ereignis-Listener für die Suche
Dies fügt der Suchschaltfläche Interaktivität hinzu:

searchBtn.addEventListener("click", () => {
    checkWeather(searchBox.value);
});
Nach dem Login kopieren

Was ich gelernt habe

  1. API-Integration:

Daten mit fetch() abrufen und die Antwort mit async/await verarbeiten.
Wichtigkeit der sicheren Verwaltung von API-Schlüsseln (dieser Schlüssel dient nur zu Testzwecken).

2.Fehlerbehandlung:

Anzeige einer Fehlermeldung, wenn eine ungültige Stadt eingegeben wird oder die API-Anfrage fehlschlägt.

3.Dynamische UI-Updates:
Dynamische Aktualisierung des Inhalts auf der Seite basierend auf API-Daten.
Bedingtes Rendern für verschiedene Wettersymbole.

4.CSS & Reaktionsfähigkeit:

Die App verwendet eine einfache kartenbasierte Benutzeroberfläche. Zur Verwaltung von Layout und Design wurde eine separate Datei „styles.css“ verwendet.

5.JavaScript DOM-Manipulation:
Verwendung von querySelector und innerHTML zur Interaktion mit den HTML-Elementen.

Abschließende Gedanken
Die Entwicklung dieser Wetter-App war spannend und hat mein Wissen über JavaScript, API-Aufrufe und DOM-Manipulation gestärkt. Im weiteren Verlauf freue ich mich darauf, solche Projekte für einen stärker komponentenbasierten Ansatz in React zu überführen. ?

Das obige ist der detaillierte Inhalt vonMeine Reaktionsreise: Tag 13. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage