96SEO 2026-02-23 14:49 3
等技术栈实现的一款新闻资讯类App#xff0c;适合有一定Vue框架使用经验的开发者进行学习。

等技术栈实现的一款新闻资讯类App适合有一定Vue框架使用经验的开发者进行学习。
新闻分类首页新闻列表刷新加载最新新闻用户私信留言新闻搜索查看新闻详情
CLI脚手架工具创建项目。
在指定的硬盘下打开命令行工具并执行以下命令。
Chrome浏览器的控制台进行在浏览器中按下F12键然后单击“切换设备工具栏”进入移动端的调试界面可以选择相应的设备进行调试。
项目结构如图2所示其中src文件夹是项目的源文件目录src文件夹下的项目结构如图3所示。
node_modules项目依赖管理也是本地服务器的根。
package.json项目npm配置文件。
vue.config.js项目构建配置文件
assets静态资源文件存放目。
components公共组件存放。
router路由配置文件存放。
views视图组件存放目录。
App.vue项目的根组件。
main.ts项目的入口文件。
Shims-vue.d.ts
index.html、main.ts和App.vue三个文件这些入口文件的具体内容介绍如下。
index.html是项目默认的主渲染页面文件主要用于Vue实例挂载点的声明与DOM渲染。
代码如下
htmlWebpackPlugin.options.title
%/title/headbodynoscriptstrongWere
htmlWebpackPlugin.options.title
main.ts是程序的入口文件主要用于加载各种公共组件和初始化Vue实例。
本项目是基于Vue3开发的在入口文件中引入createApp()来创建vue实例对象。
项目中的路由设置和引用的Vant
App.vue是项目的根组件所有的页面都是在App.vue下面切换的所有的页面组件都是App.vue的子组件。
在App.vue组件内只需要使用
在src/router/index.ts文件中定义了项目的所有跳转的路由代码如下
项目中所有页面组件都在views文件夹中定义所有的公共组件都在components文件夹中定义具体组件内容介绍如下。
在首页新闻列表和新闻内容页中都需要使用到新闻列表的展示为了增强代码的可扩展性可以在components文件夹下创建NewsCard.vue新闻卡片的公共组件。
代码如下
classnews-title{{title}}/divdiv
classnews-msgspan{{author}}/spanspan{{date}}/span/div/van-colvan-col
v-slot:error加载失败/template/van-image/van-col/van-row/div
App首页汇集了整个应用的核心功能入口在头部导航栏部分主要涉及了两个功能的入口按钮分别是“私信”和“搜索”。
在头部导航栏的下方设计了新闻分类的标签页按钮方便用户切换不同类别的新闻列表。
效果如图4所示。
classtop-title今日头条/spanvan-icon
--van-tabsv-model:activeactivebackground#F4F5F6stickyoffset-top46title-active-color#EE0A24van-tab
/template新闻类别的标签页数据使用的是本地静态数据在项目中的src/hooks文件夹下创建tabs.ts文件用于保存新闻分类的静态数据。
代码如下
tabs在Home.vue文件中进入src/hooks/tabs.ts文件并设置为响应式数据。
代码如下
在首页中引入NewsCard.vue新闻卡片的公共组件并对axios获取数据进行封装。
由于本项目中使用的是“聚合数据平台”的数据接口在请求服务端接口时会出现跨域需要先配置本地服务器的请求代理。
在项目根目录下创建vue.config.js配置文件在配置文件中添加proxy的配置。
代码如下
}封装axios请求方法在src/hooks目录下创建sendhttp.ts文件代码如下
{console.log(res.data)result.value
res.data.result.dataif(toast){toast.clear()}}).catch(err{if(toast){toast.clear()}})}getData(query)//切换导航事件const
spinner,});getData(name,toast)}return
sendhttp在Home.vue文件中引入src/hooks/sendhttp.ts文件并在setup()函数中发送请求将请求成功后的数据遍历在标签页中。
click-rightonClickRighttemplate
classtop-title新闻头条/spanvan-icon
--van-tabsv-model:activeactivebackground#F4F5F6stickyoffset-top46title-active-color#EE0A24changetabsChangevan-tab
:authornews.author_name:datenews.date:picnews.thumbnail_pic_sclickonClickNews(news.uniquekey)/news-card/div/van-tab/van-tabs/div
sendhttp(/api/toutiao/index,active.value)//导航栏左侧按钮点击事件const
{active,replay,tabsList,tabsChange,result,onClickLeft,onClickRight,onClickNews};},
点击新闻列表触发NewsCard.vue新闻卡片组件上的点击事件通过useRouter路由模块将新闻的id传给Details.vue新闻详情组件。
代码如下
--van-tabsv-model:activeactivebackground#F4F5F6stickyoffset-top46title-active-color#EE0A24changetabsChangevan-tab
:authornews.author_name:datenews.date:picnews.thumbnail_pic_sclickonClickNews(news.uniquekey)/news-card/div/van-tab/van-tabs/div
useRouter()//其他代码...//点击新闻const
/script在新闻详情页中通过useRoute组件获取参数得到新闻的id并再次发送axios请求获取当前新闻的详细数据。
Details.vue组件代码如下
stylemargin-left:10px;{{result.author_name}}/span/templatetemplate
classnews-title{{result.title}}/div!--
classnews-msgspan{{result.author_name}}/spanspan{{result.date}}/span/div!--
v-htmlresult.content/div/div/div
});//获取请求axios.get(/api/toutiao/content,{params:
26dafe8731502872b632b9552feccf06}}).then(res{result.value
res.data.result.detail}).catch(err
{window.history.back();};return
点击头部导航栏的左侧图标按钮跳转到私信留言列表页面效果如图7所示。
--van-nav-bartitle私信fixedleft-arrowclick-leftonClickLefttemplate
classcustom-title{{msg.name}}/span/van-badge/templatetemplate
classmsg-content{{msg.content}}/span/template/van-cell/div/div
-webkit-box;-webkit-box-orient:
/style本项目的私信留言使用的是本地静态数据在src/hooks目录下创建messageData.ts文件用于留言静态数据。
代码如下
在首页的头部导航栏点击右侧按钮跳转到新闻搜索页面效果如图8所示。
--van-searchv-modelkeywordsshaperoundplaceholder请输入你感兴趣的show-actionaction-text搜索cancelonClickRighttemplate
stylemargin-right:10px//template/van-search!--
classsearch-history-titlespan搜索记录/spanvan-icon
closedelTag(index){{kw}}/van-tag/div/div/div
ref([千锋教育,前端教程])//点击导航栏左侧按钮const
{window.history.back()}//点击导航栏右侧搜索按钮const
{list.value.push(keywords.value)console.log(keywords)}//删除搜索记录const
{list.value.splice(index,1)}//清空搜索记录const
{keywords,onClickLeft,delTag,clear,onClickRight,list}}
.search-history-titlespan{font-size:
https://download.csdn.net/download/p445098355/89570498
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback