UNPKG

infinite-loading

Version:

vue-infinite-loading based on bedlate's vue-data-loading

203 lines (107 loc) 4.03 kB
# vue-data-loading [English Document](https://github.com/bedlate/vue-data-loading) > 一个为滚动加载及下拉/上拉加载而生的组件. 这是一个演示: [HackNews](http://hacknews.xyz) ![vue-data-loading](https://github.com/bedlate/vue-data-loading/raw/master/screenshot.gif) ## 安装 npm install vue-data-loading --save ## 使用 首先导入: import VueDataLoading from 'vue-data-loading' 注册为组件: components: { VueDataLoading }, 你唯一需要做的就是用 `vue-data-loading` 标签将数据包裹起来. <vue-data-loading> <ul> <li v-for="(item, index) in list" :key="index">Item: {{item}}</li> </ul> </vue-data-loading> 另外,你也可以传入 `props``events` 参数到组件. <vue-data-loading :loading="loading" :listens="['pull-down', 'infinite-scroll']" @infinite-scroll="infiniteScroll" @pull-down="pullDown"> <!--your data here--> </vue-data-loading> 有时候你也能想修改默认的样式或文字,非常简单,只要编辑对应的 `slot` 即可: 举个 `infinite-scroll-loading` 的例子: *默认*: <slot :name="infinite-scroll-loading">加载中...</slot> *编辑*: <div slot="infinite-scroll-loading" class="some-style-you-like"> <img src="/path/to/your-icon.png"> <span>loading...</span> </div> 这里有个 [完整的示例](https://github.com/bedlate/vue-data-loading/blob/master/example/App.vue) ## API ### 属性 #### loading 类型: boolean 默认: false 当 `loading``true` 时将不会触发任何事件, 所以你可以使用它来控制加载数据. #### completed 类型: boolean 默认: false 当设置为 `true` 时将不会再触发 `infinite-scroll` 事件. 当所有数据全部加载完毕后,建议设置为 `true` #### init-scroll 类型: boolean 默认: false 如果设置为 `true` 时,组件加载完毕后将会触发一次 `infinite-scroll` 事件. 通常用来处理页面首次加载时候接收数据. #### distance 类型: number 默认: 60 单位: px 仅对 `touch*` 事件有效, 当下/上拉距离不小于设置的值的时候, `pull-down``pull-up` 事件将被触发. #### offset 类型: number 默认: 0 单位: px 有时候你可能希望调节距离底部的距离,来提前触发 `infinite-scroll` #### listens 类型: array 默认: ['infinite-scroll', 'pull-down', 'pull-up'] 不在数组中的事件将不会被触发. #### container 类型: string 必须: false 所有事件 `events` 默认绑定在 `window` ,如果你想自定义外层容器,需要指定其 `ref` . #### watch-scroll 类型: boolean 默认: false 如果为 `true` 组件将会触发 `scrolling` 事件. 用来获取 `container` `scrollTop``scrollLeft` 属性. ### 事件 #### infinite-scroll 当容器已经达到窗口底部时触发 #### pull-down 当容器已经下拉超过 `distance` 属性时触发 #### pull-up 当容器已经上拉超过 `distance` 属性时触发 #### scrolling 当容器滚动时触发. 有个回调参数,返回当前容器的 (scrollTop, scrollLeft). ### Slots #### infinite-scroll-loading 当已经滚动到窗口底部,且正在 `loading` 时显示 #### pull-down-before 当正在下拉,且下拉距离小于 `distance` 属性显示 #### pull-down-ready 当正在下拉,且下拉距离不小于 `distance` 属性显示 #### pull-down-loading 当正在下拉,且下拉距离不小于 `distance` 属性,且松手时数据正在 `loading` 时显示 #### pull-up-before 当正在上拉,且上拉距离小于 `distance` 属性显示 #### pull-up-ready 当正在上拉,且上拉距离不小于 `distance` 属性显示 #### pull-up-loading 当正在上拉,且上拉距离不小于 `distance` 属性,且松手时数据正在 `loading` 时显示 ## 开发 ``` bash # 安装依赖 npm install # 运行示例 localhost:8080 npm run dev # 编译 vue-data-loading 组件 npm run dist ```