vue-slide-for-more
Version:
A vuejs(vue2) component for loading more data when the content was slide to the bottom on mobile, provided refresh function, supported SSR
115 lines (94 loc) • 4.46 kB
Markdown
[](https://www.npmjs.com/package/vue-slide-for-more)
[](https://www.npmjs.com/package/vue-slide-for-more)


> `pkg.module supported`, which means that you can apply tree-shaking in you project
A vuejs(vue2) component for loading more data when the content was slide to the bottom on mobile, provided refresh function, supported SSR.
## repository
https://github.com/livelybone/vue-slide-for-more.git
## Demo
https://livelybone.github.io/vue/vue-slide-for-more/
## Installation
```bash
npm i vue-slide-for-more -S
```
## Global name
`VueBtn`
## Register the component
```javascript
// import all
import {SlideForMore, SlideForMoreBase} from 'vue-slide-for-more';
// import what you just need
import SlideForMore from 'vue-slide-for-more/lib/umd/SlideForMore';
// or
import SlideForMoreBase from 'vue-slide-for-more/lib/umd/SlideForMoreBase';
// Global register
Vue.component('slide-for-more', SlideForMore);
Vue.component('slide-for-more-base', SlideForMoreBase);
// Local register
new Vue({
components:{SlideForMore, SlideForMoreBase}
})
```
Use in html, see what your can use in [CDN: unpkg](https://unpkg.com/vue-slide-for-more/lib/umd/)
```html
<-- use what you want -->
<script src="https://unpkg.com/vue-slide-for-more/lib/umd/<--module-->.js"></script>
```
```html
// template
<template>
<SlideForMoreBase
tipHeight="40px"
:slideValue="100"
:isSearching="isSearching">
<div class="top-tip" slot="topTip">{{isSearching?'正在刷新...':'刷新'}}</div>
<div v-for="el in list">{{el}}</div>
<div class="bottom-tip" slot="tip">{{isSearching?'正在查询...':'获取更多'}}</div>
</SlideForMoreBase>
</template>
```
```html
// template. SlideForMore is a simple packaging of SlideForMoreBase
<template>
<SlideForMore
tipHeight="40px"
:slideValue="100"
:isSearching="false">
<div v-for="el in list">{{el}}</div>
</SlideForMore>
</template>
```
| Name | Type | DefaultValue | Description |
| -------------------- | ----------------------------------------- | ------------- | ------------ |
| `tipHeight` | `String` | `40px` | Used to set the height of both `div.slide-for-more-top-tip-wrap` which shows refreshing and `div.slide-for-more-tip-wrap` which shows loading more |
| `slideValue` | `Number` | `100` (px) | Used to set min value of slide distance to trigger events |
| `isSearching` | `Boolean` | `false` | Used to tell the component whether you are searching or not. If you are searching, it will show the loading text. `This is an important prop` |
| Name | EmittedData | Description |
| --------------------- | --------------------- | ------------------------------------------------- |
| `refresh` | none | Event for refresh |
| `slideDown` | none | An alias of `refresh` event |
| `loadMore` | none | Event for load more |
| `slideUp` | none | An alias of `loadMore` event |
For building style, you can use the css or scss file in lib directory.
```js
// scss
import 'node_modules/vue-slide-for-more/lib/css/index.scss'
// css
import 'node_modules/vue-slide-for-more/lib/css/index.css'
```
Or
```scss
// scss
@import 'node_modules/vue-slide-for-more/lib/css/index.scss';
// css
@import 'node_modules/vue-slide-for-more/lib/css/index.css';
```
Or, you can build your custom style by copying and editing `index.scss`