zoukankan      html  css  js  c++  java
  • vue-scroller下拉刷新及无限加载组件学习之路

    在做vue相关的H5时用的vue-scroller来进行的分页,由于是第一次接触vue这个东西当时左好多东西都是懵懂的,在踩过无数个坑之后终于现在觉得自己比以前好很多了。

    1:本人用的vue-cli搭建的项目

    2:用npm install vue-scroller --save下载对应的包

    3:在入口文件import scroller from "vue-scroller" 接下来就是vue.use(scroller);

    4:直接在组件中运用scroller插件

    <template>
        <scroller delegate-id="myScroller" :on-refresh="refresh" :on-infinite="loadMore"
        v-ref:my_scroller>
            <div v-for="(index, item) in items" @click="onItemClick(index, item)"
            class="row" :class="{'grey-bg': index % 2 == 0}">
                {{ item }}
            </div>
        </scroller>
    </template>
    <script>
        import Scroller from 'vue-scroller'export
    default {
            components:
            {
                Scroller
            },
            data() {
                return {
                    items: []
                }
            },
            ready() {
                for (let i = 1; i <= 20; i++) {
                    this.items.push(i + ' - keep walking, be 2 with you.')
                }
                this.top = 1 this.bottom = 20 setTimeout(() = >{
                    /* 下面2种方式都可以调用 resize 方法 */
                    // 1. use scroller accessor
                    $scroller.get('myScroller').resize()
                    // 2. use component ref
                    // this.$refs.my_scroller.resize()
                })
            },
            methods: {
                refresh() {
                    setTimeout(() = >{
                        let start = this.top - 1
                        for (let i = start; i > start - 10; i--) {
                            this.items.splice(0, 0, i + ' - keep walking, be 2 with you.')
                        }
                        this.top = this.top - 10;
                        /* 下面3种方式都可以调用 finishPullToRefresh 方法 */
                        // this.$broadcast('$finishPullToRefresh')
                        $scroller.get('myScroller').finishPullToRefresh()
                        // this.$refs.my_scroller.finishPullToRefresh()
                    },
                    1500)
                },
                loadMore() {
                    setTimeout(() = >{
                        let start = this.bottom + 1
                        for (let i = start; i < start + 10; i++) {
                            this.items.push(i + ' - keep walking, be 2 with you.')
                        }
                        this.bottom = this.bottom + 10;
                        setTimeout(() = >{
                            $scroller.get('myScroller').resize()
                        })
                    },
                    1500)
                },
                onItemClick(index, item) {
                    console.log(index)
                }
            }
        }
    </script>
    

      接下来要说的是scroller提供的一些方法:

      • resize :Void
      • triggerPullToRefresh :Void
      • Void finishPullToRefresh :Void
      • scrollTo(x:Integer, y:Integer, animate:Boolean) :Void
      • scrollBy(x:Integer, y:Integer, animate:Boolean) :Void
      • getPosition :Object
    Vue.use(VueScroller)
  • 相关阅读:
    张一鸣:平常心做非常事|字节跳动9周年演讲全文
    实验二:分词
    helm部署EFK收集应用日志,ingress-nginx日志解析。
    Terraform
    Windows 11 下载
    Kubernetes Pod中容器的Liveness、Readiness和Startup探针
    Kubernetes使用Keda进行弹性伸缩
    K8s 部署 Prometheus + Grafana
    CSDN & 博客园
    zipkin,pinpoint和skywalking对比
  • 原文地址:https://www.cnblogs.com/hl2016-10-28/p/8583970.html
Copyright © 2011-2022 走看看