CodeBlanks Logo Icon CodeBlanks

Proje sonu - Hava durumu

JavaScript kursu · Orta seviye · Ders 94/134

Hava durumu panelini tamamlayıp şehir girişiyle sıcaklık gösterimini çalıştırırsın.

İşlevleri birleştirmek

Şimdiye kadar ayrı işlevler tanımladık: getWeather girişi okur, fetchWeather veriyi çeker, renderWeather ekrana basar. Artık bunları birleştiren bir displayWeather işlevi yazacağız. Bu işlev async olacak: şehri okur, await fetchWeather(city) ile veriyi çeker, sonra renderWeather(city, info) ile ekrana basar. Böylece tek bir tıklama tüm zinciri çalıştırır. Yeni bir Yenile düğmesi ekleyip bu işleve bağlayacağız.

Yenile düğmesini eklemek

Yeni bir düğmeyi HTML'e dokunmadan JavaScript ile ekleyebiliriz. document.createElement("button") yeni bir düğme öğesi oluşturur. refreshButton.textContent = "Yenile" ile etiketini ayarlarız. Sonra app.appendChild(refreshButton) ile düğmeyi sayfaya yerleştiririz. Son olarak refreshButton.addEventListener("click", displayWeather) ile tıklamayı displayWeather işlevine bağlarız. Böylece ikinci bir düğme projeyi tamamlar.

Uygulama displayWeather işlevini ve Yenile düğmesini ekle

Önceki dersin çözümünün üzerine devam et. Bir async function displayWeather() tanımla: cityInput.value ile şehri oku, await fetchWeather(city) ile veriyi çek ve renderWeather(city, info) ile ekrana bas. Sonra const refreshButton = document.createElement("button") ile yeni düğme oluştur, textContent'ini "Yenile" yap, app.appendChild(refreshButton) ile ekle ve refreshButton.addEventListener("click", displayWeather) ile bağla.

Örnek çözümü göster
const app = document.querySelector("#app");
const cityInput = document.querySelector("#cityInput");
const getWeatherButton = document.querySelector("#getWeatherButton");
const weatherResult = document.querySelector("#weatherResult");
console.log(app, cityInput, getWeatherButton, weatherResult);

function getWeather() {
  const city = cityInput.value;
  console.log(city);
}

getWeatherButton.addEventListener("click", getWeather);

async function fetchWeather(city) {
  const url = `https://api.example.com/weather?city=${city}`;
  const response = await fetch(url);
  const info = await response.text();
  return info;
}

function renderWeather(city, info) {
  weatherResult.textContent = `${city}: ${info}`;
}

async function displayWeather() {
  const city = cityInput.value;
  const info = await fetchWeather(city);
  renderWeather(city, info);
}

const refreshButton = document.createElement("button");
refreshButton.textContent = "Yenile";
app.appendChild(refreshButton);
refreshButton.addEventListener("click", displayWeather);

Kendini test et

  1. displayWeather işlevi önce ne yapmalı?

    • Şehri cityInput.value ile okur
    • fetchWeather işlevini çağırır
    • Yeni bir düğme oluşturur
    • Sonucu ekrana basar
    Cevabı göster

    Şehri cityInput.value ile okur — Doğru! Önce şehri okumak gerekir; sonra veri çekilir.

  2. Yeni düğme öğesi oluştur

    const refreshButton = document.____;
    Cevabı göster
    const refreshButton = document.createElement("button");
  3. displayWeather adımlarını eşleştir

    cityInput.value
    Şehri okur
    await fetchWeather
    Veriyi çeker
    renderWeather
    Ekrana basar
    displayWeather
    İşlevi yönetir
  4. Dersleri özellikleriyle eşleştir

    1. ders
    Öğe seçimi
    2. ders
    Tıklama bağlama
    3. ders
    Veri çekme
    4. ders
    DOM'a basma
    5. ders
    Panel tamamlama

Orta seviye bölümündeki tüm dersler