📜  使用 Vanilla JavaScript 的天气应用(1)

📅  最后修改于: 2023-12-03 14:49:47.361000             🧑  作者: Mango

使用 Vanilla JavaScript 的天气应用

本文介绍如何使用 Vanilla JavaScript (即原生的、没有使用框架或库的 JavaScript)开发一个天气应用。这个应用会使用 OpenWeatherMap API 来获取当前天气信息,并将其展示给用户。

开始

我们将首先创建一个 HTML 文件,命名为 index.html

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>天气应用</title>
</head>
<body>
  <div class="app">
    <h1>天气应用</h1>
    <div class="location"></div>
    <div class="weather"></div>
  </div>
  <script src="app.js"></script>
</body>
</html>

在这个 HTML 文件中,我们创建了一个 div 元素,用于包含我们的应用。这个元素下面又分别创建了两个 div 元素,一个用于显示当前位置,一个用于显示当前天气。最后,我们引入了一个名为 app.js 的 JavaScript 文件,这将会是我们的应用逻辑所在的地方。

接下来,我们创建 app.js 文件:

const app = document.querySelector('.app');
const locationEl = app.querySelector('.location');
const weatherEl = app.querySelector('.weather');

const API_KEY = '你的 API 密钥';
const API_URL = `https://api.openweathermap.org/data/2.5/weather?appid=${API_KEY}&units=metric`;

async function getWeather(city) {
  const response = await fetch(`${API_URL}&q=${city}`);
  const data = await response.json();
  return data;
}

async function updateWeather(city) {
  const data = await getWeather(city);
  locationEl.textContent = data.name;
  weatherEl.textContent = `${data.main.temp} °C, ${data.weather[0].description}`;
}

updateWeather('上海');

在这个 JavaScript 文件中,我们首先获取了 HTML 中的三个元素:整个应用的根元素、用于显示位置的元素和用于显示天气的元素。然后,我们定义了两个常量 API_KEYAPI_URL,分别用于存储 API 密钥和 API 的 URL。这里我们使用了 metric 单位,也就是摄氏度。你可以根据需要选择其他的单位。

接下来,我们创建了一个异步函数 getWeather,用于从 OpenWeatherMap API 获取数据。这个函数接收一个参数 city,表示要获取哪个城市的天气信息。函数通过 fetch 函数向 API 发送请求,然后将返回的数据转换为 JSON 格式后返回。

最后,我们定义了另一个异步函数 updateWeather,用于更新应用中的位置和天气信息。这个函数先调用 getWeather 函数获取数据,然后将位置和天气信息显示在页面上。

在代码的最后,我们调用 updateWeather 函数,传入参数 '上海',以显示上海的天气信息。你可以将这个参数换成其他城市的名字。

总结

以上就是一个使用 Vanilla JavaScript 的天气应用的开发过程。在这个应用中,我们使用了 HTML、CSS 和 JavaScript,通过调用 OpenWeatherMap API 来获取天气数据,并将其展示在页面上。如果你想要对这个应用进行扩展,比如显示更多天气信息、添加搜索功能等,可以参考 OpenWeatherMap API 的文档