一、实验目标
- 综合所学知识创建完整的前端新闻小程序项目;
- 能够在开发过程中熟练掌握真机预览、调试等操作。
二、实验步骤
-
根据实验手册上的网址下载
common.js
、图片文件、以及index
页面的代码。创建项目的步骤和之前的实验相同。 -
此次的项目一共需要3个页面,包括:
- 首页——
index
- 新闻页——
detail
- 个人中心页——
my
其中,首页和个人中心页需要以
tabBar
的形式展示,可以点击tab
图标互相切换。首先在
app.json
文件pages
属性中删除pages/logs/logs
,然后添加pages/detail/detail
和pages/my/my
,保存后在pages
文件夹下自动生成了detail
和my
目录。然后将下载文件中的
images
和utils
两个文件夹放到总目录下,images
文件夹中存放了图标,utils
文件夹存放了common.js
文件。全部完成后的目录如下图所示:
- 首页——
-
导航栏设计。在
app.json
中对windows
属性进行配置来自定义导航栏效果。 -
tabBar
设计。在app.json
中添加tabBar
属性并对其进行配置。 -
首页包括两个部分:
- 幻灯片滚动——
<swiper>
组件 - 新闻列表——
<view>
容器,内部使用数组循环
在
pages/index/index.wxml
中编写代码,使用wx:for
循环显示幻灯片内容和新闻列表数据。在
pages/index/index.wxss
中编写样式表,展示幻灯片和新闻列表。由于后续在个人中心页也会用到新闻列表,所以将这部分样式写在公共样式表
app.wxss
中。 - 幻灯片滚动——
-
个人中心页包括两个部分:
- 登录面板——
<view>
容器 - 我的收藏——
<view>
容器,内部使用数组循环
在
pages/my/my.wxml
中编写代码,使用wx:for
循环显示我的收藏中的新闻列表数据。在
pages/my/my.wxss
中编写样式表,展示幻灯片和新闻列表。 - 登录面板——
-
新闻页使用
view
组件进行整体布局,包括:- container:整体容器
- title:新闻标题区域
- poster:新闻图片区域
- content:新闻正文区域
- add_date:新闻日期区域
在
pages/detail/detail.wxml
中编写代码:在
pages/detail/detail.wxss
中编写样式表: -
公共逻辑使用
utils
中的common.js
文件,有两个自定义函数:getNewsList
——获取新闻列表getNewsDetail
——获取新闻内容
在
common.js
中有module.exports
语句用于对外暴露调用公共函数的接口。 -
首页需要实现两个功能:
- 新闻列表展示——自定义
onLoad
函数 - 点击跳转新闻内容——自定义
goToDetail
函数
在
pages/index/index.js
中实现以上两个函数,并在pages/index/index.wxml
中添加相应的点击事件。需要在文件开头声明var common = require('../../utils/common.js')
才能使用common.js
中的getNewsList
函数。 - 新闻列表展示——自定义
-
新闻页需要实现两个功能:
- 根据新闻的
id
编号显示对应新闻——自定义onLoad
函数 - 添加/取消新闻收藏——自定义
addFavorites
和cancelFavorites
函数
在pages/detail/detail.js
中实现以上3个函数,并在pages/detail/detail.wxml
中添加<button>
组件实现收藏功能。需要在文件开头声明var common = require('../../utils/common.js')
才能使用common.js
中的getNewsDetail
函数。
-
个人中心页需要实现3个功能:
- 获取微信用户信息——自定义
getUserProfile
函数 - 获取收藏列表——自定义
getMyFavorites
函数和onShow
函数 - 浏览收藏的新闻——自定义
goToDetail
函数
在
pages/my/my.js
中实现以上4个函数,并在pages/my/my.wxml
中添加相应的点击事件。 - 获取微信用户信息——自定义
-
最后需要清除临时数据:
- 首页
index.js
:data
中的临时新闻列表数据newsList
- 新闻页
detail.js
:data
中的临时新闻数据article
- 个人中心页
my.js
:data
中临时收藏夹新闻数据newsList
、临时昵称数据nickName
以及临时头像路径地址src
。
清除缓存后重新编译运行即可。
- 首页
三、程序运行结果
首页:
未登录时的用户信息页:
点击登录按钮:
登录后:
四、问题总结与体会
- 使用文档中用户登录的函数需要改写成更新后的
getUserProfile
,否则只能获取灰色头像和微信用户名称。 - 通过这次实验,熟悉了公共函数、本地缓存的用法,在今后的开发中非常有用。