news 2026/10/29 2:10:09

新闻资讯小程序

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
新闻资讯小程序

新闻资讯小程序

项目简介

这是一个新闻资讯阅读的微信小程序,采用纯前端实现,使用本地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,// 轮播图IDimage:'/images/swiper1.jpg',// 图片路径title:'新闻热点一:全球科技创新峰会召开'// 标题}

新闻分类数据 (newsCategories)

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

新闻数据 (allNews)

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

用户数据 (users)

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

核心业务逻辑

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

// utils/request.jsconstrequest=(options)=>{returnnewPromise((resolve,reject)=>{wx.showLoading({title:'加载中...',mask:true});setTimeout(()=>{letres;if(options.url.includes('/swiper')){res={code:200,data:mockData.swiperList};}elseif(options.url.includes('/news/categories')){res={code:200,data:mockData.newsCategories};}elseif(options.url.includes('/news/list')){const{categoryId,page,pageSize}=options.data;res={code:200,data:mockData.generateNewsList(categoryId,page,pageSize),};}elseif(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.jsgenerateNewsList:(categoryId,page=1,pageSize=10)=>{constfilteredNews=categoryId===1?allNews:allNews.filter((news)=>news.categoryId===categoryId);conststartIndex=(page-1)*pageSize;constendIndex=startIndex+pageSize;returnfilteredNews.slice(startIndex,endIndex);};

3. 用户登录验证

// pages/login/login.jsonLoginSubmit(e){const{username,password}=e.detail.value;constusers=wx.getStorageSync('mock_users')||[];constuser=users.find(u=>u.username===username&&u.password===password);if(user){constmockToken=`mock_token_${user.userId}`;wx.setStorageSync('token',mockToken);wx.setStorageSync('userInfo',{userId:user.userId,nickname:user.nickname,username:user.username});// 登录成功}}

4. 用户注册

// pages/register/register.jsonRegisterSubmit(e){const{username,password,confirmPassword}=e.detail.value;letusers=wx.getStorageSync('mock_users')||[];letnextUserId=wx.getStorageSync('nextUserId')||1;constnewUser={username:username,password:password,userId:nextUserId,nickname:username};users.push(newUser);wx.setStorageSync('mock_users',users);wx.setStorageSync('nextUserId',nextUserId+1);}

5. 数据初始化

// app.jsonLaunch(){letusers=wx.getStorageSync('mock_users');if(!users||users.length===0){wx.setStorageSync('mock_users',mockData.initialUsers);// 初始化下一个用户IDletmaxId=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并完善相关资质

许可证

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/29 2:08:32

slub init_object

init_object() 是 SLUB 调试里用于初始化对象内存内容的函数,把对象的有效数据区填成指定字节,用于 poison 机制。一、函数签名static void init_object(struct kmem_cache *s, void *object, u8 val)参数含义s缓存object对象指针val要填充的字节值无返回…

作者头像 李华
网站建设 2026/10/29 2:07:22

QByteArray 详解:既是二进制字节数组,也能拥有类 QString 的文本 API

QByteArray 详解:既是二进制字节数组,也能拥有类 QString 的文本 API1、引言:一个被低估的类2、 QByteArray 是什么2.1 、基本定位2.2、 与 QString 的关系3、创建与初始化4、 二进制视角:真正的字节数组4.1、 追加与访问原始字节…

作者头像 李华
网站建设 2026/10/29 2:06:52

模型越强,越需Agent落地

尽管大模型(LLM)的推理、多模态理解及泛化能力确实在飞速提升(如字节 Seed1.5-VL 等多模态模型的发布,显著增强了 AI 对视觉和复杂现实世界的理解能力),但这反而加剧了开发 Agent 的必要性,而非…

作者头像 李华