更新记录

1.0.2(2023-07-03)

补充区域滚动说明,页面滚动建议使用页面列表+原生下拉刷新 增加属性:是否刷新时候返回顶部

1.0.1(2023-06-27)

刷新背景颜色改为透明色

1.0.0(2023-06-26)

第一次发布

查看更多

平台兼容性

Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
× × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

注意事项

区域滚动组件,支持上拉加载和下拉刷新。支持上拉加载和下拉刷新。滚动区域高于页面会导致滚动异常,优先级高于页面滚动,不建议用于页面滚动。

属性

属性 类型 默认值 说明
isRefreshing boolean false 正在刷新,为 true 时重置滚动条
loadMoreStatus 'loading|more|onMore' 'noMore' 加载更多状态
backTopOnRefresh boolean true 刷新时候返回顶部

事件

名称 说明
refresh 下拉刷新事件
loadMore 下拉加载事件

示例


<script>
import DragableList from "@/components/dragable-list/dragable-list.vue";

export default {
  name: "example",
  components: {DragableList},
  data() {
    return {
      list: [],
      isRefreshing: false,
      loadMoreStatus: 'loading', // loading | more | noMore
    }
  },
  mounted() {
    this.getList()
  },
  methods: {
    async getList(isReload = false) {
      console.log('getList');
      this.loadMoreStatus = 'loading'

      if (isReload) {
        // this.params.pageNo = 1
        this.isRefreshing = true
        this.list = []
      }

      const list = []
      const baseLen = this.list.length
      for (let i = 0; i < 10; i++) {
        const item = {
          name: '列表项目 ' + (baseLen + i + 1),
          id: Math.random(),
        }
        list.push(item)
      }
      const total = 100

      console.log('list', list)

      // 加载更多
      this.list.push(...list)
      this.total = total
      if (this.list.length >= this.total) {
        this.loadMoreStatus = 'noMore'
      } else {
        this.loadMoreStatus = 'more'
      }
      this.isRefreshing = false
    },
    refreshList() {
      this.getList(true)
    },
    loadMore() {
      console.log('list loadMore');
      if (this.list.length >= this.total) return
      // this.params.pageNo++
      this.getList()
    },
  }
}
</script>

<template>
  <view style="width: 500px;height: 500px;background-color: #fff;margin: 0 auto">
    <dragable-list
        :is-refreshing="isRefreshing"
        :load-more-status="loadMoreStatus"
        @loadMore="loadMore"
        @refresh="refreshList"
    >
      <view v-for="item in list" :key="item.id" style="height: 100px;border-bottom: 1px solid #000">
        {{item.name}}
      </view>
    </dragable-list>
  </view>
</template>

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问