1.0.5 • Published 4 years ago

v-pull-refresh v1.0.5

Weekly downloads
-
License
ISC
Repository
-
Last release
4 years ago

v-pull-refresh

基于 vue 封装的轻量级上下拉刷新组件

在线demo

点击查看,请使用浏览器手机模拟器模式

如何使用

 npm install v-pull-refresh

 //main.js
 import pullRefresh from 'v-pull-refresh'
 Vue.use(pullRefresh)

代码示例

<template>
  <div style='height:400px;border:1px solid black;'>
    <pull-refresh
                  :list.sync="list"
                  ref="scroll"
                  @refresh="onRefresh"
                  @loadmore="loadmore"
    >
      <div class="list">
            <ul>
              <li v-for="(n, i) in list"
                  >{{ n }}
              </li>
            </ul>
      </div>
    </pull-refresh>
  <div>
</template>

<script>
 export default {
  data() {
    return {
      list: [1, 2, 3, 4, 5]
    };
  },
  methods: {
    onRefresh() {
      let arr = [],
        len = this.list.length;
      for (let i = len; i < len + 10; i++) {
        arr.push(i);
      }
      setTimeout(() => {
        this.list = this.list.concat(arr);
      }, 1000);
    },
    loadmore(pageindex) {
      console.log("加载pageindex", pageindex);
      if (i >= 3) {
        //数据上拉加载完成后,显示调用此方法后,滚动到底部将不会再派发
        this.$refs.scroll && this.$refs.scroll.forceUpdate();
        return;
      }
      let arr = [],
        len = this.list.length;
      for (let i = len; i < len + 10; i++) {
        arr.push(i);
      }
      setTimeout(() => {
        this.list = this.list.concat(arr);
      }, 1000);
    }
  }


</script>

<style lang='scss' scoped>
.list {
  width: 100%;
  background-color: white;
  overflow: hidden;
  li {
    display: flex;
    align-items: center;
    margin: 10px 0;
    justify-content: center;
  }
}
</style>

使用pull-refresh组件的外层父容器,必须要指定高度,使其内部子元素继承,子元素高度超出才能进行上拉滚动加载

在使用上拉刷新时,只要改变了 list 的长度,组件内会 watch 监听 list 变化,将刷新状态重置,在上拉刷新后若无数据需要显式调用组件的forceUpdate方法通知组件内部

prop

属性说明类型默认值描述
list数组列表array[]异步的数据列表,内部
pullTip下拉时的提示文字string下拉即可刷新
pullingUp是否开启上拉刷新Booleantrue
pullingDown是否开启下拉刷新Booleantrue
refreshTip刷新中的提示文字string正在刷新
usecache是否开启缓存Booleanfalse开启缓存后,会将list数据以及刷新状态,滚动条高度等进行缓存(待实现)

emit-event

事件方法说明参数
refresh下拉刷新成功后,触发此事件
loadmore上拉刷新成功后,触发此事件pageIndex (nubmer)

实例事件

事件方法说明
forceUpdate上拉刷新成功后,如list数组没有数据,应调用此方法,组件将不再派发滚动到底部事件

其他

具体用例可查看 example 文件夹内使用方法

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago