AI源码
AI源码AI 精选 · 优质源码 · 助力学习

家乡介绍小程序

这是一个家乡文化展示与旅游推荐的微信小程序,采用纯前端实现,使用本地Mock数据模拟后端接口。项目以广东省惠州市惠东县为示例,完整实现了景点浏览、美食推荐、乡镇介绍、历史回顾、收藏管理等核心功能,适合作为微信小程序开发学习项目或计算机设计参考。

评分:4.8/5.0
销量:24
发布:2025/11/30
难度:L2 进阶级
💬 联系咨询观看视频介绍
永久使用权限
免费更新维护
技术支持服务

项目封面

截图 1

项目说明

家乡介绍小程序

项目简介

这是一个家乡文化展示与旅游推荐的微信小程序,采用纯前端实现,使用本地Mock数据模拟后端接口。项目以广东省惠州市惠东县为示例,完整实现了景点浏览、美食推荐、乡镇介绍、历史回顾、收藏管理等核心功能,适合作为微信小程序开发学习项目或计算机设计参考。

技术栈

技术版本/说明
开发框架微信小程序原生框架
基础库版本trial (最新试用版)
开发语言JavaScript (ES6+)
样式语言WXSS (微信小程序样式)
模板语言WXML (微信小程序模板)
数据存储本地Storage持久化
数据模拟Mock Data (本地模拟数据)
渲染引擎Skyline (新一代渲染引擎)
组件框架glass-easel

项目特点

  • 纯前端实现:无需后端服务器,所有数据使用本地Mock模拟
  • 数据持久化:收藏数据和用户信息使用本地存储,关闭小程序后数据不丢失
  • 完整业务流程:涵盖景点浏览、美食推荐、乡镇介绍、历史回顾等完整流程
  • UI设计精美:界面风格简洁大方,蓝色主题配色,符合旅游类应用调性
  • 分类筛选:景点按乡镇分类展示,方便用户查找
  • 收藏功能:支持景点收藏,方便用户管理感兴趣的内容

功能模块

1. 首页模块 (pages/index)

  • 轮播图展示家乡风景
  • 功能入口(乡镇介绍、历史回顾、美食推荐)
  • 热门景点推荐展示
  • 快捷导航到各功能页面

2. 景点列表模块 (pages/scenic)

  • 按乡镇分类展示景点(白花镇、平海镇、稔山镇)
  • Tab切换筛选不同乡镇景点
  • 景点卡片展示(图片、名称、位置、等级)
  • 点击进入景点详情

3. 景点详情模块 (pages/scenic-detail)

  • 展示景点完整信息
  • 景点图片、名称、等级
  • 开放时间、适宜季节
  • 详细地址和介绍
  • 收藏/取消收藏功能
  • 地图位置展示

4. 美食列表模块 (pages/food)

  • 按分类展示美食(精选热菜、特色菜、城心小炒等)
  • 美食图片、名称、价格展示
  • 点击进入美食详情

5. 美食详情模块 (pages/foodcontent)

  • 美食完整信息展示
  • 美食图片、名称、价格
  • 详细介绍

6. 乡镇介绍模块 (pages/township)

  • 展示各乡镇详细信息
  • 乡镇图片、名称、位置
  • 乡镇简介和特色
  • 地理位置坐标

7. 历史回顾模块 (pages/history)

  • 展示家乡历史老照片
  • 时间线形式展示
  • 图片配文字说明
  • 记录家乡发展变迁

8. 我的模块 (pages/my)

  • 用户信息展示(头像、昵称)
  • 个人信息编辑入口
  • 我的收藏入口

9. 个人信息模块 (pages/info)

  • 修改用户头像
  • 修改用户昵称
  • 信息本地持久化

10. 我的收藏模块 (pages/collect)

  • 收藏的景点列表展示
  • 点击可跳转到景点详情
  • 收藏数据本地持久化

项目结构

hownTown-min/
├── app.js                    # 小程序入口文件,全局数据管理
├── app.json                  # 小程序全局配置(页面路由、TabBar、窗口样式)
├── app.wxss                  # 全局样式文件
├── api.js                    # API接口封装(Mock数据获取)
├── data.js                   # Mock数据文件(景点数据)
├── project.config.json       # 项目配置文件
├── project.private.config.json # 项目私有配置
├── sitemap.json              # 小程序索引配置
├── .eslintrc.js              # ESLint配置文件
├── README.md                 # 项目说明文件
├── components/               # 自定义组件目录
├── wxParse/                  # 富文本解析组件
├── images/                   # 图片资源目录
│   ├── tab/                  # TabBar图标
│   │   ├── home1.png         # 首页选中图标
│   │   ├── home2.png         # 首页未选中图标
│   │   ├── scenic1.png       # 景点选中图标
│   │   ├── scenic2.png       # 景点未选中图标
│   │   ├── food1.png         # 美食选中图标
│   │   ├── food2.png         # 美食未选中图标
│   │   ├── user1.png         # 我的选中图标
│   │   └── user2.png         # 我的未选中图标
│   ├── item/                 # 功能图标
│   │   ├── culture.png       # 文化图标
│   │   ├── history.png       # 历史图标
│   │   └── house.png         # 乡镇图标
│   ├── baihua/               # 白花镇相关图片
│   │   └── landmark.png      # 地标图片
│   ├── arrow.png             # 箭头图标
│   ├── star.png              # 收藏图标(已收藏)
│   └── star1.png             # 收藏图标(未收藏)
├── pages/                    # 页面目录
│   ├── index/                # 首页
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── scenic/               # 景点列表页
│   │   ├── scenic.js
│   │   ├── scenic.json
│   │   ├── scenic.wxml
│   │   └── scenic.wxss
│   ├── scenic-detail/        # 景点详情页
│   │   ├── scenic-detail.js
│   │   ├── scenic-detail.json
│   │   ├── scenic-detail.wxml
│   │   └── scenic-detail.wxss
│   ├── food/                 # 美食列表页
│   │   ├── food.js
│   │   ├── food.json
│   │   ├── food.wxml
│   │   └── food.wxss
│   ├── foodcontent/          # 美食详情页
│   │   ├── foodcontent.js
│   │   ├── foodcontent.json
│   │   ├── foodcontent.wxml
│   │   └── foodcontent.wxss
│   ├── township/             # 乡镇介绍页
│   │   ├── township.js
│   │   ├── township.json
│   │   ├── township.wxml
│   │   └── township.wxss
│   ├── history/              # 历史回顾页
│   │   ├── history.js
│   │   ├── history.json
│   │   ├── history.wxml
│   │   └── history.wxss
│   ├── my/                   # 我的页面
│   │   ├── my.js
│   │   ├── my.json
│   │   ├── my.wxml
│   │   └── my.wxss
│   ├── info/                 # 个人信息页
│   │   ├── info.js
│   │   ├── info.json
│   │   ├── info.wxml
│   │   └── info.wxss
│   └── collect/              # 我的收藏页
│       ├── collect.js
│       ├── collect.json
│       ├── collect.wxml
│       └── collect.wxss
└── utils/                    # 工具类目录
    └── util.js               # 工具函数

数据模型

景点数据 (scenicData)

{
  id: 1,                        // 景点ID
  type: 1,                      // 所属乡镇类型(1:白花镇 2:平海镇 3:稔山镇)
  img: 'http://...',            // 景点图片URL
  title: '白盆湖温泉度假村',     // 景点名称
  content: '景点详细介绍...',    // 景点描述
  position: '惠州市惠东县...',   // 详细地址
  time: '08:00 - 24:00',        // 开放时间
  level: 'AAAA级',              // 景区等级
  play: '春季适宜'              // 适宜游玩季节
}

乡镇数据 (townData)

{
  img: 'http://...',            // 乡镇图片URL
  title: '白花镇',              // 乡镇名称
  content: '乡镇详细介绍...',    // 乡镇描述
  position: '广东省惠州市...',   // 详细地址
  longitude: '114.650420',      // 经度
  latitude: '22.940510'         // 纬度
}

历史数据 (historyData)

{
  font: '1961年的安墩青山坳牌坊', // 图片说明
  img: 'http://...'              // 历史图片URL
}

美食数据 (foodData)

{
  _id: '5ac0896ca880f20358495508', // 分类ID
  title: '精选热菜',               // 分类名称
  pid: '0',                        // 父级ID
  list: [{                         // 美食列表
    _id: '5ac1a22011f48140d0002955',
    cate_id: '5ac0896ca880f20358495508',
    catename: '精选热菜',
    title: '娃娃菜炖豆腐',
    price: '2',
    img_url: 'http://...'
  }]
}

用户数据 (userData)

{
  nickname: '微信用户',           // 用户昵称
  avatarUrl: 'http://...'        // 用户头像URL
}

收藏数据 (starList)

'1,2,3'; // 收藏的景点ID列表,以逗号分隔存储

核心业务逻辑

1. 景点查询

// 按乡镇类型筛选景点
const getSignList = (type) => {
  const data = fetchSignList();
  return data.filter((c) => c.type === type);
};

2. 收藏功能

// 切换收藏状态
setStarHandler() {
  const { isStar, id } = this.data
  let starList = (wx.getStorageSync('starList') || '').split(',')

  if (isStar) {
    // 取消收藏
    wx.setStorageSync('starList', starList.filter(c => c != id).join(','))
  } else {
    // 添加收藏
    starList.push(id)
    wx.setStorageSync('starList', starList.join(','))
  }

  this.setData({ isStar: !isStar })
}

3. 获取收藏列表

// 获取用户收藏的景点
onShow() {
  let starList = (wx.getStorageSync('starList') || '').split(',')
  let newList = []
  const hotelList = fetchSignList()

  hotelList.forEach(c => {
    starList.forEach(a => {
      if (c.id == a) {
        newList.push(c)
      }
    })
  })

  this.setData({ list: newList })
}

4. 用户信息管理

// 初始化用户信息
onShow() {
  const defaultAvatarUrl = 'https://...'
  const data = wx.getStorageSync('userInfo') || ''
  wx.setStorageSync('userInfo', data ? data : {
    nickname: '微信用户',
    avatarUrl: defaultAvatarUrl
  })
}

页面路由配置

{
  "pages": [
    "pages/index/index", // 首页(默认启动页)
    "pages/scenic/scenic", // 景点列表
    "pages/food/food", // 美食列表
    "pages/my/my", // 我的
    "pages/township/township", // 乡镇介绍
    "pages/history/history", // 历史回顾
    "pages/foodcontent/foodcontent", // 美食详情
    "pages/scenic-detail/scenic-detail", // 景点详情
    "pages/info/info", // 个人信息
    "pages/collect/collect" // 我的收藏
  ]
}

TabBar配置

{
  "tabBar": {
    "color": "#666",
    "selectedColor": "#1296db",
    "backgroundColor": "#eee",
    "borderStyle": "white",
    "position": "bottom",
    "list": [
      {
        "pagePath": "pages/index/index",
        "text": "首页"
      },
      {
        "pagePath": "pages/scenic/scenic",
        "text": "景点"
      },
      {
        "pagePath": "pages/food/food",
        "text": "美食"
      },
      {
        "pagePath": "pages/my/my",
        "text": "我的"
      }
    ]
  }
}

运行环境要求

  • 微信开发者工具:建议使用最新稳定版
  • 基础库版本:3.0.0 及以上(支持Skyline渲染引擎)
  • AppID:需替换为自己的AppID

快速开始

1. 克隆/下载项目

将项目文件夹下载到本地

2. 导入项目

  1. 打开微信开发者工具
  2. 选择"导入项目"
  3. 选择项目目录 hownTown-min
  4. 填入AppID(可使用测试号或自己的AppID)
  5. 点击"导入"

3. 运行项目

导入成功后,项目会自动编译运行,可在模拟器中预览效果

4. 真机调试

点击工具栏"预览"按钮,扫码在手机上体验

预置测试数据

景点

景点名称所属乡镇等级适宜季节
白盆湖温泉度假村白花镇AAAA级春季适宜
南昆山云顶温泉白花镇AAAA级冬季适宜
长津冰雪大世界白花镇AAA级夏季适宜
那里花开主题公园白花镇AAAA级秋季适宜
双月湾平海镇AAAAA级四季适宜
平海古城平海镇明朝遗迹四季适宜
三角洲岛平海镇AAAA级四季适宜
海滨温泉旅游度假区平海镇AAAA级夏季适宜
簨寮湾稔山镇AAAAA级夏季适宜
罗浮山稔山镇AAAA级四季适宜
叶挺将军纪念园稔山镇AAA级四季适宜
铁泉旅游度假区稔山镇AAAA级夏季适宜

乡镇

乡镇名称位置特色
白花镇惠东县西南部沿江大镇,客家文化
稔山镇稔平半岛西北部海滨城镇,鱼米之乡
平海镇稔平半岛东南端天然深水良港,鱼米之乡
多祝镇惠东县中部省中心镇

美食分类

分类名称代表菜品
精选热菜娃娃菜炖豆腐、香酥黄金鱼、猪肉白菜
特色菜手撕包菜、拍黄瓜
城心小炒凉拌三丝
田园时蔬八宝酱菜
粗粮主食牛肉馅饼、鲜蔬菌菇粥

界面预览

项目包含演示视频文件 介绍家乡-效果展示.mp4,可查看完整功能演示。

扩展建议

如需进一步完善项目,可考虑以下扩展:

  1. 接入真实后端:将Mock数据替换为真实API接口
  2. 用户登录系统:接入微信登录,实现真实用户体系
  3. 搜索功能:实现景点、美食的全局搜索
  4. 评论功能:实现用户评论和互动
  5. 地图导航:接入地图SDK,实现景点导航功能
  6. 更多乡镇:扩充乡镇数据,覆盖更多地区
  7. 活动推荐:增加当地活动、节庆信息展示
  8. 天气查询:接入天气API,展示当地天气
  9. 酒店预订:增加酒店民宿推荐和预订功能
  10. 分享功能:支持分享到好友和朋友圈

注意事项

  1. 本项目为学习演示项目,所有数据均为模拟数据
  2. 图片资源使用网络图片,需要网络环境支持
  3. 如需发布上线,请替换为自己的AppID并完善相关资质
  4. 项目使用Skyline渲染引擎,需要较新版本的基础库支持

许可证

本项目仅供学习交流使用,请勿用于商业用途。

技术分类

包含内容

完整源码
项目说明文档

适用人群

学习参考与二次开发

关于 AI源码

AI源码 专注优质项目源码分享,提供完整源码、详细文档与技术支持,助力源码设计与课程作业。

QQ: 861077046
邮箱: 861077046@qq.com
已服务 24+ 位用户
立即咨询

相关推荐

查看全部 →
本地生活小程序
小程序
进阶

本地生活小程序

本项目是一个基于微信小程序原生开发的本地生活服务平台,提供餐厅推荐、招聘信息、生活服务分类、近期活动展示等功能,是一个典型的O2O本地生活服务类小程序。

小程序
4.869
电影购票网站
HTML
NEW
进阶

电影购票网站

基于原生 HTML、CSS、JavaScript 实现的 PC 端电影在线购票演示网站。数据使用本地 Mock 模拟,订单与座位占用状态通过浏览器 持久化,无需后端服务,直接用浏览器打开 即可运行。

HTML大作业
4.869
乡村振兴三农小程序
小程序
进阶

乡村振兴三农小程序

这是一个乡村振兴与三农服务的微信小程序,采用纯前端实现,使用本地Mock数据模拟后端接口。项目完整实现了政策解读、农业科技、数字乡村、乡村旅游、农产品展销、乡风文明、人才振兴、基层党建、经验分享等核心功能模块,适合作为微信小程序开发学习项目或计算机设计参考。

小程序
4.889
图书借阅小程序
Node
进阶

图书借阅小程序

这是一个图书借阅管理的微信小程序,采用纯前端实现,使用本地Mock数据模拟后端接口。项目完整实现了图书浏览、分类筛选、搜索查询、收藏管理、借阅下单、订单管理等核心功能,适合作为微信小程序开发学习项目或计算机设计参考。

Node小程序Vue2+1
4.865
垃圾上门回收小程序
Node
进阶

垃圾上门回收小程序

这是一个完整的垃圾上门回收服务平台,包含微信小程序端。系统实现了垃圾分类回收预约、订单管理、地址管理、系统配置等核心功能,采用Egg.js后端框架,适合作为微信小程序全栈开发学习项目或计算机设计参考。

Node小程序Vue2+1
4.877
物业管理系统
Node
进阶

物业管理系统

这是一个完整的智慧社区物业管理平台,包含H5移动端和PC管理后台。系统实现了通知公告、社区活动、访客管理、报修服务、失物招领、投诉建议、二手市场、分享墙、在线聊天等核心功能,采用前后端分离架构,适合作为Vue全栈开发学习项目或计算机设计参考。

NodeVue2MySQL
4.832