• 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)
  • 相关阅读:
    (转)MapReduce源码分析总结
    Linux SSH远程文件/目录传输命令scp
    Hadoop学习总结:MapReduce的过程解析
    Python 3 的新特性zz
    Tutorial Learn Python in 10 minutes[zz]
    Hadoop学习总结:Hadoop的运行痕迹
    Python 绝对简明手册
    Linux命令总结
    [Error] 'strlen' was not declared in this scope
    养成C#编程好习惯
  • 原文地址:https://www.cnblogs.com/hl2016-10-28/p/8583970.html
Copyright © 2020-2023  润新知