uni-app x开发商城系统,资讯列表结构,数据渲染,news-item组件封装

news/2025/11/3 18:07:02/文章来源:https://www.cnblogs.com/xiao987334176/p/19187339

一、概述

上一篇文章,已经实现了社区图片右侧数据渲染,预览图片。

接下来,实现资讯列表结构,数据渲染,news-item组件封装

效果如下:

 image

二、资讯列表结构

修改 pages/news/news.uvue文件,固定一行数据

完整代码如下:

<template><view><!-- 资讯 --><view class="news"><view class="news_item"><image src="https://picsum.photos/600/400?random=1"></image><view class="right"><view class="title">1季度多家房企利润跌幅超50% 去库存促销战打响</view><view class="info"><text>发表时间:2015-04-16</text><text>浏览: 3</text></view></view></view></view></view>
</template><script>export default {data() {return {}},methods: {}}
</script><style lang="scss">.news {.news_item {display: flex;padding: 10rpx 20rpx;border-bottom: 1px solid $shop-color;// 子元素自动水平排列flex-direction: row;image {width: 200rpx;height: 150rpx;min-width: 200rpx;max-width: 200rpx;}.right {// 占满剩余宽度flex: 1;margin-left: 15rpx;// 与图片同高
                height: 150rpx;display: flex;// 弹性布局 侧轴显示flex-direction: column;// 两边对齐justify-content: space-between;.title {font-size: 30rpx;}.info {display: flex;flex-direction: row;text {font-size: 24rpx;}text:nth-child(2) {margin-left: 40rpx;}}}}}
</style>

编译运行,效果如下:

image

三、数据渲染

数据获取

调用api接口

async getNews() {const res = await this.$http.get('/api/getnewslist', {})this.newsList = res.message;console.log("资讯数据", this.newsList);
},

数据渲染

修改 pages/news/news.uvue文件,增加变量newsList,进行for循环

完整代码如下:

<template><view><!-- 资讯 --><view class="news"><view class="news_item" v-for="(item,index) in newsList" :key="item.id"><image :src="item.img_url"></image><view class="right"><view class="title">{{item.title}}</view><view class="info"><text>发表时间:{{cut_data(item.add_time)}}</text><text>浏览: {{item.click}}</text></view></view></view></view></view>
</template><script>export default {data() {return {newsList: []}},onLoad() {this.getNews()},methods: {async getNews() {const res = await this.$http.get('/api/getnewslist', {})this.newsList = res.message;console.log("资讯数据", this.newsList);},// 截取日期
            cut_data(time_str) {const date = time_str.split('T')[0];return date;}}}
</script><style lang="scss">.news {.news_item {display: flex;padding: 10rpx 20rpx;border-bottom: 1px solid $shop-color;// 子元素自动水平排列flex-direction: row;image {width: 200rpx;height: 150rpx;min-width: 200rpx;max-width: 200rpx;}.right {// 占满剩余宽度flex: 1;margin-left: 15rpx;// 与图片同高
                height: 150rpx;display: flex;// 弹性布局 侧轴显示flex-direction: column;// 两边对齐justify-content: space-between;.title {font-size: 30rpx;}.info {display: flex;flex-direction: row;text {font-size: 24rpx;}text:nth-child(2) {margin-left: 40rpx;}}}}}
</style>

编译运行,效果如下:

image

四、news-item组件封装

如果别的页面,也需要显示资讯列表,再重写一遍代码,比较浪费。

因此我们可以将资讯列表数据,封装成一个组件, news-item

 

在项目根目录的components下,创建文件夹news-item,然后在里面创建文件news-item.uvue

目录结构如下:

components
├── goods-list
│   └── goods-list.uvue
└── news-item└── news-item.uvue

 

将 pages/news/news.uvue文件里面的部分内容,copy到news-item.uvue

news-item.uvue完整内容如下:

<template><view><view class="news_item" v-for="(item,index) in newsList" :key="item.id"><image :src="item.img_url"></image><view class="right"><view class="title">{{item.title}}</view><view class="info"><text>发表时间:{{cut_data(item.add_time)}}</text><text>浏览: {{item.click}}</text></view></view></view></view>
</template><script>export default {//接收父组件传递的值props: ['newsList'],methods: {// 截取日期
            cut_data(time_str) {const date = time_str.split('T')[0];return date;}}}
</script><style lang="scss">.news_item {display: flex;padding: 10rpx 20rpx;border-bottom: 1px solid $shop-color;// 子元素自动水平排列flex-direction: row;image {width: 200rpx;height: 150rpx;min-width: 200rpx;max-width: 200rpx;}.right {// 占满剩余宽度flex: 1;margin-left: 15rpx;// 与图片同高
            height: 150rpx;display: flex;// 弹性布局 侧轴显示flex-direction: column;// 两边对齐justify-content: space-between;.title {font-size: 30rpx;}.info {display: flex;flex-direction: row;text {font-size: 24rpx;}text:nth-child(2) {margin-left: 40rpx;}}}}
</style>

 

最后将 pages/news/news.uvue文件里面的部分内容删除掉,引用news-item组件

news.uvue完整内容如下:

<template><view><!-- 资讯 --><view class="news"><news-item :newsList="newsList"></news-item></view></view>
</template><script>import newsPageDataList from '../../components/news-item/news-item.uvue'export default {components: {"news-item": newsPageDataList},data() {return {newsList: []}},onLoad() {this.getNews()},methods: {async getNews() {const res = await this.$http.get('/api/getnewslist', {})this.newsList = res.message;console.log("资讯数据", this.newsList);},}}
</script><style lang="scss">.news {}
</style>

说明:

这里引用news-item组件,并传递参数newsList

 

重新编译,效果如下:

image

 

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

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

相关文章

使用office tool plus 激活office

声明:笔者安装部署的版本为LSTC2024专业增强版基本的部署方案参考知乎 若只需要重新激活office,可参考使用Office Tool Plus再次激活 Office,在博文遇到“激活失败”问题的时候,参考如下解决方案 值得注意的是,如…

#课后作业1:课件动手动脑及验证内容解答 - 20243867孙堃2405

一、AboutException.java示例运行与异常处理基础验证代码示例(模拟) public class AboutException { public static void main(String[] args) { // 演示被0除异常 int i = 1, j = 0, k; try { k = i / j; // 可能抛…

智变未来:中国AI HR市场进程盘点与主流玩家深度分析

摘要:随着人工智能技术的飞速发展,全球人力资源管理领域正经历一场深刻的变革。本文将深度剖析AI在企业人力资源领域的发展与落地概况,聚焦中国AIHR市场的独特特征,并对主流玩家进行详细盘点。特别是对在中国AI HR…

PostgreSQL数据库:新手开启从0到1的学习之路

一、先了解一下PostgreSQL 是什么?PostgreSQL是一款遵循 SQL 标准的开源关系型数据库,起源于加州大学伯克利分校的研究项目。支持关系型数据、JSON/JSONB 非结构化数据、地理信息等多种数据类型,能满足从个人项目到…

2025电线电缆生产厂家,电线电缆厂家精选:武汉特航,赋能多行业的技术型品牌揭秘!

在电线电缆行业中,一批规模适中、专注细分领域的小型厂家凭借精准的市场定位、扎实的产品品质和灵活的服务模式,成为行业中值得关注的力量。以下结合产品合规性、技术适配性、市场口碑等维度,精选 武汉本地优质小型…

nfs 自动挂载的一些问题

nfs 自动挂载的一些问题在测试nfs 自动挂载的时候发现的一个问题,平时没太注意,先进行了不少nfs 挂载参数的调整尝试,依然不行,后边发现是可以开启 systemd-networkd-wait-online 或者NetworkManager-wait-online.…

2025年浙江轻奶茶加盟渠道权威推荐榜单:奶茶加盟/茶饮加盟/奶茶店加盟渠道精选

浙江省作为中国茶饮行业的重要市场,在2024年茶饮加盟市场规模突破85亿元,同比增长22%,其中新中式茶饮占据市场份额的38%,成为创业投资的热门领域。 在这场茶饮行业升级的浪潮中,浙江本土孕育了多个具有全国影响力…

2025优质小型环保腻子粉,植物腻子粉,净醛腻子粉,健康腻子粉,无味腻子粉,腻子粉厂家推荐,实用选型参考

在装修建材市场中,腻子粉作为墙面处理的核心材料,其品质直接影响装修效果与居住体验。面对市面上众多品牌,小型厂家凭借灵活的生产模式、针对性的产品设计和贴心的服务,成为不少装修团队和业主的优选。以下结合产品…

2025年河南心理健康咨询机构权威推荐:河南婚姻心理咨询/河南家庭心理咨询/河南心理咨询机构服务中心精选

据河南省心理健康服务中心统计数据显示,2024年全省心理咨询服务需求量同比增长27.5%,其中青少年心理问题、婚姻家庭关系及情绪管理咨询位列前三位,占总咨询量的68.3%。 随着社会对心理健康的重视程度不断提高,河南…

面试:安全框架与安全管理-网络-防火墙与IPS - 徐正柱

面试:安全框架与安全管理-网络-防火墙与IPSPosted on 2025-11-03 17:58 徐正柱- 阅读(0) 评论(0) 收藏 举报安全产品类型代表产品(非云版本)技术特性‌WAF‌绿盟WAF、安恒明御WAF、天融信WAF、F5 BIG-IP、深信…

2025年汽车机油,润滑油厂家推荐榜:聚焦能源高端化发展潜力!

随着润滑油行业向 “高性能、环保化、智能化” 转型,市场对合规优质产品的需求持续攀升,一批专注细分领域的小规模润滑油厂家凭借精准定位与扎实品质,逐渐在区域市场崭露头角。以下推荐规模适中、特色鲜明的企业,为…

2025小众嵌入式一体机,悬臂式一体机,ARM一体机,一体机厂家推荐榜:朗宇智能,聚焦细分场景的实力之选

在一体机市场中,除了大型企业占据的主流赛道,一批规模适中、专注细分领域的厂家凭借精准的场景适配、扎实的产品品质和灵活的服务模式,逐渐成为不同行业用户的优选。以下结合产品性能、场景应用反馈及用户口碑,综合…

2025西南地区小型花卉大棚,单栋大棚,玻璃温室大棚,温室大棚厂家实用推荐:青程农业,适配中小种植户需求

在设施农业快速发展的当下,温室大棚的适配性、耐用性直接关系到种植户的生产效率与收益。对于中小种植户、家庭农场及初创农业项目而言,选择规模适中、性价比高且服务贴心的厂家尤为重要。以下结合地域适配性、产品实…

2025 年 11 月 DALI 调光系统厂家推荐排行榜,调光网关/调光开关/调光电源/调光驱动/调光传感器/调光模块/调光控制系统公司推荐

2025 年 11 月 DALI 调光系统厂家推荐排行榜,调光网关/调光开关/调光电源/调光驱动/调光传感器/调光模块/调光控制系统公司推荐 随着智能照明技术的快速发展,数字可寻址灯光接口(DALI)协议已成为现代建筑照明控制的…

2025 年热电偶厂家最新推荐排行榜:聚焦 K 型 / T 型 / 铠装丝 / 高温热电偶优质品牌

引言 当前工业制造、医疗电子、智能设备等领域对温度测量的精准性、稳定性需求日益严苛,热电偶作为核心传感元件,市场需求持续增长。但市场上制造商数量繁杂,部分品牌技术积累不足、品控体系松散,导致产品在极端环…

2025年今日黄金回收价格机构权威推荐榜单:黄金上门回收/回收黄金机构/现在黄金回收价格源头机构精选

随着国际金价持续波动,黄金回收市场迎来新一轮活跃期,专业、规范的回收服务成为消费者关注的焦点。 据中国黄金协会数据显示,2024年国内黄金回收量同比增长18.7%,市场规模突破1200亿元。与此同时,消费者对回收服务…

2025年汽车音响生产厂家权威推荐榜单:车载音响/汽车音响喇叭/汽车音响功放源头厂家精选

随着汽车智能化与消费升级的双重驱动,车载音响系统已从基础功能组件升级为提升驾乘体验的核心配置。据行业数据显示,2025年中国汽车音响市场规模增速预计保持在12%以上,其中高端音响与个性化改装需求占比显著提升。…

问问

问问import pandas as pd import numpy as np import re from typing import Tupledef curve_score(value: float, spec_range: Tuple[float, float], weight: float,min_score: float = 0.0,base_curvature: float = …

2025年北京合同纠纷律师事务所权威推荐榜:专业律师团队与高效解决方案口碑之选

2025年北京合同纠纷律师事务所权威推荐榜:专业律师团队与高效解决方案口碑之选 在当今复杂多变的商业环境中,合同纠纷已成为企业运营中最常见的法律风险之一。根据行业数据显示,合同类案件在商事纠纷中的占比持续攀…

SQL - JOIN 中关联条件和过滤条件的执行顺序

SQL - JOIN 中关联条件和过滤条件的执行顺序 SELECT a.id, a.class, b.type FROM table1 AS a LEFT JOIN table2 AS bON a.id = b.idAND a.class = AAND b.type = B;以上SQL语句在执行时是先用id关联生成数据集再用条件…