Skip to content
This repository has been archived by the owner. It is now read-only.
/ vue-pull-to Public archive

⚡️ A pull-down refresh and pull-up load more and infinite scroll component for Vue.js --Vue下拉刷新组件

License

Notifications You must be signed in to change notification settings

stackjie/vue-pull-to

Repository files navigation

Vue-Pull-To

A pull-down refresh and pull-up load more and infinite scroll component for Vue.js.

zh-CN中文文档

Build Status Coverage Status GitHub issues GitHub stars GitHub license npm

Live Examples

qrcode

examples

Installation

 npm install vue-pull-to --save

Usage

<template>
  <div>
    <pull-to :top-load-method="refresh">
      <ul v-for="item in dataList">
        <li>{{ item }}</li>
      </ul>
    </pull-to>
  </div> 
</template>

<script>
  import PullTo from 'vue-pull-to'
  import { fetchDataList } from 'api'
  
  export default {
    name: 'example',
    components: {
      PullTo
    },
    data() {
      return {
        dataList: []
      }
    },
    methods: {
      refresh(loaded) {
       fetchDataList()
        .then((res) => {
          this.dataList = res.data.dataList
          loaded('done')
        })
      }
    }
  }
</script>

The component will occupy 100% height of the parent element by default. props top-load-method and bottom-load-method will default to a loaded parameter, which is a function that changes the state of the component's load, and must be called once loaded. The component will always be loaded, if loaded('done') The internal state of the component will become a successful state of loading, loaded('fail') for the failure.

More usage examples

API Docs

props

Attribute Description type Default
distance-index Slip the threshold (the greater the value the slower the sliding) Number 2
top-block-height The height of the block element area outside the top of the scroll container Number 50
bottom-block-height The height of the block element area outside the scrolling container Number 50
wrapper-height The height of the scrolling container String '100%'
top-load-method Top drop-down method Function
bottom-load-method Bottom pull-up method Function
is-throttle-top-pull Whether the disable of the top-pull throttle event is triggered to ensure performance if the real-time trigger is set to false Boolean true
is-throttle-bottom-pull Whether the disable of the bottom-pull throttle event is triggered to ensure performance if the real-time trigger is set to false Boolean true
is-throttle-scroll Whether the disable of the scroll throttle event is triggered to ensure performance if the real-time trigger is set to false Boolean true
is-touch-sensitive Whether to handle touch events Boolean true
is-scroll-sensitive Whether to handle scroll events Boolean true
is-top-bounce Whether to enable the pull-down bounce effect Boolean true
is-bottom-bounce Whether to enable the pull-up bounce effect Boolean true
is-bottom-keep-scroll Whether to make the scroll container stay in place after completing the pull-down method Boolean false
top-config Configuration for the topmost part of the scroll container Object default config
bottom-config Configuration for the bottommost part of the scroll container Object default config

topConfig and bottomConfig Configurable options and default configuration item values

const TOP_DEFAULT_CONFIG = {
  pullText: '下拉刷新', // The text is displayed when you pull down
  triggerText: '释放更新', // The text that appears when the trigger distance is pulled down
  loadingText: '加载中...', // The text in the load
  doneText: '加载完成', // Load the finished text
  failText: '加载失败', // Load failed text
  loadedStayTime: 400, // Time to stay after loading ms
  stayDistance: 50, // Trigger the distance after the refresh
  triggerDistance: 70 // Pull down the trigger to trigger the distance
}

const BOTTOM_DEFAULT_CONFIG = {
  pullText: '上拉加载',
  triggerText: '释放更新',
  loadingText: '加载中...',
  doneText: '加载完成',
  failText: '加载失败',
  loadedStayTime: 400,
  stayDistance: 50,
  triggerDistance: 70
}

slots

Name Description scope
default The default slot scrolls the contents of the container
top-block Scroll the contents of the top of the container outer (support the scope slot need to use template tag with scope attribute) state:Current state、state-text:State corresponding to the text
bottom-block Scroll the contents of the bottom of the container outer (support the scope slot need to use template tag with scope attribute) state:Current state、state-text:State corresponding to the text

events

name Description
top-state-change When the top state has changed, the first parameter is the current state
bottom-state-change When the bottom state has changed, the first parameter is the current state
top-pull Pull down the trigger, the first parameter for the current pull of the distance value, the default will be throttle, config isThrottle to real-time trigger
bottom-pull Pull up the trigger, the first parameter for the current pull of the distance value, the default will be throttle, config isThrottle to real-time trigger
infinite-scroll Triggered when the scroll container scrolls to the end
scroll When scrolling, the event callback function, the first parameter, is the native event object