Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mint-ui/mint-loadmore
A two-direction mobile load-more component for vue.js
https://github.com/mint-ui/mint-loadmore
Last synced: 13 days ago
JSON representation
A two-direction mobile load-more component for vue.js
- Host: GitHub
- URL: https://github.com/mint-ui/mint-loadmore
- Owner: mint-ui
- License: mit
- Created: 2016-05-12T04:13:10.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2016-10-28T15:08:14.000Z (about 8 years ago)
- Last Synced: 2024-04-11T21:34:26.358Z (7 months ago)
- Language: Vue
- Homepage:
- Size: 60.5 KB
- Stars: 317
- Watchers: 14
- Forks: 104
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-vue-cn - vue-loadmore - direction mobile pull-to-refresh component for Vuejs [@ElemeFE](https://github.com/ElemeFE) (Awesome Vue.js [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) / Libraries & Plugins)
- awesome-vue - mint-loadmore - ui/mint-loadmore?style=social) - VueJS的双向下拉刷新组件 (UI组件)
- awesome-github-vue - mint-loadmore - VueJS的双向下拉刷新组件 (UI组件)
- awesome-github-vue - mint-loadmore - VueJS的双向下拉刷新组件 (UI组件)
- awesome - mint-loadmore - VueJS的双向下拉刷新组件 (UI组件)
README
# Overview
vue-loadmore is a two-direction mobile pull-to-refresh component for vue.js.# Installation
```bash
$ npm install vue-loadmore
```# Usage
Import `vue-loadmore` to your project:
```Javascript
// ES6 mudule
import Loadmore from 'vue-loadmore';// CommonJS
const Loadmore = require('vue-loadmore').default;
```Register component:
```Javascript
Vue.component('loadmore', Loadmore);
```Then use it:
```html...
```
# Example
```html
- {{ item }}
```
Take upward direction for example: pull the component `topDistance` pixels away from the top and then release it, the function you appointed as `top-method` will run
```javascript
loadTop(id) {
...// load more data
this.$refs.loadmore.onTopLoaded(id);
}
```
At the end of your `top-method`, don't forget to manually execute the `onTopLoaded` event so that `mint-loadmore` removes `topLoadingText`. Note that a parameter called `id` is passed to `loadTop` and `onTopLoaded`. This is because after the top data is loaded, some reposition work is performed inside a `mint-loadmore` instance, and `id` simply tells the component which instance should be repositioned. You don't need to do anything more than passing `id` to `onTopLoaded` just as shown above.
For downward direction, things are similar. To invoke `bottom-method`, just pull the component `bottomDistance` pixels away from the bottom and then release it
```javascript
loadBottom(id) {
...// load more data
this.allLoaded = true;// if all data are loaded
this.$refs.loadmore.onBottomLoaded(id);
}
```
The only difference is that after all data are fetched, you can set `bottom-all-loaded` to `true` so that `bottom-method` will not run any more.
The ratio between the distance that your finger moves and the distance that the component actually scrolls can be defined using `distance-index`, whose default value is 2。
## Custom HTML templates
You can customize the top and bottom DOM using an HTML template
```html
- {{ item }}
↓
Loading...
```
For example, to customize the top DOM, you'll need to write your template with a `slot` attribute set to `top` and `class` set to `mint-loadmore-top`. When the component is scrolled, it will be in one of the three status below
* `pull`: if the component is being pulled yet not ready to drop (top distance is within the distance threshold defined by `topDistance`)
* `drop`: if the component is ready to drop
* `loading`: if `topMethod` is running
Every time the status changes, an event named `top-status-change` fires with a parameter indicating the current status of the component. So you can handle this change with a `handleTopChange` method just as the above example shows.
## Configure texts in top and bottom DOM
If you decide not to customize HTML templates, you can configure the texts that comes with `loadmore`. Take the top DOM for example, corresponding to the three `top-status` states, configurable options are: `topPullText`, `topDropText` and `topLoadingText`. And `bottomPullText`, `bottomDropText` and `bottomLoadingText` are for the bottom DOM.
## Auto fill
Upon loaded, `loadmore` will automatically check if it is tall enough to fill its container. If not, `bottom-method` will run until its container is filled. Turn off `auto-fill` if you'd rather handle this manually.
## API
| option | description | type | acceptable values | default |
|------|-------|---------|-------|--------|
| autoFill | if `true`, `loadmore` will check and fill its container | Boolean | | true |
| distanceIndex | the ratio between the distance of the finger moves and the component scrolls | Number | | 2 |
| maxDistance | maximum distance(in pixel) the component can scroll. Can be disabled by setting it to 0 | Number | | 0 |
| topPullText | top text when the component is being pulled down | String | | '下拉刷新' |
| topDropText | top text when the component is ready to drop | String | | '释放更新' |
| topLoadingText | top text while `topMethod` is running | String | | '加载中...' |
| topDistance | distance threshold that triggers `topMethod`(in pixel) | Number | | 70 |
| topMethod | upward load-more function | Function | | |
| bottomPullText | bottom text when the component is being pulled up | String | | '上拉刷新' |
| bottomDropText | bottom text when the component is ready to drop | String | | '释放更新' |
| bottomLoadingText | bottom text while `bottomMethod` is running | String | | '加载中...' |
| bottomDistance | distance threshold that triggers `bottomMethod`(in pixel) | Number | | 70 |
| bottomMethod | downward load-more function | Function | | |
| bottomAllLoaded | if `true`, `bottomMethod` can no longer be triggered | Boolean | | false |
## Events
| event name | description | parameters |
|------|-------|---------|
| top-status-change | the callback when the component's top status changes | current top status |
| bottom-status-change | the callback when the component's bottom status changes | current bottom status |
## Slot
| name | description |
|------|--------|
| - | data list |
| top | custom top HTML template |
| bottom | custom bottom HTML template |
# License
MIT