当前位置: 首页 > wzjs >正文

自己做网站需要做服务器长沙本地推广

自己做网站需要做服务器,长沙本地推广,中华人民共和国副主席,东莞家具饰品东莞网站建设功能目标&#xff1a; CardList.vue 中支持分页&#xff0c;每页显示指定数量的卡片。添加“加载中”动画。支持懒加载&#xff1a;滚动到底部自动加载下一页。点击卡片的事件逻辑由 Card.vue 内部发出&#xff0c;并由 CardList 向上传递。 主页面文件 Home.vue <templat…

功能目标:

  1. CardList.vue 中支持分页,每页显示指定数量的卡片。
  2. 添加“加载中”动画。
  3. 支持懒加载:滚动到底部自动加载下一页。
  4. 点击卡片的事件逻辑由 Card.vue 内部发出,并由 CardList 向上传递。

主页面文件 Home.vue

<template><div><h1>Card List 示例</h1><CardList :dataList="cards" @card-click="handleCardClick" /></div>
</template><script>
import CardList from './components/CardList.vue'export default {name: 'Home',components: {CardList},data() {return {// 假设这是全部数据(实际应用中可从API分页加载)cards: Array.from({ length: 50 }, (_, i) => ({id: i + 1,title: `Card #${i + 1}`,description: `This is card number ${i + 1}.`}))}},methods: {handleCardClick(card) {alert(`你点击了: ${card.title}`)}}
}
</script>

CardList.vue (分页 + 懒加载 + 加载动画)

<template><div class="card-list"><Cardv-for="item in paginatedList":key="item.id":cardData="item"@card-click="handleCardClick"/><div v-if="loading" class="loading">加载中...</div></div>
</template><script>
import Card from './Card.vue'export default {name: 'CardList',components: { Card },props: {dataList: {type: Array,required: true}},data() {return {pageSize: 10,currentPage: 1,loading: false}},computed: {paginatedList() {return this.dataList.slice(0, this.currentPage * this.pageSize)}},mounted() {window.addEventListener('scroll', this.onScroll)},beforeDestroy() {window.removeEventListener('scroll', this.onScroll)},methods: {handleCardClick(card) {this.$emit('card-click', card)},onScroll() {const scrollBottom = window.innerHeight + window.scrollY >= document.body.offsetHeight - 10if (scrollBottom && !this.loading && this.canLoadMore) {this.loadNextPage()}},loadNextPage() {this.loading = truesetTimeout(() => {this.currentPage++this.loading = false}, 1000) // 模拟加载延迟}},computed: {canLoadMore() {return this.paginatedList.length < this.dataList.length}}
}
</script><style scoped>
.card-list {display: flex;flex-wrap: wrap;gap: 16px;
}.loading {width: 100%;text-align: center;padding: 16px;color: #999;font-style: italic;
}
</style>

Card.vue (点击内部触发)

<template><div class="card" @click="handleClick"><h3>{{ cardData.title }}</h3><p>{{ cardData.description }}</p></div>
</template><script>
export default {name: 'Card',props: {cardData: {type: Object,required: true}},methods: {handleClick() {this.$emit('card-click', this.cardData)}}
}
</script><style scoped>
.card {border: 1px solid #ccc;padding: 16px;border-radius: 8px;cursor: pointer;width: 200px;transition: box-shadow 0.2s;
}
.card:hover {box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}
</style>

总结:

这是一个基于 Vue 2 开发的可复用卡片列表组件,支持以下功能:

  • 分页加载:初始显示部分数据,滚动到底部自动加载更多;
  • 懒加载机制:通过监听页面滚动事件实现无限加载;
  • 点击交互:每个卡片可点击,事件由卡片内部触发并向上传递;
  • 加载状态显示:加载新数据时展示“加载中…”提示;
http://www.dtcms.com/wzjs/493675.html

相关文章:

  • 学校网站建设特色百度文库官网入口
  • 重庆企业网站排名优化社交媒体推广
  • 沈阳哪里做网站杭州seo营销公司
  • 做推广哪个食品网站好青岛网站建设推广公司
  • 深圳市专业做网站重庆网站排名提升
  • 秦皇岛市海港区建设局网站北京网络营销咨询公司
  • 做网站的软件图标网络营销企业案例分析
  • 龙华区网站建设什么是sem
  • 网站后台安全综合查询
  • 免费psd模板网站seo管理系统培训
  • 个体户可以做网站建设站长工具传媒
  • 商务服饰网站建设网页设计模板
  • 金融企业网站制作代运营公司排行榜
  • 网站优化方式有哪些首页关键词怎么排名靠前
  • 学做网站从零开始自媒体运营主要做什么
  • 网站交换链接的网络营销意义谷歌浏览器官网下载手机版
  • doc导入wordpress微信搜一搜seo
  • 安卓上怎么做单机网站爱站网关键词
  • 河南省建设厅网站103号文件自建站
  • 广州建站费用vi设计
  • 网络代理加盟如何百度seo算法
  • 微信开发小程序需要多少钱银徽seo
  • 天元建设集团有限公司办公室电话西安做推广优化的公司
  • 相关文章wordpress网站关键词优化排名软件
  • 可以做百度百科参考资料的网站seo标题优化分析范文
  • 想建个图片网站今天疫情最新消息
  • 技校计算机专业主要学什么无锡百度关键词优化
  • 做网站用phpcms还是免费的建站平台
  • asp网站发布ftp今日的新闻
  • 在线学做衣服 的网站百度竞价排名怎么做