uni-app x开发商城系统,资讯详情页面数据渲染

news/2025/11/4 14:58:22/文章来源:https://www.cnblogs.com/xiao987334176/p/19187858

一、概述

上一篇文章,已经实现了资讯列表跳转详情并传递id

接下来实现,资讯详情页面数据渲染

效果如下:

动画

二、资讯详情页面结构

修改 pages/news/news-detail文件,固定一行数据

<template><view><!-- 资讯页 点击跳转--><view class="news_detail"><view><text>1季度多家房企利润跌幅超50% 去库存促销战打响</text><view class="info"><text>2015-04-16</text><text>浏览:3</text></view><view class="content"><text>房企一季度销售业绩已经陆续公布,克而瑞研究中心统计数据显示,今年一季度,TOP20的房企仅6家实现业绩同比增长。</text></view></view></view></view>
</template><script>export default {data() {return {id: ''}},//页面加载拿到传递来的参数id值
        onLoad(value) {this.id = value.id;console.log("onload拿到id", value);},methods: {}}
</script><style lang="scss">.news_detail {font-size: 30rpx;padding: 0 20rpx;.title {text-align: center;width: 710rpx;display: block;margin: 20rpx 0;}.info {display: flex;justify-content: space-between;// 子元素自动水平排列flex-direction: row;}.content {margin-top: 10px;}}
</style>

编译代码,运行效果如下:

image

三、调用api接口

//发送请求 传入id获取资讯详情
async getNewsDetail() {const res = await this.$http.get('/api/getnew/' + this.id, {})this.detail = res.message[0];console.log("id:" + this.id + " 资讯数据", this.detail);
}

四、数据渲染

rich-text

官方文档:https://uniapp.dcloud.net.cn/component/rich-text.html#rich-text

image

 

注意:由于api接口返回的详情内容是一段html代码,因此需要使用rich-text组件来渲染。

 

修改 pages/news/news-detail文件,渲染api接口数据

完整代码如下:

<template><view><!-- 资讯页 点击跳转--><view class="news_detail"><view><text>{{detail.title}}</text><view class="info"><text>{{detail.add_time}}</text><text>浏览:{{detail.click}}</text></view><view class="content"><!-- rich-text 支持富文本 --><rich-text :nodes="detail.content"></rich-text></view></view></view></view>
</template><script>export default {data() {return {id: '',//详情数据回显detail: "",}},//页面加载拿到传递来的参数id值
        onLoad(value) {this.id = value.id;console.log("onload拿到id", value);//回显详情数据方法
            this.getNewsDetail();},methods: {//发送请求 传入id获取资讯详情
            async getNewsDetail() {const res = await this.$http.get('/api/getnew/' + this.id, {})this.detail = res.message[0];console.log("id:" + this.id + " 资讯数据", this.detail);}}}
</script><style lang="scss">.news_detail {font-size: 30rpx;padding: 0 20rpx;.title {text-align: center;width: 710rpx;display: block;margin: 20rpx 0;}.info {display: flex;justify-content: space-between;// 子元素自动水平排列flex-direction: row;}.content {margin-top: 10px;}}
</style>

编译运行,效果如下:

image

五、封装公用类

可以看到上面的时间格式不对,但是重新copy一份代码,格式化日志,比较麻烦。

为安全考虑,uvue 不支持 v-html 指令,因此还需要对&emsp; 这类 HTML 实体 转成空格

因此需要封装一个共用类,实现全局统一调用。

 

新建文件utils/public.uts,内容如下:

// 公共工具类
export class PublicMethod {toast(msg : string) {uni.showToast({ title: msg, icon: 'none' })}formatDate(d : Date) : string {const y = d.getFullYear()const m = String(d.getMonth() + 1).padStart(2, '0')const day = String(d.getDate()).padStart(2, '0')return `${y}-${m}-${day}`}// 截取日期
    cut_data(time_str) {const date = time_str.split('T')[0];return date;},// 转换特殊html内容为空格htmlEntities(str : string) : string {return str.replace(/&emsp;/g, '\u2003').replace(/&ensp;/g, '\u2002').replace(/&nbsp;/g, '\u00A0').replace(/&lt;/g, '<').replace(/&gt;/g, '>').replace(/&amp;/g, '&')}// ……想加多少方法继续写
}

 

修改main.uts,挂载实例

import App from './App.uvue'import { createSSRApp } from 'vue'import uviewPlus from 'uview-plus'import { PublicMethod } from '@/utils/public.uts'// 全局唯一实例
uni.$publicMethod = new PublicMethod()/* 1. 引入 request(里面已经初始化好 http) */
import http from '@/utils/request'export function createApp() {const app = createSSRApp(App)/* 2. 挂到全局属性 */app.config.globalProperties.$http = httpapp.use(uviewPlus)return {app}
}

修改 pages/news/news-detail文件,调用公共方法publicMethod

<template><view><!-- 资讯页 点击跳转--><view class="news_detail"><view><text>{{detail.title}}</text><view class="info"><text>发表时间:{{publicMethod.cut_data(detail.add_time)}}</text><text>浏览:{{detail.click}}</text></view><view class="content"><!-- rich-text 支持富文本 --><rich-text :nodes="publicMethod.htmlEntities(detail.content)"></rich-text></view></view></view></view>
</template><script>export default {data() {return {id: '',//详情数据回显detail: "",// 把全局实例挂到当前页面 data
                publicMethod: uni.$publicMethod as PublicMethod,}},//页面加载拿到传递来的参数id值
        onLoad(value) {this.id = value.id;console.log("onload拿到id", value);//回显详情数据方法
            this.getNewsDetail();},methods: {//发送请求 传入id获取资讯详情
            async getNewsDetail() {const res = await this.$http.get('/api/getnew/' + this.id, {})this.detail = res.message[0];console.log("id:" + this.id + " 资讯数据", this.detail);}}}
</script><style lang="scss">.news_detail {font-size: 30rpx;padding: 0 20rpx;.title {text-align: center;width: 710rpx;display: block;margin: 20rpx 0;}.info {display: flex;justify-content: space-between;// 子元素自动水平排列flex-direction: row;}.content {margin-top: 10px;}}
</style>

 

编译代码,效果如下:

image

 

 再点击其他资讯,效果如下:

动画

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/955710.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025 成都律师咨询最新推荐榜权威发布:聚焦刑事辩护与民商事领域,资深团队与新锐品牌全景解析

引言 随着法律服务需求的持续增长,市场上服务质量参差不齐的问题日益凸显,部分机构专业能力不足、流程透明度低,导致当事人权益难以得到充分保障。为破解选择难题,行业协会联合第三方评估机构开展专项测评,形成最…

vue3中英文转换方案(使用 Vue I18n)

一、安装依赖npm install vue-i18n@next ant-design-vue 二、配置Vue I18n 1、创建 i18n 配置文件 src/i18n/index.js import { createI18n } from vue-i18n import antdZhCN from ant-design-vue/es/locale/zh_CN im…

2025 小企业破局指南:人力资源管理软件如何用 智能轻量 重构管理效能

2025 小企业破局指南:人力资源管理软件如何用 "智能轻量" 重构管理效能在数字化转型的浪潮中,小企业正面临着 "人力少、任务重、合规严" 的三重管理困境:HR 往往身兼数职,却要应对招聘筛选、考…

2025年高邮履带式升降机出租供应商权威推荐榜单:铜陵履带式升降机/高邮履带式升降机/履带式液压升降机源头厂家精选

在建筑业与物流业持续发展的推动下,履带式升降机租赁市场呈现稳定增长态势。据2025年工程机械行业数据显示,中国高空作业平台租赁市场规模已突破280亿元,其中履带式升降机占比约18%。 随着现代化施工项目对设备要求…

2025 年包装机生产厂家最新推荐排行榜:聚焦吨袋、阀口袋、小袋全自动码垛等设备,优选综合实力强服务优企业

引言 当前自动化包装设备行业快速发展,但企业选购包装机时面临诸多困境。不少厂家技术研发能力不足,难以满足钢铁、化工、食品等不同行业的个性化需求;部分厂家售后服务滞后,设备故障后无法及时维修,严重影响生产…

2025年重庆3.7米小卡服务商权威推荐榜单:重庆3.8米小卡/重庆4.2米轻卡/重庆货车源头服务商精选

在重庆这座山水之城物流需求持续增长的背景下,一辆可靠的3.7米小卡已成为城市配送“最后一公里”运输效率的关键保障。 作为城市物流配送的主力车型,3.7米小卡的可靠性与经济性直接影响着商贸流通的效率与成本。据20…

TSJY-26M

T0=25 EXOG=0x44 ET0C=0x2e EV1G=0x25 EM1G=0x27 EROF=0x30 EFOF=0x10 EVRF=0x05 EIOS=0x07 EVCC=0x00 EV4G=0x28 EV5G=0x29 EMOD=0x00 F0=26000000.0 2025-11-03 23:53:51 data1.txt exog =0x43 ev1g =0x1b ev4g =0x2…

2025年11月候车亭/公交站台//电子站牌/公交站牌/公交候车厅厂家推荐榜: 领导者江苏兰太城市科技行业分析

2025年11月候车亭/公交站台//电子站牌/公交站牌/公交候车厅厂家推荐榜: 领导者江苏兰太城市科技行业分析 摘要 2025年电子站牌品牌行业正迎来智能化、环保化转型,随着城市交通基础设施升级,品牌竞争加剧。本文基于市…

2025 年最新推荐!盐城宠物医院推荐榜权威发布,揭秘机构优势特色及绝育疫苗手术等服务优选指南洗澡/美容/内科/外科/物牙科宠物医院推荐

引言 随着养宠家庭数量逐年增多,宠物医疗行业快速发展,但设备陈旧、收费不透明、医疗团队水平参差等问题仍较突出,宠物主人亟需权威推荐榜单。本次榜单由行业协会联合专业测评机构打造,测评过程严格规范。测评团队…

StockTV API与其他主流数据源(如Yahoo Finance、Alpha Vantage)相比有哪些具体优势?

StockTV API 在支持广泛市场、保证数据实时性以及满足企业级需求方面,与 Yahoo Finance、Alpha Vantage 等主流数据源相比,确实有其鲜明的特点。为了让你能快速把握全局,下面这个表格清晰地对比了它们的核心特性。特…

expect 免交互

expect 免交互expect(伊克斯拜可特) vim test.exp#!/usr/bin/expect -f set timeout 10 spawn ssh root@192.168.10.18 expect {"yes/no" { send "yes\r"; exp_continue}"*password:"…

2025年乙酸甲酯实力厂家权威推荐榜单:醋酸乙烯酯/乙二醇苯醚/苯氧基乙醇源头厂家精选

乙酸甲酯作为一种重要的有机溶剂和化工中间体,在涂料、油墨、树脂合成及制药领域应用广泛。行业数据显示,2024年我国乙酸甲酯年消费量已突破85万吨,其中涂料行业占比45%,油墨行业占比25%,预计2025年市场规模增长率…

Pycharm复制项目的一个注意事项

复制项目后,建议删除venv,重新设置虚拟环境 venv的scripts中有指向原项目路径的硬编码,将原项目venv复制到新项目中的话,此时在新项目中使用pip,实际操作的是原项目的pip,新项目不会有变化的

2025 年 11 月防腐球墨铸铁管,给水球墨铸铁管,水利工程用球墨铸铁管厂家最新推荐,实力品牌深度解析采购无忧之选!

引言 据行业专项研究报告显示,当前防腐、给水及水利工程用球墨铸铁管市场规模已突破 300 亿元,年需求量达 280 万吨,但超 60% 的工程采购面临防腐不达标、供货延迟、售后缺位等难题。为破解选品困局,本次榜单由铸造…

2025年糖果车间地坪厂家权威推荐榜单:饼干车间地坪/面包车间地坪/屠宰车间地坪源头厂家精选

在食品工业快速发展的背景下,糖果车间地坪作为保障生产环境安全的关键环节,其技术要求日益提高。行业数据显示,2024年我国食品车间地坪市场规模已突破85亿元,其中聚氨酯砂浆地坪因具备耐腐蚀、抗温差等特性,在糖果…

C# Web开发教程(十二)数据校验机制

内置数据校验机制框架内置了对数据校验的支持- 在System.ComponentModel.DataAnnotations这个命名空间下:- 比如[Required]、[EmailAddress] 、[RegularExpression] 、 CustomValidationAttribute、IValidatableObject…

2025年宁夏越南专线运输平台权威推荐榜单:新疆中越专线物流/北京越南货运/天津越南国际物流源头公司精选

随着中国—东盟自由贸易区升级及RCEP协定深化,中越跨境物流需求显著增长。2024年,中越双边贸易额突破2000亿美元,同比增长18.5%,其中宁夏经云南、广西至越南的货运量年均增速达25%。本文将结合运输时效、通关能力、…

2025 年 11 月碳纤维铣刀源头厂家口碑推荐榜:高精度碳纤维铣刀,复合材料专用铣刀,CNC 加工铣刀厂家精选,助力高效切削与优质加工!

2025 年 11 月碳纤维铣刀源头厂家口碑推荐榜:高精度碳纤维铣刀,复合材料专用铣刀,CNC 加工铣刀厂家精选,助力高效切削与优质加工! 随着先进制造业的快速发展,碳纤维复合材料在航空航天、汽车工业、精密电子等领域…

mssql db_owner权限sql注入

第一步 查看当前网站是否为db_owner 权限 http://192.168.152.129:85/1.aspx?xxser=1 and 1=(select is_member(db_owner) );-- 判断当前数据库用户是否为db_owner 权限 没报错 有权限第二步 执行一些报错语句 找路…

supervosor 进程管理

supervosor 进程管理简介 定义:Supervisor是用Python开发的一套通用的进程管理程序 功能:能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启 管理方式:它是通过fork/exec的方式把这些…