利用Vue和Axios构建天气预告应用

打印 上一主题 下一主题

主题 993|帖子 993|积分 2979

利用Vue和Axios构建天气预告应用

在现代Web开发中,数据可视化和交互性是提拔用户体验的告急因素。天气预告应用正是一个可以很好体现这些因素的项目。在本篇博客中,我们将利用Vue.js和Axios来构建一个简单的天气预告应用。我们会利用Vue的最新特性,特别是setup语法糖来组织我们的代码。
项目准备

首先,你需要一个基本的Vue.js开发环境。确保已经安装了Node.js和Vue CLI。可以利用以下命令来创建你的项目:
  1. vue create weather-app
  2. cd weather-app
复制代码
在创建项目的过程中,选择Vue 3,并选择支持TypeScript(假如你盼望利用TypeScript)。接着,安装Axios库,这将使我们能够方便地进行HTTP请求:
  1. npm install axios
复制代码
布局设计

在我们的天气预告应用中,我们将有以下基本布局:


  • 一个输入框,用于输入城市名称。
  • 一个按钮,用于获取天气信息。
  • 一个地区,用于表现天气信息。
创建组件

在src目录下,创建一个新的组件文件Weather.vue。该组件将实现用户输入城市名称和通过Axios请求天气数据的功能。
代码示例

下面是Weather.vue的内容,利用Vue 3的setup语法糖:
  1. <template>
  2.   <div class="weather-app">
  3.     <h1>天气预报</h1>
  4.     <input
  5.       v-model="city"
  6.       placeholder="输入城市名称"
  7.       @keyup.enter="getWeather"
  8.     />
  9.     <button @click="getWeather">获取天气</button>
  10.     <div v-if="error" class="error">{{ error }}</div>
  11.     <div v-else-if="weather">
  12.       <h2>{{ weather.name }}的天气</h2>
  13.       <p>温度: {{ (weather.main.temp - 273.15).toFixed(2) }} °C</p>
  14.       <p>天气: {{ weather.weather[0].description }}</p>
  15.       <p>湿度: {{ weather.main.humidity }} %</p>
  16.     </div>
  17.   </div>
  18. </template>
  19. <script>
  20. import { ref } from 'vue';
  21. import axios from 'axios';
  22. export default {
  23.   setup() {
  24.     const city = ref('');
  25.     const weather = ref(null);
  26.     const error = ref('');
  27.     const getWeather = async () => {
  28.       if (city.value.trim() === '') {
  29.         error.value = '请输入城市名称';
  30.         weather.value = null;
  31.         return;
  32.       }
  33.       error.value = '';
  34.       const apiKey = 'YOUR_API_KEY'; // 请替换为你的API key
  35.       const url = `https://api.openweathermap.org/data/2.5/weather?q=${city.value}&appid=${apiKey}`;
  36.       try {
  37.         const response = await axios.get(url);
  38.         weather.value = response.data;
  39.       } catch (err) {
  40.         error.value = '无法获取天气数据,请检查城市名称';
  41.         weather.value = null;
  42.       }
  43.     };
  44.     return { city, weather, error, getWeather };
  45.   },
  46. };
  47. </script>
  48. <style>
  49. .weather-app {
  50.   max-width: 400px;
  51.   margin: 50px auto;
  52.   text-align: center;
  53.   font-family: Arial, sans-serif;
  54. }
  55. input {
  56.   padding: 10px;
  57.   width: 70%;
  58.   border: 1px solid #ccc;
  59.   border-radius: 4px;
  60. }
  61. button {
  62.   padding: 10px;
  63.   margin-left: 10px;
  64.   border: none;
  65.   background-color: #007bff;
  66.   color: #fff;
  67.   border-radius: 4px;
  68. }
  69. .error {
  70.   color: red;
  71. }
  72. </style>
复制代码
代码解释


  • 模板部分

    • 利用v-model实现双向绑定,用户输入城市名称。
    • 创建一个按钮并设置点击变乱,通过@click触发getWeather函数。
    • 利用条件渲染表现错误信息或天气数据。

  • 逻辑部分

    • 利用ref创建响应式的变量。city用于存储城市名,weather存储天气数据,error存储错误信息。
    • getWeather函数负责发起API请求,利用Axios从OpenWeatherMap获取天气数据。
    • 判定用户输入是否为空,并在发生请求错误时设置错误信息。

  • 样式部分

    • 创建基本的CSS样式,使应用看起来更美观。

利用OpenWeatherMap API

本应用依赖于OpenWeatherMap提供的API。你需要注册一个账户并获得API key。请确保将YOUR_API_KEY替换为你本身的API key。你可以在OpenWeatherMap的官方网站(https://openweathermap.org/)注册并获取API key。
运行应用

在完成上述步骤后,你可以在命令行中运行应用:
  1. npm run serve
复制代码
然后打开浏览器,访问http://localhost:8080,你就可以利用你的天气预告应用了!输入城市名称,点击获取天气按钮,你将看到城市的当前天气环境。
总结

在这篇博客中,我们利用Vue 3和Axios构建了一个简单的天气预告应用。通过利用setup语法糖,我们的代码更加简洁,逻辑也很清晰。在现实开发中,你可以根据详细需求进一步丰富这个应用,比如添加天气预告的未来几天的趋势、选择不同单位(摄氏/华氏)、或者将数据缓存到当地等。
盼望这篇博客对你明白Vue 3和Axios的利用有所资助,鼓励你不断探索和学习新的技能!让我们一起把这个天气预告应用做得更好吧!

更多面试题请点击:web前端高频面试题_在线视频教程-CSDN程序员研修院
最后问候亲爱的朋友们,并约请你们阅读我的全新著作


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

乌市泽哥

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表