当前位置: 首页 > 文档资料 > FeArt 中文文档 >

Fetch 数据请求

优质
小牛编辑
123浏览
2023-12-01

Fetch 是一个支持下拉刷新及滚动加载的组件。因为这两个操作最终目的都是为了做数据请求,所以取名“Fetch”。

使用

<template>
  <div class="fetch-demo"
    style="position:absolute;top:0;left:0;bottom:0;right:0;">
    <Fetch @fetch="handleFetch">
      <div
        style="line-height:50px;border-bottom:1px solid #eee;"
        v-for="i in count"
        :key="i"
      >
        {{i}}
      </div>
    </Fetch>
  </div>
</template>
import { Fetch } from 'feart';
export default {
  name: 'fetch-demo',
  components: {
    Fetch,
  },
  data() {
    return {
      count: 20,
    };
  },
  methods: {
    handleFetch(resolve, type) {
      // setTimeout代表数据请求
      setTimeout(() => {
        if (type === 'PULL_REFRESH') {
          this.count = 20;
          resolve();
          return;
        }
        this.count += 20;
        const allLoad = this.count >= 60;
        resolve(allLoad);
      }, 2000);
    },
  },
};

注意事项

Fetch 的高度属性被设置为height: 100%,也就是说其高度由父元素决定,Fetch 自身不会撑起高度。使用 Fetch 时,需要用户为 Fetch 的父元素设置一个高度(通常是屏幕高度)。

Props

参数说明类型默认值
disableRefresh禁用下拉刷新Booleanfalse
disableScroll禁用滚动加载Booleanfalse
stopPropagation是否阻止滚动事件冒泡。用于防止嵌套问题Booleantrue
refreshLoadingText下拉刷新正在加载时的提示String''
scrollLoadingText滚动加载正在加载时的提示String'正在加载'
triggerText触发下拉刷新时的提示String'松开加载'
pullingText下拉时的提示String'下拉刷新'
allLoadedText数据完全加载完毕的提示String'没有更多了'

Events

事件说明参数
fetch触发下拉刷新或滚动加载时的回调函数fn(resolve, type)

NOTE: 根据type'PULL_REFRESH'|'SCROLL')获取此次触发回调的事件类型。当数据请求完成候,需要调用resolve()通知组件。对于滚动加载事件,当数据全部加载后调用resolve(true)的时候记得传入true

主动调用函数(this.$refs.fetch.fn

函数说明
scrollToTop内容滚动到顶部
clearState重置组件所有状态
reset同时执行上面两个函数
allLoaded行为等同于在滚动加载的回调中调用resolve(true)