当前位置:首页 > 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>

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

相关文章

h5实现展开列表

h5实现展开列表

使用HTML5和CSS实现展开列表 在HTML5中,可以通过结合CSS和JavaScript实现展开列表效果。以下是几种常见的方法: 方法1:使用details和summary标签 HTML5提供…

jquery 列表

jquery 列表

jQuery 列表操作 jQuery 提供了多种方法来操作 HTML 列表(如 <ul> 或 <ol>)。以下是一些常见的操作方式: 动态添加列表项 使用 append()…

vue 实现列表多选

vue 实现列表多选

Vue 实现列表多选的方法 使用 v-model 绑定数组 通过 v-model 绑定一个数组,可以自动处理多选逻辑。适用于复选框(checkbox)场景。 <template> &…

vue实现列表滚动

vue实现列表滚动

Vue 实现列表滚动的方法 使用 CSS 实现滚动 通过 CSS 的 overflow 属性可以轻松实现列表滚动。在 Vue 的模板中,为列表容器添加 overflow-y: auto 或 overf…

vue实现触摸滚动列表

vue实现触摸滚动列表

vue实现触摸滚动列表的方法 使用Vue实现触摸滚动列表需要结合移动端的触摸事件和滚动行为。以下是几种常见实现方式: 使用第三方库(推荐) 安装better-scroll库: npm in…

vue实现内容左右滚动

vue实现内容左右滚动

实现内容左右滚动的方法 在Vue中实现内容左右滚动可以通过多种方式完成,以下是几种常见的方法: 使用CSS的overflow-x属性 通过设置CSS的overflow-x: auto或overflo…