当前位置:首页 > uni-app

uniapp 内容列表

2026-03-04 23:38:10uni-app

uniapp 内容列表的实现方法

uniapp 中实现内容列表通常使用 scroll-viewlist 组件,结合数据绑定和样式调整来展示内容。

使用 scroll-view 实现基础列表

<scroll-view scroll-y="true" style="height: 100vh;">
  <view v-for="(item, index) in listData" :key="index" class="list-item">
    {{ item.title }}
  </view>
</scroll-view>

数据绑定与样式示例

export default {
  data() {
    return {
      listData: [
        { title: '项目1' },
        { title: '项目2' }
      ]
    }
  }
}
.list-item {
  padding: 20rpx;
  border-bottom: 1rpx solid #eee;
}

实现下拉刷新和上拉加载

uniapp 提供 onPullDownRefreshonReachBottom 生命周期函数实现刷新和加载功能。

页面配置

{
  "enablePullDownRefresh": true,
  "onReachBottomDistance": 50
}

逻辑实现

uniapp 内容列表

export default {
  onPullDownRefresh() {
    // 刷新数据
    setTimeout(() => {
      uni.stopPullDownRefresh()
    }, 1000)
  },
  onReachBottom() {
    // 加载更多数据
  }
}

优化列表性能

对于长列表,建议使用 uni-list 组件或实现虚拟列表。

虚拟列表实现

<scroll-view 
  scroll-y 
  :scroll-top="scrollTop"
  @scroll="handleScroll">
  <view :style="{ height: totalHeight + 'px' }">
    <view 
      v-for="item in visibleData" 
      :key="item.id"
      :style="{ transform: `translateY(${item.offset}px)` }">
      {{ item.content }}
    </view>
  </view>
</scroll-view>

列表项点击事件处理

为列表项添加点击事件和动画效果提升用户体验。

点击事件示例

uniapp 内容列表

<view 
  v-for="item in listData" 
  :key="item.id"
  @click="handleItemClick(item)"
  :class="['list-item', { 'active': activeId === item.id }]">
  {{ item.title }}
</view>

动画效果实现

.list-item {
  transition: all 0.3s;
}
.list-item.active {
  background-color: #f5f5f5;
}

列表数据过滤与搜索

实现搜索功能可以结合计算属性和过滤器。

搜索功能实现

computed: {
  filteredList() {
    return this.listData.filter(item => 
      item.title.includes(this.searchText)
    )
  }
}

模板中使用

<input v-model="searchText" placeholder="搜索..." />
<view v-for="item in filteredList" :key="item.id">
  {{ item.title }}
</view>

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

相关文章

vue实现列表循环

vue实现列表循环

Vue 列表循环的实现方法 在 Vue 中,可以通过 v-for 指令实现列表循环渲染。以下是几种常见的实现方式: 基础列表渲染 <template> <ul>…

vue实现WiFi列表

vue实现WiFi列表

获取WiFi列表的Vue实现 使用Vue获取WiFi列表需要结合浏览器API或后端服务,因为浏览器出于安全限制无法直接访问系统WiFi信息。以下是两种常见实现方式: 方法一:通过Web API获取附…

vue 实现长列表

vue 实现长列表

vue 实现长列表的优化方法 使用虚拟滚动技术,只渲染可视区域内的元素,大幅减少DOM节点数量。通过计算滚动位置动态更新显示内容,降低内存占用和渲染压力。 <template> &l…

vue实现列表添加

vue实现列表添加

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

vue实现内容拖动

vue实现内容拖动

Vue 实现内容拖动的方法 使用原生 HTML5 拖放 API 在 Vue 中可以利用 HTML5 的拖放 API 实现基本的拖动功能。通过 draggable 属性、dragstart、dragen…

vue实现内容切换

vue实现内容切换

Vue 实现内容切换的方法 在 Vue 中实现内容切换可以通过多种方式,以下是几种常见的方法: 使用 v-if 和 v-else 指令 通过条件渲染动态切换内容。v-if 和 v-else 会根据表…