新闻资讯小程序

新闻资讯阅读微信小程序,含热点轮播、10 类新闻分类、详情阅读、用户注册登录与个人资料管理,Mock + Storage,适合资讯媒体类毕业设计。

评分:4.8/5.0
销量:84
发布:11/30/2025
难度:L2 进阶级

获取完整源码

演示视频仅作效果参考。完整源码、项目说明与运行答疑,请私聊沟通(适合毕业设计 / 课程设计 / 课设参考)。

获取完整源码观看演示视频
含项目说明文档,便于对照学习
可本地运行,适合课设演示
沟通获取后可咨询运行问题

项目封面

截图 1

项目概览

本项目为新闻资讯主题微信小程序,实现热点轮播、推荐与科技娱乐体育财经等 10 个分类 Tab 切换、新闻详情阅读、用户注册登录及个人资料编辑,支持下拉刷新与上拉加载更多,适合新闻媒体、内容聚合类毕业设计参考。

项目说明

新闻资讯小程序

项目简介

这是一个新闻资讯阅读的微信小程序,采用纯前端实现,使用本地Mock数据模拟后端接口。项目完整实现了新闻浏览、分类筛选、新闻详情、用户注册登录、个人信息管理等核心功能,适合作为微信小程序开发学习项目或计算机设计参考。

技术栈

技术版本/说明
开发框架微信小程序原生框架
基础库版本最新稳定版
开发语言JavaScript (ES6+)
样式语言WXSS (微信小程序样式)
模板语言WXML (微信小程序模板)
数据存储本地Storage持久化
数据模拟Mock Data (本地模拟数据)

项目特点

  • 纯前端实现:无需后端服务器,所有数据使用本地Mock模拟
  • 数据持久化:用户数据使用 wx.setStorageSync 本地存储,关闭小程序后数据不丢失
  • 完整业务流程:涵盖新闻浏览、分类筛选、用户注册登录、个人信息管理等完整流程
  • UI设计简洁:界面风格简洁大方,蓝色主题配色,符合新闻资讯类应用调性
  • 分类丰富:支持推荐、科技、娱乐、体育、财经、国际、社会、军事、时尚、游戏等10个新闻分类
  • 分页加载:支持下拉刷新和上拉加载更多功能

功能模块

1. 首页模块 (pages/home)

  • 轮播图展示热点新闻
  • 推荐新闻列表展示
  • 新闻封面图、标题、发布时间
  • 点击新闻进入详情页

2. 新闻列表模块 (pages/news)

  • 新闻分类Tab导航(推荐、科技、娱乐、体育、财经、国际、社会、军事、时尚、游戏)
  • 分类切换筛选新闻
  • 新闻列表展示(封面图、标题、发布时间)
  • 下拉刷新功能
  • 上拉加载更多功能
  • 点击进入新闻详情

3. 新闻详情模块 (pages/detail)

  • 新闻标题展示
  • 发布时间展示
  • 新闻封面大图
  • 新闻正文内容展示

4. 用户中心模块 (pages/user)

  • 用户头像、昵称展示
  • 登录状态判断
  • 登录入口
  • 注册入口
  • 个人资料入口
  • 退出登录功能

5. 登录模块 (pages/login)

  • 用户名输入
  • 密码输入
  • 登录验证
  • 跳转注册页面
  • 登录成功跳转用户中心

6. 注册模块 (pages/register)

  • 用户名输入
  • 密码输入
  • 确认密码输入
  • 密码长度验证(至少6位)
  • 密码一致性验证
  • 用户名重复检测
  • 注册成功跳转登录页

7. 个人资料模块 (pages/profile)

  • 显示当前用户信息
  • 修改昵称功能
  • 保存个人信息
  • 登录状态验证

项目结构

new-min/
├── app.js                    # 小程序入口文件,全局数据管理和用户初始化
├── app.json                  # 小程序全局配置(页面路由、TabBar、窗口样式)
├── app.wxss                  # 全局样式文件
├── project.config.json       # 项目配置文件
├── project.private.config.json # 项目私有配置
├── sitemap.json              # 小程序索引配置
├── mockData/                 # Mock数据目录
│   └── mockData.js           # Mock数据文件(新闻、分类、用户数据)
├── images/                   # 图片资源目录
│   ├── tabbar/               # TabBar图标
│   │   ├── home.png          # 首页图标
│   │   ├── home_selected.png # 首页选中图标
│   │   ├── news.png          # 新闻图标
│   │   ├── news_selected.png # 新闻选中图标
│   │   ├── user.png          # 我的图标
│   │   └── user_selected.png # 我的选中图标
│   ├── default_avatar.png    # 默认头像
│   ├── icon_login.png        # 登录图标
│   ├── icon_logout.png       # 退出图标
│   ├── icon_profile.png      # 个人资料图标
│   ├── icon_register.png     # 注册图标
│   ├── news1.jpg             # 新闻图片
│   ├── swiper1.jpg           # 轮播图1
│   ├── swiper2.jpg           # 轮播图2
│   └── swiper3.jpg           # 轮播图3
├── pages/                    # 页面目录
│   ├── home/                 # 首页
│   │   ├── home.js
│   │   ├── home.json
│   │   ├── home.wxml
│   │   └── home.wxss
│   ├── news/                 # 新闻列表页
│   │   ├── news.js
│   │   ├── news.json
│   │   ├── news.wxml
│   │   └── news.wxss
│   ├── detail/               # 新闻详情页
│   │   ├── detail.js
│   │   ├── detail.json
│   │   ├── detail.wxml
│   │   └── detail.wxss
│   ├── user/                 # 用户中心页
│   │   ├── user.js
│   │   ├── user.json
│   │   ├── user.wxml
│   │   └── user.wxss
│   ├── login/                # 登录页
│   │   ├── login.js
│   │   ├── login.json
│   │   ├── login.wxml
│   │   └── login.wxss
│   ├── register/             # 注册页
│   │   ├── register.js
│   │   ├── register.json
│   │   ├── register.wxml
│   │   └── register.wxss
│   └── profile/              # 个人资料页
│       ├── profile.js
│       ├── profile.json
│       ├── profile.wxml
│       └── profile.wxss
└── utils/                    # 工具类目录
    ├── request.js            # 请求封装(Mock数据处理)
    └── util.js               # 工具函数

数据模型

轮播图数据 (swiperList)

{
  id: 1,                          // 轮播图ID
  image: '/images/swiper1.jpg',   // 图片路径
  title: '新闻热点一:全球科技创新峰会召开' // 标题
}

新闻分类数据 (newsCategories)

{
  id: 1,                          // 分类ID
  name: '推荐'                    // 分类名称
}

新闻数据 (allNews)

{
  id: 101,                        // 新闻ID
  categoryId: 1,                  // 所属分类ID
  title: '深度解读:全球经济复苏面临的新挑战与机遇', // 新闻标题
  content: '新闻正文内容...',     // 新闻正文
  imageUrl: '/images/news1.jpg',  // 封面图片
  publishTime: '2025-06-27 10:00' // 发布时间
}

用户数据 (users)

{
  userId: 1,                      // 用户ID
  username: 'test',               // 用户名
  password: '123',                // 密码
  nickname: '测试用户'            // 昵称
}

核心业务逻辑

1. 请求封装(Mock数据处理)

// utils/request.js
const request = (options) => {
  return new Promise((resolve, reject) => {
    wx.showLoading({ title: '加载中...', mask: true });

    setTimeout(() => {
      let res;
      if (options.url.includes('/swiper')) {
        res = { code: 200, data: mockData.swiperList };
      } else if (options.url.includes('/news/categories')) {
        res = { code: 200, data: mockData.newsCategories };
      } else if (options.url.includes('/news/list')) {
        const { categoryId, page, pageSize } = options.data;
        res = {
          code: 200,
          data: mockData.generateNewsList(categoryId, page, pageSize),
        };
      } else if (options.url.includes('/news/detail')) {
        const { id } = options.data;
        res = { code: 200, data: mockData.getNewsDetail(id) };
      }

      wx.hideLoading();
      resolve(res.data);
    }, 500); // 模拟500ms延迟
  });
};

2. 新闻分页查询

// mockData/mockData.js
generateNewsList: (categoryId, page = 1, pageSize = 10) => {
  const filteredNews =
    categoryId === 1
      ? allNews
      : allNews.filter((news) => news.categoryId === categoryId);
  const startIndex = (page - 1) * pageSize;
  const endIndex = startIndex + pageSize;
  return filteredNews.slice(startIndex, endIndex);
};

3. 用户登录验证

// pages/login/login.js
onLoginSubmit(e) {
  const { username, password } = e.detail.value;
  const users = wx.getStorageSync('mock_users') || [];
  const user = users.find(u => u.username === username && u.password === password);

  if (user) {
    const mockToken = `mock_token_${user.userId}`;
    wx.setStorageSync('token', mockToken);
    wx.setStorageSync('userInfo', {
      userId: user.userId,
      nickname: user.nickname,
      username: user.username
    });
    // 登录成功
  }
}

4. 用户注册

// pages/register/register.js
onRegisterSubmit(e) {
  const { username, password, confirmPassword } = e.detail.value;
  let users = wx.getStorageSync('mock_users') || [];
  let nextUserId = wx.getStorageSync('nextUserId') || 1;

  const newUser = {
    username: username,
    password: password,
    userId: nextUserId,
    nickname: username
  };

  users.push(newUser);
  wx.setStorageSync('mock_users', users);
  wx.setStorageSync('nextUserId', nextUserId + 1);
}

5. 数据初始化

// app.js
onLaunch() {
  let users = wx.getStorageSync('mock_users');
  if (!users || users.length === 0) {
    wx.setStorageSync('mock_users', mockData.initialUsers);
    // 初始化下一个用户ID
    let maxId = 0;
    mockData.initialUsers.forEach(user => {
      if (user.userId > maxId) maxId = user.userId;
    });
    wx.setStorageSync('nextUserId', maxId + 1);
  }
}

页面路由配置

{
  "pages": [
    "pages/home/home", // 首页(默认启动页)
    "pages/news/news", // 新闻列表
    "pages/user/user", // 用户中心
    "pages/detail/detail", // 新闻详情
    "pages/login/login", // 登录页
    "pages/register/register", // 注册页
    "pages/profile/profile" // 个人资料页
  ]
}

TabBar配置

{
  "tabBar": {
    "color": "#999",
    "selectedColor": "#007bff",
    "backgroundColor": "#fff",
    "list": [
      {
        "pagePath": "pages/home/home",
        "text": "首页",
        "iconPath": "images/tabbar/home.png",
        "selectedIconPath": "images/tabbar/home_selected.png"
      },
      {
        "pagePath": "pages/news/news",
        "text": "新闻",
        "iconPath": "images/tabbar/news.png",
        "selectedIconPath": "images/tabbar/news_selected.png"
      },
      {
        "pagePath": "pages/user/user",
        "text": "我的",
        "iconPath": "images/tabbar/user.png",
        "selectedIconPath": "images/tabbar/user_selected.png"
      }
    ]
  }
}

运行环境要求

  • 微信开发者工具:建议使用最新稳定版
  • 基础库版本:2.19.0 及以上
  • AppID:需替换为自己的AppID

快速开始

1. 克隆/下载项目

将项目文件夹下载到本地

2. 导入项目

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

3. 运行项目

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

4. 真机调试

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

预置测试数据

新闻分类

分类ID分类名称
1推荐
2科技
3娱乐
4体育
5财经
6国际
7社会
8军事
9时尚
10游戏

轮播图

标题
新闻热点一:全球科技创新峰会召开
新闻热点二:世界杯预选赛激战正酣
新闻热点三:最新健康生活方式报告发布

新闻内容(部分)

标题分类发布时间
深度解读:全球经济复苏面临的新挑战与机遇推荐2025-06-27 10:00
地方两会聚焦民生:就业、教育、医疗成热点推荐2025-06-27 09:00
AI芯片迎来新一轮爆发:算力提升推动大模型发展科技2025-06-27 09:30
热门电影票房再创新高:艺术与商业的完美融合娱乐2025-06-27 08:45
欧洲杯小组赛战况激烈:多支强队面临出线考验体育2025-06-27 07:00
A股市场震荡调整:结构性行情显现,关注新兴产业财经2025-06-27 06:30

测试账号

用户名密码昵称
test123测试用户
adminadmin管理员

界面预览

项目包含演示视频文件 演示视频.mp4,可查看完整功能演示。

扩展建议

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

  1. 接入真实后端:将Mock数据替换为真实API接口
  2. 用户登录系统:接入微信登录,实现真实用户体系
  3. 新闻搜索:实现新闻关键词搜索功能
  4. 新闻收藏:添加新闻收藏功能
  5. 阅读历史:记录用户阅读历史
  6. 评论功能:添加新闻评论和互动功能
  7. 分享功能:支持分享新闻到好友和朋友圈
  8. 消息推送:热点新闻推送通知
  9. 夜间模式:添加深色主题切换
  10. 字体设置:支持正文字体大小调节

注意事项

  1. 本项目为学习演示项目,所有数据均为模拟数据
  2. 登录功能为模拟实现,密码以明文存储,仅供学习使用
  3. 新闻内容为虚构内容,仅供演示
  4. 如需发布上线,请替换为自己的AppID并完善相关资质

许可证

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

获取完整源码

技术分类

包含内容

完整源码
项目说明文档
演示材料

适合方向

适合计算机、软件工程专业做新闻资讯、内容平台类毕业设计;也适合新闻传播方向需要移动端原型演示的学生;以及学习分页加载、用户认证与分类 Tab 交互的开发者。

关于 AI源码

AI源码 整理计算机毕业设计、课程设计向的可运行项目参考,含说明文档与演示材料。完整源码请通过联系方式沟通获取。

QQ: 861077046
邮箱: 861077046@qq.com
已帮助 84+ 位同学完成选题参考
问能不能做我的题目

相关推荐

查看全部 →
社区论坛系统
高级

社区论坛系统

Spring Boot+Vue 豆宝社区论坛系统,类似简版掘金,实现注册登录、发帖回帖、评论关注与用户中心,集成 Vditor Markdown 编辑器与 JWT 认证,支持暗黑模式,适合 Java 社区类毕业设计。

SpringBootVue2MySQL
4.883
宠物领养小程序
高级·新上架

宠物领养小程序

宠物领养小程序毕业设计,Spring Boot 后端 + 微信原生小程序 + Vue 管理后台,覆盖宠物发布、领养申请审核、宠物圈社交与微信登录全流程。

SpringBoot小程序Vue2+1
4.822
本地生活小程序
进阶

本地生活小程序

微信小程序原生 O2O 本地生活平台,Skyline 渲染引擎,含餐厅推荐与地图定位、招聘、48 项生活服务分类与近期活动收藏,适合小程序开发类毕业设计。

小程序
4.869
美食之家小程序
进阶

美食之家小程序

美食菜谱分享微信小程序,纯前端 Mock 实现分类浏览、菜谱详情、评论互动与用户发布,Storage 持久化收藏与评论,橙红美食主题 UI,适合小程序社交类毕业设计。

小程序
4.881
乐龄生活养老服务小程序
进阶

乐龄生活养老服务小程序

乐龄生活养老服务微信小程序,涵盖养老院查询、居家服务预约、社区活动报名、健康资讯与收藏管理,纯前端 Mock,蓝色清新 UI,适合养老服务类毕业设计。

小程序
4.851
绿行回收小程序
进阶

绿行回收小程序

绿行回收垃圾分类微信小程序,含智能分类查询、回收站点地图、上门回收预约与环保知识科普,集成地图组件,绿色 UI,适合环保类毕业设计。

小程序
4.894