目 录
摘 要 I
Abstract II
1 绪论 1
1.1 选题背景及意义 1
1.1.1 选题背景 1
1.1.2 选题意义 1
1.2 国内外研究现状及发展趋势 2
1.2.1 国内研究现状 2
1.2.2 国外研究现状 2
1.2.3 发展趋势 2
1.3论文研究内容及结构的安排 3
2 开发技术简介 4
2.1 Vue.js框架介绍 4
2.2 Vant组件库介绍 4
2.3 Axios网络请求库介绍 4
3 系统分析 5
3.1 系统需求分析 5
3.1.1 用户需求 5
3.1.2 功能需求 5
3.1.3 性能需求 7
3.2 可行性分析 8
3.2.1 技术可行性 8
3.2.2 经济可行性 8
3.2.3 操作可行性 8
4 系统设计 9
4.1 系统功能结构设计 9
4.2 系统功能详细设计 13
5 系统实现 19
6 结论 25
参考文献 26
致 谢 28
综上所述,APP开发领域的国内外研究现状呈现出多样化的特点,而未来的发展趋势则更加注重跨平台、智能化、个性化和开放化等方面的提升和创新[14]。
1.3论文研究内容及结构的安排
本论文的主要研究内容是热点头条移动端APP的设计与开发。通过对选题背景及意义的深入分析,明确了本研究的必要性和价值所在。同时,结合国内外研究现状及发展趋势,确定了本研究的创新点和突破口。
在结构上,本论文分为六个主要部分。首先,绪论部分简要介绍了选题背景、意义以及国内外研究现状,为后续研究奠定了基础。其次,开发技术及工具概述部分详细介绍了Vue.js框架、Vant组件库和Axios网络请求库等关键技术的特点和优势,为后续的系统设计和实现提供了技术支持。
接着,系统分析部分从用户需求、功能需求和性能需求三个方面对系统进行了深入分析,为后续的系统设计提供了明确的指导。可行性分析则从技术、经济和操作三个角度对系统的实施进行了全面评估,确保了研究的可行性。
然后,系统设计部分根据系统分析的结果,设计了合理的功能结构,并详细描述了各个功能模块的实现细节。这一部分是论文的核心内容之一,为系统的实现提供了详细的蓝图。
系统实现部分则具体介绍了系统的实现过程和关键技术难点的解决方案,通过代码实现和测试验证,确保了系统的稳定性和可靠性。最后,结论部分对全文进行了总结,概括了本研究的主要成果和创新点,并对未来的研究方向进行了展望。
<template>
<div class="home">
<!-- 频道 -->
<!-- 因为是前端写死数据,导致后续的频道管理只能前端数据改变 -->
<van-tabs v-model="tabActive" color="#ee0a24">
<van-tab title="热门">
<div class="tab-content">
<div>
<van-search
v-model="searchValue"
@search="onSearch"
@clear="onClear"
placeholder="请输入文章标题"
/>
</div>
<div class="content-title">
<van-icon name="fire-o" color="#ee0a24" />
今日热门
</div>
<div
class="list-item"
v-for="item in articleList[0]"
:key="item.title"
@click="toDetails(item)"
>
<div style="flex: 1">
<div class="item-title">
{{ item.title }}
</div>
<div class="desc">
<span style="margin-right: 5px"> {{ item.name }} </span>
<span style="margin-right: 5px"> {{ item.date }} </span>
<span style="margin-right: 5px"> {{ item.num }}浏览 </span>
</div>
</div>
<div class="preview">
<img :src="item.url" alt="" />
</div>
</div>
</div>
</van-tab>
<van-tab title="资讯">
<div class="tab-content">
<div>
<van-search
v-model="searchValue"
@search="onSearch"
@clear="onClear"
placeholder="请输入文章标题"
/>
</div>
<div class="content-title">
<van-icon name="fire" color="#ee0a24" />
今日资讯
</div>
<div
class="list-item"
v-for="item in articleList[1]"
:key="item.title"
@click="toDetails(item)"
>
<div style="flex: 1">
<div class="item-title">
{{ item.title }}
</div>
<div class="desc">
<span style="margin-right: 5px"> {{ item.name }} </span>
<span style="margin-right: 5px"> {{ item.date }} </span>
<span style="margin-right: 5px"> {{ item.num }}浏览 </span>
</div>
</div>
<div class="preview">
<img :src="item.url" alt="" />
</div>
</div></div
></van-tab>
<van-tab title="社区">
<div class="tab-content">
<div>
<van-search
v-model="searchValue"
@search="onSearch"
@clear="onClear"
placeholder="请输入文章标题"
/>
</div>
<div class="content-title">
<van-icon name="fire-o" color="#ee0a24" />
社区热点
</div>
<div
class="list-item"
v-for="item in articleList[2]"
:key="item.title"
@click="toDetails(item)"
>
<div style="flex: 1">
<div class="item-title">
{{ item.title }}
</div>
<div class="desc">
<span style="margin-right: 5px"> {{ item.name }} </span>
<span style="margin-right: 5px"> {{ item.date }} </span>
<span style="margin-right: 5px"> {{ item.num }}浏览 </span>
</div>
</div>
<div class="preview">
<img :src="item.url" alt="" />
</div>
</div></div
></van-tab>
<van-tab title="直播">
<div class="tab-content">
<div>
<van-search
v-model="searchValue"
@search="onSearch"
@clear="onClear"
placeholder="请输入文章标题"
/>
</div>
<div class="content-title">
<van-icon name="play-circle" color="#ee0a24" />
热门直播
</div>
<div
class="list-item"
v-for="item in articleList[3]"
:key="item.title"
@click="toDetails(item)"
>
<div style="flex: 1">
<div class="item-title">
{{ item.title }}
</div>
<div class="desc">
<span style="margin-right: 5px"> {{ item.name }} </span>
<span style="margin-right: 5px"> {{ item.date }} </span>
<span style="margin-right: 5px"> {{ item.num }}浏览 </span>
</div>
</div>
<div class="preview">
<img :src="item.url" alt="" />
</div>
</div></div
></van-tab>
</van-tabs>
<Tabbar />
</div>
</template>
<script>
import Tabbar from '@/components/Tabbar'
export default {
name: 'Home',
components: {
Tabbar,
},
data() {
return {
tabActive: 0,
// 文章列表
// 因为是静态数据,所有各个频道列表数据只能写死
articleList: [
// 热门
[
{
title: '航班熔断是什么意思? 航班熔断可以退票吗?',
name: '财经新闻网',
date: '2024-01-16',
num: '526',
url: 'http://tuxianggu.4898.cn/thumb/uploads/2022-06-24/559d8e60d6263d6f3dd632e861dbade3.jpg',
},
{
title: '茅箭区助学支教志愿服务队走进大川中心小学',
name: '中国移动',
date: '2024-01-16',
num: '526',
url: 'https://img0.utuku.imgcdc.com/640x0/toutiao/20240218/449cd9eb-aace-41e3-a4d5-eb584702aaf1.jpg',
},
{
title: '十堰市张湾区教育局: 强国复兴有我 共同奔赴未来',
name: '十堰广电',
date: '2024-01-18',
num: '423',
url: 'https://img2.utuku.imgcdc.com/650x0/toutiao/20240218/9c151b6c-dbea-4eac-8710-dc8af910a1d3.jpg',
},
{
title: '第77集团军某旅组织实战化对抗训练',
name: '国际时事讲解',
date: '2024-01-16',
num: '526',
url: 'https://img1.utuku.imgcdc.com/640x0/toutiao/20240218/fd60b82d-b2a7-4a23-9157-2c0a78a681d6.jpg',
},
{
title: '联合国安理会或就加沙停火决议投票,美代表威胁一票否决',
name: '观察者网',
date: '2024-01-16',
num: '526',
url: 'https://img3.utuku.imgcdc.com/650x0/toutiao/20240218/95386bf2-abcd-4351-914b-0261520de2a2.jpg',
},
{
title: '高速堵车第一辆车在干啥?明明没有交通事故',
name: '今日头条',
date: '2024-01-16',
num: '526',
url: 'https://img1.utuku.imgcdc.com/650x0/news/20240219/be821bd9-2759-4308-bd5e-8997e191f1d9.png',
},
{
title: '广西北海:队史教育助力新兵铸魂引航',
name: '人民资讯',
date: '2024-01-16',
num: '526',
url: 'https://img2.utuku.imgcdc.com/600x0/toutiao/20240218/002ba18c-e216-41ad-9659-9eb9b8c3b04a.jpg',
},
],
// 资讯
[
{
title: '渎职罪是怎么定义的?渎职罪包括哪些罪名?',
name: '法制法律网',
date: '2023-05-29',
num: '526',
url: 'http://www.qzcns.com/uploadfile/2023/0512/20230512090310453.jpg',
},
{
title: '炒外汇是什么意思?炒外汇合法吗?炒外汇算非法集资吗?',
name: '法律保',
date: '2024-01-18',
num: '423',
url: 'http://www.qzcns.com/uploadfile/2023/0512/20230512091544102.jpg',
},
{
title: '中日韩青少年传统舞蹈展示传统舞蹈艺术魅力',
name: '泉州晚报',
date: '2024-01-16',
num: '526',
url: 'http://www.qzcns.com/uploadfile/2022/0104/20220104045029770.jpg',
},
{
title: '安徽严控债券融资风险 融资成本不断降低',
name: '安徽日报',
date: '2024-01-16',
num: '526',
url: 'http://tuxianggu.4898.cn/thumb/uploads/2022-07-01/ab837d255470bc0ba39a841d2a21a1b2.jpg',
},
{
title: '女生当兵的条件是什么?女兵的征集条件有哪些?',
name: '金陵热线',
date: '2024-01-16',
num: '526',
url: 'http://www.qzcns.com/uploadfile/2022/1229/20221229035434276.jpg',
},
{
title: '饮用咖啡后失眠该如何解决? 咖啡在体内代谢的时间有多久?',
name: '财经新闻网',
date: '2024-01-16',
num: '526',
url: 'http://tuxianggu.4898.cn/thumb/uploads/2022-07-01/3a179db36746ca4e973554907ccaceb0.jpg',
},
],
[
{
title: '深圳推行“登记确认制” 持续优化营商环境',
name: '深圳商报',
date: '2024-01-16',
num: '526',
url: 'http://www.qzcns.com/uploadfile/2022/0422/20220422033205167.jpg',
},
{
title:
'拼多多联合上百家出版社开展“多多读书月” 为全民打造优良读书环境',
name: '浙江日报',
date: '2024-01-18',
num: '423',
url: 'https://aliypic.oss-cn-hangzhou.aliyuncs.com/Uploadfiles/20240215/2024021511060319.001.png',
},
{
title: '安溪农商银行:金融赋能 黄金桂变成“黄金贵”',
name: '今日泉州网',
date: '2024-01-16',
num: '526',
url: 'https://q1.itc.cn/images01/20240210/12ef4e3b538f4205976497409ac15ba9.png',
},
{
title:
'林肯发布旗下首款纯电概念车Lincoln Star 概念车设计颇具梦幻气息',
name: '快科技',
date: '2024-01-16',
num: '526',
url: 'http://www.qzcns.com/uploadfile/2022/0421/20220421041546849.jpg',
},
{
title: '南科大举行“云上”校园开放日活动 近120万人线上交流',
name: '南方教育时报',
date: '2024-01-16',
num: '526',
url: 'http://www.qzcns.com/uploadfile/2023/0322/20230322102529947.jpg',
},
{
title: '奢活艺术馆:努力向上的生长,提升生命质量',
name: '今日热点网',
date: '2024-01-16',
num: '526',
url: 'http://objectnzt.oss-cn-hangzhou.aliyuncs.com/yhdoc/202402/19/202402190930241601260281.jpeg',
},
],
[
{
title: '日常生活中要时刻注意护腰 必要时可佩戴护腰护具',
name: '闽南日报',
date: '2024-01-16',
num: '526',
url: 'http://www.qzcns.com/uploadfile/2021/1231/20211231110950511.jpg',
},
{
title: '重视优秀传统文化传承发展 复原梅峰书院历史风貌',
name: '泉州晚报',
date: '2024-01-18',
num: '423',
url: 'http://www.qzcns.com/uploadfile/2022/0422/20220422100349257.jpg',
},
{
title: '康师傅饮品的龙年春节营销组合拳,是怎么玩出圈的?',
name: '财讯网',
date: '2024-01-16',
num: '526',
url: 'https://q4.itc.cn/images01/20240210/aa41f4a9fcef43e6aeae7338322f0668.jpeg',
},
{
title:
'温州陆域引调水工程项目迎来开工 鹿西乡未来“用水”“吃水”将更便捷',
name: '浙江日报',
date: '2024-01-16',
num: '526',
url: 'http://www.qzcns.com/uploadfile/2022/0421/20220421031414521.jpg',
},
{
title: '亳州市打造为企服务“码上监督”平台 提升市场主体整体满意度',
name: '安徽日报',
date: '2024-01-16',
num: '526',
url: 'http://tuxianggu.4898.cn/thumb/uploads/2022-06-24/92edad113d48eb43d7fab23f73d0bc80.jpg',
},
{
title: '航班熔断是什么意思? 航班熔断可以退票吗?',
name: '财经新闻网',
date: '2024-01-16',
num: '526',
url: 'http://tuxianggu.4898.cn/thumb/uploads/2022-06-24/559d8e60d6263d6f3dd632e861dbade3.jpg',
},
{
title: '奢活艺术馆:努力向上的生长,提升生命质量',
name: '今日热点网',
date: '2024-01-16',
num: '526',
url: 'http://objectnzt.oss-cn-hangzhou.aliyuncs.com/yhdoc/202402/19/202402190930241601260281.jpeg',
},
],
],
// 因为要做文章搜索且是前端数据
// 所以要有原始不动的数据
originalArticleList: [
// 热门
[
{
title: '航班熔断是什么意思? 航班熔断可以退票吗?',
name: '财经新闻网',
date: '2024-01-16',
num: '526',
url: 'http://tuxianggu.4898.cn/thumb/uploads/2022-06-24/559d8e60d6263d6f3dd632e861dbade3.jpg',
},
{
title: '茅箭区助学支教志愿服务队走进大川中心小学',
name: '中国移动',
date: '2024-01-16',
num: '526',
url: 'https://img0.utuku.imgcdc.com/640x0/toutiao/20240218/449cd9eb-aace-41e3-a4d5-eb584702aaf1.jpg',
},
{
title: '十堰市张湾区教育局: 强国复兴有我 共同奔赴未来',
name: '十堰广电',
date: '2024-01-18',
num: '423',
url: 'https://img2.utuku.imgcdc.com/650x0/toutiao/20240218/9c151b6c-dbea-4eac-8710-dc8af910a1d3.jpg',
},
{
title: '第77集团军某旅组织实战化对抗训练',
name: '国际时事讲解',
date: '2024-01-16',
num: '526',
url: 'https://img1.utuku.imgcdc.com/640x0/toutiao/20240218/fd60b82d-b2a7-4a23-9157-2c0a78a681d6.jpg',
},
{
title: '联合国安理会或就加沙停火决议投票,美代表威胁一票否决',
name: '观察者网',
date: '2024-01-16',
num: '526',
url: 'https://img3.utuku.imgcdc.com/650x0/toutiao/20240218/95386bf2-abcd-4351-914b-0261520de2a2.jpg',
},
{
title: '高速堵车第一辆车在干啥?明明没有交通事故',
name: '今日头条',
date: '2024-01-16',
num: '526',
url: 'https://img1.utuku.imgcdc.com/650x0/news/20240219/be821bd9-2759-4308-bd5e-8997e191f1d9.png',
},
{
title: '广西北海:队史教育助力新兵铸魂引航',
name: '人民资讯',
date: '2024-01-16',
num: '526',
url: 'https://img2.utuku.imgcdc.com/600x0/toutiao/20240218/002ba18c-e216-41ad-9659-9eb9b8c3b04a.jpg',
},
],
// 资讯
[
{
title: '渎职罪是怎么定义的?渎职罪包括哪些罪名?',
name: '法制法律网',
date: '2023-05-29',
num: '526',
url: 'http://www.qzcns.com/uploadfile/2023/0512/20230512090310453.jpg',
},
{
title: '炒外汇是什么意思?炒外汇合法吗?炒外汇算非法集资吗?',
name: '法律保',
date: '2024-01-18',
num: '423',
url: 'http://www.qzcns.com/uploadfile/2023/0512/20230512091544102.jpg',
},
{
title: '中日韩青少年传统舞蹈展示传统舞蹈艺术魅力',
name: '泉州晚报',
date: '2024-01-16',
num: '526',
url: 'http://www.qzcns.com/uploadfile/2022/0104/20220104045029770.jpg',
},
{
title: '安徽严控债券融资风险 融资成本不断降低',
name: '安徽日报',
date: '2024-01-16',
num: '526',
url: 'http://tuxianggu.4898.cn/thumb/uploads/2022-07-01/ab837d255470bc0ba39a841d2a21a1b2.jpg',
},
{
title: '女生当兵的条件是什么?女兵的征集条件有哪些?',
name: '金陵热线',
date: '2024-01-16',
num: '526',
url: 'http://www.qzcns.com/uploadfile/2022/1229/20221229035434276.jpg',
},
{
title: '饮用咖啡后失眠该如何解决? 咖啡在体内代谢的时间有多久?',
name: '财经新闻网',
date: '2024-01-16',
num: '526',
url: 'http://tuxianggu.4898.cn/thumb/uploads/2022-07-01/3a179db36746ca4e973554907ccaceb0.jpg',
},
],
[
{
title: '深圳推行“登记确认制” 持续优化营商环境',
name: '深圳商报',
date: '2024-01-16',
num: '526',
url: 'http://www.qzcns.com/uploadfile/2022/0422/20220422033205167.jpg',
},
{
title:
'拼多多联合上百家出版社开展“多多读书月” 为全民打造优良读书环境',
name: '浙江日报',
date: '2024-01-18',
num: '423',
url: 'https://aliypic.oss-cn-hangzhou.aliyuncs.com/Uploadfiles/20240215/2024021511060319.001.png',
},
{
title: '安溪农商银行:金融赋能 黄金桂变成“黄金贵”',
name: '今日泉州网',
date: '2024-01-16',
num: '526',
url: 'https://q1.itc.cn/images01/20240210/12ef4e3b538f4205976497409ac15ba9.png',
},
{
title:
'林肯发布旗下首款纯电概念车Lincoln Star 概念车设计颇具梦幻气息',
name: '快科技',
date: '2024-01-16',
num: '526',
url: 'http://www.qzcns.com/uploadfile/2022/0421/20220421041546849.jpg',
},
{
title: '南科大举行“云上”校园开放日活动 近120万人线上交流',
name: '南方教育时报',
date: '2024-01-16',
num: '526',
url: 'http://www.qzcns.com/uploadfile/2023/0322/20230322102529947.jpg',
},
{
title: '奢活艺术馆:努力向上的生长,提升生命质量',
name: '今日热点网',
date: '2024-01-16',
num: '526',
url: 'http://objectnzt.oss-cn-hangzhou.aliyuncs.com/yhdoc/202402/19/202402190930241601260281.jpeg',
},
],
[
{
title: '日常生活中要时刻注意护腰 必要时可佩戴护腰护具',
name: '闽南日报',
date: '2024-01-16',
num: '526',
url: 'http://www.qzcns.com/uploadfile/2021/1231/20211231110950511.jpg',
},
{
title: '重视优秀传统文化传承发展 复原梅峰书院历史风貌',
name: '泉州晚报',
date: '2024-01-18',
num: '423',
url: 'http://www.qzcns.com/uploadfile/2022/0422/20220422100349257.jpg',
},
{
title: '康师傅饮品的龙年春节营销组合拳,是怎么玩出圈的?',
name: '财讯网',
date: '2024-01-16',
num: '526',
url: 'https://q4.itc.cn/images01/20240210/aa41f4a9fcef43e6aeae7338322f0668.jpeg',
},
{
title:
'温州陆域引调水工程项目迎来开工 鹿西乡未来“用水”“吃水”将更便捷',
name: '浙江日报',
date: '2024-01-16',
num: '526',
url: 'http://www.qzcns.com/uploadfile/2022/0421/20220421031414521.jpg',
},
{
title: '亳州市打造为企服务“码上监督”平台 提升市场主体整体满意度',
name: '安徽日报',
date: '2024-01-16',
num: '526',
url: 'http://tuxianggu.4898.cn/thumb/uploads/2022-06-24/92edad113d48eb43d7fab23f73d0bc80.jpg',
},
{
title: '航班熔断是什么意思? 航班熔断可以退票吗?',
name: '财经新闻网',
date: '2024-01-16',
num: '526',
url: 'http://tuxianggu.4898.cn/thumb/uploads/2022-06-24/559d8e60d6263d6f3dd632e861dbade3.jpg',
},
{
title: '奢活艺术馆:努力向上的生长,提升生命质量',
name: '今日热点网',
date: '2024-01-16',
num: '526',
url: 'http://objectnzt.oss-cn-hangzhou.aliyuncs.com/yhdoc/202402/19/202402190930241601260281.jpeg',
},
],
],
// 搜索关键词
searchValue: '',
}
},
watch: {
// 监听频道的变化
tabActive: {
handler(val) {
// 如果变化则搜索关键词置空
this.searchValue = ''
// 把文章列表恢复原来
this.articleList = JSON.parse(JSON.stringify(this.originalArticleList))
},
},
},
methods: {
// 跳转文章详情
toDetails(item) {
// 理论上应该是拿文章id去获取文章详情渲染,但是没有接口只能写死数据跳转
// 导致每篇文章都一样
// 后续需要搭配接口处理
this.$router.push('/details')
},
// 文章搜索 点击键盘上的搜索/回车按钮后触发
onSearch() {
//
let arr = this.originalArticleList[this.tabActive].filter((item) =>
item.title.includes(this.searchValue)
)
this.articleList.splice(this.tabActive, 1, arr)
},
// 点击清除按钮后触发
onClear() {
// 把文章列表恢复原来
this.articleList = JSON.parse(JSON.stringify(this.originalArticleList))
},
},
}
</script>
<style lang="scss" scoped>
.home {
min-height: 100vh;
background: #f3f3f3;
}
.tab-content {
// padding: 10px;
// background-color: #f3f3f3;
.content-title {
font-weight: bold;
margin: 10px;
}
.list-item {
display: flex;
justify-content: space-between;
align-items: center;
background-color: #fff;
padding: 10px;
margin-bottom: 2px;
.item-title {
-webkit-line-clamp: 2;
display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
font-size: 17px;
line-height: 1.5;
min-height: 54px;
}
.desc {
color: #585858;
font-size: 14px;
margin-top: 8px;
}
.preview {
width: 110px;
height: 75px;
border-radius: 5px;
overflow: hidden;
margin-left: 10px;
img {
width: 100%;
height: 100%;
}
}
}
}
</style>