新闻详情页面比较简单,主要用到了v-html指令显示HTML文本,如果后台传过来的是Markdown格式的文本,则使用MarkdownReader自定义组件解析,一般为提高显示速度不建议客户端解析,而是由服务端将markdown格式的文本转换为HTML再返回到客户端显示
~~~
<div v-html="pageData.content"></div>
~~~
需要修改/src/router/index.js文件添加详情页面的路由
~~~
{
path: "/portal/news/detail",
name: "PoraltNewsDetail",
component: () => import("../views/portal/news/detail.vue"),
},
~~~
完整的页面代码
文件路径:/src/views/portal/news/detail.vue
~~~
<template>
<div>
<Banner :image="pageData.cover"></Banner>
<ChannelHeader>
<NavigatorPath :path="navigatorPathData"></NavigatorPath>
<template v-slot:extra></template>
</ChannelHeader>
<div class="section">
<div class="section-title">
{{ pageData.title }}
</div>
<div class="section-content">
<!-- <MarkdownReader v-model="pageData.content"></MarkdownReader> -->
<div v-html="pageData.description"></div>
</div>
</div>
</div>
</template>
<script>
import NavigatorPath from "@/components/navigator-path";
import ChannelHeader from "@/components/channel-header";
// import MarkdownReader from "@/components/markdown-reader";
import { news } from "@/common/api/portal";
export default {
components: {
NavigatorPath,
ChannelHeader,
// MarkdownReader,
},
data() {
return {
navigatorPathData: [
{ title: "首页", path: "/portal", query: { menu: "home" } },
{
title: "新闻动态",
path: "/portal/news",
query: { menu: "news" },
},
"内容详情",
],
id: 0,
pageData: {},
};
},
methods: {
async getPageData() {
news.getDetail(this.id).then((res) => {
if (res.errno == 0) {
this.pageData = res.data;
} else {
this.$Message.info(res.errmsg);
}
});
},
},
mounted() {
//获取查询参数
if (this.$route.query.id) {
this.id = this.$route.query.id;
this.getPageData();
}
},
};
</script>
<style scoped lang="scss">
.section {
// font-size: 130%;
.section-content {
padding: 10px;
line-height: 1.5;
margin-top: 5px;
}
.section-title {
font-size: x-large;
font-weight: bold;
padding: 10px;
text-align: center;
}
}
</style>
~~~
- 文档说明
- 服务端开发指南
- 客户端开发指南
- 请求拦截器
- API接口实例分析
- 页面文件
- NPM包管理
- 创建NPM包项目
- 课程设计
- 概述
- 内容管理系统项目
- 配置开发环境
- 设计静态原型
- 快速构建项目
- 构建CMS系统前端界面
- 门户模块
- 新闻列表
- API接口规范
- 生成模拟数据
- 显示新闻列表
- NavigatorPath组件
- ChannelHeader组件
- v-line-clamp指令
- formatDate过滤器
- 新闻详情页
- 修改顶部导航菜单
- 实现访问远程API
- 扩展功能
- 组件开发
- 服务端项目
- 编写服务模块
- 项目配置
- 数据库
- 创建数据库脚本
- 配置数据库
- 创建模拟数据
- 新闻模块控制器
- 添加逻辑验证层
- 实现接口
- 书栈模块
- QA