上面介绍一款vue挪动端下拉刷新和上拉加载组件,体积小运行快,应用起来很简略。

一个Vue.js 的下拉刷新和上拉加载组件。

通过提供简略的api易于应用。与其余组件库不同,它应用浏览器自身而不是js来作滚动容器,因而它的代码量更小,但不损失用户体验。

中文 | English

预览

在线demo

也能够扫描以下二维码拜访演示:

<img src="https://user-images.githubusercontent.com/20060839/145163261-02025f86-ac87-4016-859f-15677a6d3cf7.png" width="220" height="220" >

装置 & 应用

装置 npm 包

# npmnpm install vuejs-loadmore --save

全局导入

import Vue from 'vue';import VueLoadmore from 'vuejs-loadmore';Vue.use(VueLoadmore);

国际化反对

反对中文 zh-CN 和英文 en-US, 默认为 zh-CN。

import VueLoadmore from 'vuejs-loadmore';Vue.use(VueLoadmore, {  lang: 'en-US'})

你也能够应用 locale.use() 指定语言。

import VueLoadmore, { locale } from 'vuejs-loadmore';Vue.use(VueLoadmore);locale.use('en-US');

用法

根底用法

<vue-loadmore   :on-refresh="onRefresh"   :on-loadmore="onLoad"  :finished="finished">  <div v-for="(item, i) of list" :key="i"></div></vue-loadmore>

on-refreshon-loadmore 会在下拉刷新或滚动到底部时触发,须要在解决完数据申请后执行回调函数 done()

如果你不须要刷新,只须要不绑定on-refresh

当数据申请实现后,你能够将finished的数据改为true,这样就会显示没有更多了

export default {  data() {    return {      list: [],      page: 1,      pageSize: 10,      finished: false    };  },  mounted() {    this.fetch();  },  methods: {    onRefresh(done) {      this.list = [];      this.page = 1;      this.finished = false;      this.fetch();      done();    },    onLoad(done) {      if (this.page <= 10) {        this.fetch();      } else {        // all data loaded        this.finished = true;      }      done();    },    fetch() {      for (let i = 0; i < this.pageSize; i++) {        this.list.push(this.list.length + 1);      }      this.page++;    }  },}

谬误提醒

<vue-loadmore   :on-loadmore="onLoad"  :finished="finished"  :error.sync="error">  <div v-for="(item, i) of list" :key="i"></div></vue-loadmore>
export default {  data() {    return {      list: [],      finished: false,      error: false,    };  },  methods: {    onLoad() {      fetchSomeThing().catch(() => {        this.error = true;      });    },  },};

API

Props

AttributeDescriptionTypeDefault
on-refresh顶部下拉触发function-
pulling-text下拉显示文本string下拉刷新
loosing-text开释显示文本string开释刷新
loading-text正在刷新显示文本string正在刷新
success-text刷新实现显示文本string刷新实现
show-success-text是否显示success-textbooleantrue
pull-distance触发正在刷新状态的间隔_number \string_50
head-height正在刷新显示区域的高度_number \string_50
animation-duration下拉刷新动画持续时间_number \string_200
on-loadmore滚动到底部触发function-
immediate-check是否在mounted之后立刻查看booleantrue
load-offset当滚动条到底部的间隔小于 load-offset 时,会收回 on-loadmore_number \string_50
finished数据是否加载结束,扭转为true,则会显示finished-textbooleanfalse
error数据是否加载谬误,on-loadmore只有在点击谬误文本时才会触发,须要sync修饰符booleanfalse
loading-text滚动到底部正在加载显示文本string正在加载
finished-text滚动到底部加载结束的显示文本string没有更多了
error-text加载谬误显示文本string申请失败,点击从新加载

办法

应用 ref 获取 List 实例并调用实例办法。

NameDescription
checkScroll查看以后的滚动地位,若已滚动至底部,则会触发 on-loadmore

例子

查看demo以疾速理解如何应用此包。

git clone git@github.com:staticdeng/vuejs-loadmore.gityarn installyarn example:dev