当前位置:首页 > uni-app

uniapp 内容列表

2026-02-05 21:59:35uni-app

uniapp 内容列表的实现方法

在 uniapp 中实现内容列表可以通过多种方式完成,以下是几种常见的方法:

使用 scroll-view 组件

scroll-view 组件适合需要滚动展示的列表内容。可以通过设置 scroll-y 属性实现垂直滚动。

<scroll-view scroll-y style="height: 300px;">
  <view v-for="(item, index) in list" :key="index">
    {{ item.title }}
  </view>
</scroll-view>

使用 uni-list 组件

uniapp 提供了 uni-list 组件,专门用于展示列表内容,支持多种样式和交互。

<uni-list>
  <uni-list-item v-for="(item, index) in list" :key="index" :title="item.title" />
</uni-list>

使用 swiper 组件实现横向列表

如果需要横向滚动的列表,可以使用 swiper 组件。

<swiper :indicator-dots="true" :autoplay="true" :interval="3000">
  <swiper-item v-for="(item, index) in list" :key="index">
    <view>{{ item.title }}</view>
  </swiper-item>
</swiper>

通过 CSS 实现网格列表

使用 CSS 的 Flex 布局或 Grid 布局可以实现网格化的内容列表。

<view class="grid-container">
  <view v-for="(item, index) in list" :key="index" class="grid-item">
    {{ item.title }}
  </view>
</view>
.grid-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

.grid-item {
  width: 48%;
  margin-bottom: 10px;
}

动态加载更多数据

对于长列表,可以通过监听滚动事件动态加载更多数据。

<scroll-view scroll-y @scrolltolower="loadMore" style="height: 300px;">
  <view v-for="(item, index) in list" :key="index">
    {{ item.title }}
  </view>
  <view v-if="loading">加载中...</view>
</scroll-view>
export default {
  data() {
    return {
      list: [],
      loading: false,
      page: 1
    }
  },
  methods: {
    loadMore() {
      if (this.loading) return
      this.loading = true
      this.page++
      // 模拟异步加载数据
      setTimeout(() => {
        this.list = [...this.list, ...newData]
        this.loading = false
      }, 1000)
    }
  }
}

性能优化建议

对于长列表,建议使用 virtual-list 组件或分页加载,避免一次性渲染大量 DOM 节点导致性能问题。

<virtual-list :size="50" :remain="10" :items="list">
  <template v-slot="{ item }">
    <view>{{ item.title }}</view>
  </template>
</virtual-list>

样式定制

可以通过 CSS 自定义列表项的样式,例如添加边框、阴影或动画效果。

.list-item {
  padding: 15px;
  border-bottom: 1px solid #eee;
  transition: all 0.3s;
}

.list-item:active {
  background-color: #f5f5f5;
}

以上方法可以根据实际需求选择或组合使用,灵活实现 uniapp 中的内容列表展示。

uniapp 内容列表

标签: 内容列表
分享给朋友:

相关文章

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaS…

vue实现列表添加

vue实现列表添加

使用 Vue 实现列表添加功能 数据绑定与列表渲染 在 Vue 中,通过 v-for 指令可以轻松实现列表渲染。首先需要定义一个数组来存储列表数据,并在模板中使用 v-for 循环渲染。 <t…

vue实现文本列表

vue实现文本列表

Vue 实现文本列表的方法 Vue 可以通过多种方式实现文本列表的渲染和管理,以下是几种常见的方法: 使用 v-for 指令渲染列表 通过 v-for 指令可以动态渲染数组或对象中的文本列表。…

vue实现列表页

vue实现列表页

Vue 实现列表页的方法 数据绑定与渲染 使用 v-for 指令动态渲染列表数据,结合 :key 确保渲染性能。示例代码: <template> <ul> <…

vue实现内容轮播

vue实现内容轮播

使用 Vue 实现内容轮播 基础轮播实现 安装依赖(如使用第三方库) 若选择 vue-awesome-swiper,通过以下命令安装: npm install swiper vue-awesom…

vue实现列表多选

vue实现列表多选

Vue 实现列表多选的方法 使用 v-model 绑定数组 通过 v-model 绑定一个数组,可以轻松实现多选功能。当复选框被选中或取消选中时,数组会自动更新。 <template>…