前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【愚公系列】《微信小程序与云开发从入门到实践》054-天气预报小程序的开发(最近7天天气模块开发)

【愚公系列】《微信小程序与云开发从入门到实践》054-天气预报小程序的开发(最近7天天气模块开发)

原创
作者头像
愚公搬代码
发布2025-01-30 09:31:22
发布2025-01-30 09:31:22
26300
代码可运行
举报
运行总次数:0
代码可运行

标题

详情

作者简介

愚公搬代码

头衔

华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。

近期荣誉

2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主,2024年华为云十佳博主等。

博客内容

.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。

欢迎

👍点赞、✍评论、⭐收藏

🚀前言

随着科技的不断进步,我们的生活也变得越来越便利。其中,天气预报小程序的出现,让我们能够随时随地了解天气情况,提前做好出行和生活安排。今天,我们将带大家深入了解天气预报小程序中“最近7天天气模块”的开发过程。

在这篇文章中,我们将详细介绍如何设计和实现一个功能完善的7天天气预报模块。我们会探讨数据获取、界面设计、功能实现等关键环节,并分享一些实用的开发技巧和经验,希望能为正在开发类似项目的朋友们提供帮助和灵感。

🚀一、天气预报小程序的开发(最近7天天气模块开发)

🔎1.数据结构设计

index.js 文件中,我们定义一个 data 字段,其中包含当前城市的名称、天气数据和未来7天的天气数据。如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
data: {
  currentCity: "北京市",
  weatherData: {},
  daysData: []  // 存储未来7天的天气数据
}

🔎2.获取天气数据并组装

我们通过三方天气服务获取天气数据。获取到的数据包含了未来一周的天气情况。为了方便使用,我们将其组装成一个数组 daysData。代码示例如下:

代码语言:javascript
代码运行次数:0
运行
复制
refreshWeatherData: function() {
  // 获取天气数据并进行组装
  networkModule.network.getWeatherData(this.data.currentCity, (res, error) => {
    let daysData = [];
    
    // 手动组装未来7天的天气数据
    for (let i = 0; i < 7; i++) {
      daysData.push(res.data.showapi_res_body[`f${i + 1}`]);
    }

    // 更新数据
    this.setData({
      weatherData: res.data.showapi_res_body,
      daysData: daysData
    });
  });
}

🔎3.在 index.wxml 中展示天气数据

index.wxml 文件中,我们需要添加未来7天的天气预报列表框架。这里使用 wx:for 循环来展示 daysData 数组中的每一天天气信息,并通过自定义组件 days-item 来渲染每一项数据:

代码语言:xml
复制
<view class="days">
  <view class="block-header">未来7天预报</view>
  <view wx:for="{{daysData}}">
    <days-item itemData="{{item}}"></days-item>
  </view>
</view>

此外,添加对应的样式代码,如下所示:

代码语言:css
复制
.days {
  width: 100%;
}

.block-header {
  font-weight: bold;
  margin-left: 15px;
  margin-top: 10px;
  margin-bottom: 10px;
}

🔎4.创建自定义组件 days-item

components 文件夹下新建一个名为 daysItem 的自定义组件,用于显示每一天的天气数据。首先,在 daysItem.wxml 文件中编写以下代码来展示天气数据:

代码语言:xml
复制
<!-- components/daysItem.wxml -->
<view>
  <view class="date">星期{{itemData.weekday}}</view>
  <view class="line"></view>
  <view class="items">
    <!-- 白天天气 -->
    <view class="item">
      <view class="title">白天</view>
      <view class="content">{{itemData.day_weather}}<image style="width: 20px; height: 20px; margin-left: 5px;" src="{{itemData.day_weather_pic}}"></image></view>
      <view class="content">{{itemData.day_air_temperature}}℃</view>
    </view>

    <!-- 夜间天气 -->
    <view class="item">
      <view class="title">夜间</view>
      <view class="content">{{itemData.night_weather}}<image style="width: 20px; height: 20px; margin-left: 5px;" src="{{itemData.night_weather_pic}}"></image></view>
      <view class="content">{{itemData.night_air_temperature}}℃</view>
    </view>

    <!-- 气象情况 -->
    <view class="item">
      <view class="title">气象</view>
      <view class="content">{{itemData.air_pressure}}hPa</view>
      <view class="content">{{itemData.precipitation}}降水</view>
    </view>

    <!-- 风况 -->
    <view class="item">
      <view class="title">风况</view>
      <view class="content">{{itemData.day_wind_direction}}</view>
      <view class="content">{{itemData.day_wind_power}}</view>
    </view>
  </view>
  <view class="line"></view>
</view>

🔎5.添加样式

daysItem.wxss 文件中,我们需要定义每个元素的样式,具体代码可以参考以下模板:

代码语言:css
复制
.date {
  font-size: 16px;
  margin-bottom: 10px;
}

.line {
  border-bottom: 1px solid #ccc;
  margin: 10px 0;
}

.items .item {
  margin-bottom: 10px;
}

.title {
  font-weight: bold;
}

.content {
  margin-left: 10px;
}

🔎6.定义组件属性

daysItem.js 文件中,我们需要声明 itemData 属性,用来接收父组件传递的天气数据:

代码语言:javascript
代码运行次数:0
运行
复制
// components/daysItem.js
Component({
  properties: {
    itemData: {
      type: Object,
      value: {}
    }
  }
});

🔎7.在 index.json 中引用自定义组件

最后,我们在 index.json 文件中引用 days-item 组件,如下所示:

代码语言:json
复制
{
  "usingComponents": {
    "days-item": "../../components/daysItem"
  }
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🚀前言
  • 🚀一、天气预报小程序的开发(最近7天天气模块开发)
    • 🔎1.数据结构设计
    • 🔎2.获取天气数据并组装
    • 🔎3.在 index.wxml 中展示天气数据
    • 🔎4.创建自定义组件 days-item
    • 🔎5.添加样式
    • 🔎6.定义组件属性
    • 🔎7.在 index.json 中引用自定义组件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档