vue-cli中vue-scroller的詳細(xì)用法参萄,上拉加載下拉刷新,vue-axios獲取數(shù)據(jù)的詳細(xì)過程

vue目前是眾所周知的流行框架大家都知道的煎饼,vue全家桶的成員是:vue-cli,vuex,vue-router,vue-axios(vue2.0)讹挎。然后它的第三方插件也有很多筒溃,比如:vue-scroller,vue-lazyload,vue-awesome-swiper等等的。

之前我已經(jīng)給大家介紹過vue-lazyload的用法了浑测,今天就給大家說一下vue-scroller的用法吧歪玲。

首先在命令行進(jìn)行npm||cnpm||bower下載

npm install vue-scroller -D

:::!!! -D:就是 --save -dev

然后在你想要用scrolle的那個頁面里將咱們剛才下載的東西引入

  import Vue from 'vue'
  import VueScroller from 'vue-scroller'
  Vue.use(VueScroller)

這個插件主要是標(biāo)簽<scroller>,誰需要進(jìn)行上拉加載下拉刷新就給誰加。然后里面有:on-refresh="refresh"&&:on-infinite="infinite" || ref="domName"

:::!!! ref是獲取dom元素的岖圈。
this.$refs.myscroller.resize()//重置大小=>myscroller是上面ref定義的dom元素的名字
this.$refs.myscroller.finishInfinite(2);//沒有數(shù)據(jù)時的處理函數(shù)
然后在methods對象里加入兩個函數(shù):infinite()&&refresh()

infinite(done) {
  if(this.noData) {
    setTimeout(()=>{
      this.$refs.myscroller.finishInfinite(2);
      })
    return;
    }
    let self = this;//this指向問題
    let start = this.moveList.length;

    setTimeout(() => {
    for(let i = start + 1; i < start + 10; i++) {
      self.moveList.push(i)
    }
    if(start > 30) {
      self.noData = "沒有更多數(shù)據(jù)"
    }
    self.$refs.myscroller.resize();
      done()
    }, 1500)
 }

//done()表示這次異步加載數(shù)據(jù)完成幅狮,加載下一次
//因?yàn)檫@個是同步的株灸,加了setTimeout就是異步加載數(shù)據(jù);
//因?yàn)樯婕暗絫his指向問題逐抑,所以將他放在一個變量里屹蚊。
refresh() {
    console.log('refresh')
  }

整體頁面分布.png

index.vue//因?yàn)槲以谶@個組件里需要scroller

```
<template>
<div class="index-wrapper">

    <scroller :on-infinite="infinite" ref="myscroller">
        <div class="index-header">
            <div class="positionbar">
                <div class="position-box">
                    <i class="icon iconfont icon-dingwei"></i>
                    <span class="text">
        東城區(qū)北京市政府
      </span>
                </div>
                <div class="weather-box">
                    <div class="du">
                        <h2>28℃</h2>
                        <p>多云天</p>
                    </div>
                    <img class="could" src="http://fuss10.elemecdn.com/2/52/5383cfd55c8ba454449f63f54ce2apng.png?imageMogr/format/webp/thumbnail/!69x69r/gravity/Center/crop/69x69/" alt="">
                </div>
            </div>
            <div class="search-box">
                搜索商家汹粤、商品
            </div>
            <div class="swiper-box">
                <div class="swiper-container" id="line-slide">
                    <div class="swiper-wrapper">
                        <div class="swiper-slide" style="width:auto">煎餅</div>
                        <div class="swiper-slide" style="width:auto">蝦飯先生</div>
                        <div class="swiper-slide" style="width:auto">蛋撻 </div>
                        <div class="swiper-slide" style="width:auto">立秋進(jìn)補(bǔ)</div>
                        <div class="swiper-slide" style="width:auto">我的屏 </div>
                        <div class="swiper-slide" style="width:auto">鮮榨果汁</div>
                        <div class="swiper-slide" style="width:auto">石鍋拌飯</div>
                        <div class="swiper-slide" style="width:auto">黃燜雞</div>
                        <div class="swiper-slide" style="width:auto">蝦</div>
                    </div>
                    <!-- 如果需要滾動條 -->
                    <div class="swiper-scrollbar"></div>
                </div>
            </div>

        </div>
        <div class="slide-box">
            <div class="swiper-container" id="button-menu">
                <div class="swiper-wrapper">
                    <div class="swiper-slide">
                        <ul class="btn-group">
                            <li>
                                <a href="javascript:;">
                                    <img src="http://fuss10.elemecdn.com/b/7e/d1890cf73ae6f2adb97caa39de7fcjpeg.jpeg?imageMogr/format/webp/thumbnail/!90x90r/gravity/Center/crop/90x90/" alt="">
                                    <span>美食</span>
                                </a>
                            </li>
                            <li>
                                <a href="javascript:;">
                                    <img src="http://fuss10.elemecdn.com/2/35/696aa5cf9820adada9b11a3d14bf5jpeg.jpeg?imageMogr/format/webp/thumbnail/!90x90r/gravity/Center/crop/90x90/" alt="">
                                    <span>甜品飲品</span>
                                </a>
                            </li>
                            <li>
                                <a href="javascript:;">
                                    <img src="http://fuss10.elemecdn.com/0/da/f42235e6929a5cb0e7013115ce78djpeg.jpeg?imageMogr/format/webp/thumbnail/!90x90r/gravity/Center/crop/90x90/" alt="">
                                    <span>商超便利</span>
                                </a>
                            </li>
                            <li>
                                <a href="javascript:;">
                                    <img src="http://fuss10.elemecdn.com/d/49/7757ff22e8ab28e7dfa5f7e2c2692jpeg.jpeg?imageMogr/format/webp/thumbnail/!90x90r/gravity/Center/crop/90x90/" alt="">
                                    <span>預(yù)定早餐</span>
                                </a>
                            </li>
                            <li>
                                <a href="javascript:;">
                                    <img src="http://fuss10.elemecdn.com/c/db/d20d49e5029281b9b73db1c5ec6f9jpeg.jpeg?imageMogr/format/webp/thumbnail/!90x90r/gravity/Center/crop/90x90/" alt="">
                                    <span>果蔬生鮮</span>
                                </a>
                            </li>
                            <li>
                                <a href="javascript:;">
                                    <img src="http://fuss10.elemecdn.com/a/fa/d41b04d520d445dc5de42dae9a384jpeg.jpeg?imageMogr/format/webp/thumbnail/!90x90r/gravity/Center/crop/90x90/" alt="">
                                    <span>新店特惠</span>
                                </a>
                            </li>
                            <li>
                                <a href="javascript:;">
                                    <img src="http://fuss10.elemecdn.com/3/84/8e031bf7b3c036b4ec19edff16e46jpeg.jpeg?imageMogr/format/webp/thumbnail/!90x90r/gravity/Center/crop/90x90/" alt="">
                                    <span>準(zhǔn)時達(dá)</span>
                                </a>
                            </li>
                            <li>
                                <a href="javascript:;">
                                    <img src="http://fuss10.elemecdn.com/d/38/7bddb07503aea4b711236348e2632jpeg.jpeg?imageMogr/format/webp/thumbnail/!90x90r/gravity/Center/crop/90x90/" alt="">
                                    <span>午餐</span>
                                </a>
                            </li>
                        </ul>
                    </div>
                    <div class="swiper-slide">
                        <ul class="btn-group">
                            <li>
                                <a href="javascript:;">
                                    <img src="http://fuss10.elemecdn.com/b/7f/432619fb21a40b05cd25d11eca02djpeg.jpeg?imageMogr/format/webp/thumbnail/!90x90r/gravity/Center/crop/90x90/" alt="">
                                    <span>漢堡薯?xiàng)l</span>
                                </a>
                            </li>
                            <li>
                                <a href="javascript:;">
                                    <img src="http://fuss10.elemecdn.com/2/17/244241b514affc0f12f4168cf6628jpeg.jpeg?imageMogr/format/webp/thumbnail/!90x90r/gravity/Center/crop/90x90/" alt="">
                                    <span>包子粥店</span>
                                </a>
                            </li>
                            <li>
                                <a href="javascript:;">
                                    <img src="http://fuss10.elemecdn.com/8/83/171fd98b85dee3b3f4243b7459b48jpeg.jpeg?imageMogr/format/webp/thumbnail/!90x90r/gravity/Center/crop/90x90/" alt="">
                                    <span>鮮花蛋糕</span>
                                </a>
                            </li>
                            <li>
                                <a href="javascript:;">
                                    <img src="http://fuss10.elemecdn.com/3/c7/a9ef469a12e7a596b559145b87f09jpeg.jpeg?imageMogr/format/webp/thumbnail/!90x90r/gravity/Center/crop/90x90/" alt="">
                                    <span>麻辣燙</span>
                                </a>
                            </li>
                            <li>
                                <a href="javascript:;">
                                    <img src="http://fuss10.elemecdn.com/a/8a/ec21096d528b7cfd23cdd894f01c6jpeg.jpeg?imageMogr/format/webp/thumbnail/!90x90r/gravity/Center/crop/90x90/" alt="">
                                    <span>地方菜系</span>
                                </a>
                            </li>
                            <li>
                                <a href="javascript:;">
                                    <img src="http://fuss10.elemecdn.com/7/b6/235761e50d391445f021922b71789jpeg.jpeg?imageMogr/format/webp/thumbnail/!90x90r/gravity/Center/crop/90x90/" alt="">
                                    <span>披薩意面</span>
                                </a>
                            </li>
                            <li>
                                <a href="javascript:;">
                                    <img src="http://fuss10.elemecdn.com/6/d2/de0683a49a0655c728b70fdb344d5jpeg.jpeg?imageMogr/format/webp/thumbnail/!90x90r/gravity/Center/crop/90x90/" alt="">
                                    <span>異國料理</span>
                                </a>
                            </li>
                        </ul>
                    </div>
                </div>
                <!-- 如果需要分頁器 -->
                <div class="swiper-pagination"></div>
            </div>
        </div>
        <div class="shop-box">
            <ul>
                <li v-for="m in movieList">
                    <h4>{{m}}</h4>
                </li>
            </ul>
        </div>
    </scroller>
    <footerbar></footerbar>
</div>
</template>
<script>
    import Vue from 'vue'
    import VueScroller from 'vue-scroller'
    import footerbar from '@/components/footerbar'
    import VueAwesomeSwiper from 'vue-awesome-swiper'
    Vue.use(VueScroller);
    export default {
        data() {
            return {
                noData: '',
            moveList: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
            }
        },
        components: {
            footerbar
        },
        mounted() {
            var mySwiper = new Swiper('#line-slide', {
                slidesPerView: 6,
                scrollbar: '.swiper-scrollbar',
                slidesPerView: 'auto'
            })
            var menuSwiper = new Swiper('#button-menu', {
                direction: 'horizontal',
                loop: true,
                // 如果需要分頁器
                pagination: '.swiper-pagination',

                // 如果需要前進(jìn)后退按鈕
                nextButton: '.swiper-button-next',
                prevButton: '.swiper-button-prev',
            })
        },
        methods: {
            infinite(done) {
                console.log(this.noData)
                if(this.noData) {
                setTimeout(()=>{
                    this.$refs.myscroller.finishInfinite(2);
                })
                return;
                }
                let self = this;
                let start = this.moveList.length;

                setTimeout(() => {
                    for(let i = start + 1; i < start + 10; i++) {
                        self.moveList.push(i)
                    }
                    if(start > 30) {
                        self.noData = "沒有更多數(shù)據(jù)"
                    }
                    self.$refs.myscroller.resize();
                    done()
                }, 1500)

            },
            refresh() {
                console.log('refresh')
            }

        }
    }
</script>

<style lang="less">
    @import '../../static/less/var.less';
    .index-wrapper {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        bottom: @base*100rem;
        background: #F5F5F5;
        .index-header {
            background: @mc;
            height: @base*204rem;
            padding: @base*20rem @base*28rem;
        }
        .positionbar {
            height: @base*69rem;
            display: flex;
            justify-content: space-between;
            color: #fff;
            .position-box {
                line-height: @base*69rem;
                width: @base*417rem;
            }
            .weather-box {
                width: @base*136rem;
                display: flex;
                .du {
                    /*border:1px solid;*/
                    width: @base*90rem;
                    height: @base*69rem;
                    h2 {
                        font-size: @base*18rem;
                        margin: 0;
                    }
                    p {
                        margin: 0;
                        padding: 0;
                        font-size: @base*14rem;
                    }
                }
                .could {
                    display: block;
                    width: @base*50rem;
                    height: @base*70rem;
                }
            }
        }
        .search-box {
            height: @base*70rem;
            margin: @base*15rem;
            padding: @base*1rem;
            color: @fc1;
            text-align: center;
            background: #fff;
            border-radius: 20px;
            line-height: @base*70rem;
            font-size: @base*20rem;
        }
        #line-slide {
            overflow: hidden;
            color: #fff;
            .swiper-slide {
                margin-right: @base*20rem;
                font-size: @base*20rem;
                text-align: center;
                a {
                    color: #fff;
                }
            }
        }
    }
    
    .slide-box {
        background: #fff;
        height: @base*354rem;
        .swiper-slide {
            height: @base*354rem;
        }
        .swiper-pagination-bullet-active {
            background: #000;
            opacity: 0.6;
        }
        ul {
            padding: @base*10rem 0;
            display: flex;
            flex-wrap: wrap;
            li {
                padding: @base*10rem 0;
                width: 25%;
                text-align: center;
                a {
                    display: inline-block;
                    text-align: center;
                    width: 100%;
                    height: 100%;
                    color: #666;
                    text-decoration: none;
                    img {
                        display: block;
                        margin-left: 25%;
                        width: 50%;
                        height: 50%;
                    }
                    span {
                        font-size: @base*16rem;
                    }
                }
            }
        }
    }
</style>

有疑問可以在下面評論問我通孽,
如下是我的訂閱號


微信圖片_20180628192403.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末背苦,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子疫剃,更是在濱河造成了極大的恐慌硼讽,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件壤躲,死亡現(xiàn)場離奇詭異备燃,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)并齐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門况褪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人测垛,你說我怎么就攤上這事『叛模” “怎么了锯七?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵眉尸,是天一觀的道長。 經(jīng)常有香客問我效五,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任戒劫,我火速辦了婚禮,結(jié)果婚禮上迅细,老公的妹妹穿的比我還像新娘。我一直安慰自己湘换,他們只是感情好统阿,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布扶平。 她就那樣靜靜地躺著帆离,像睡著了一般结澄。 火紅的嫁衣襯著肌膚如雪麻献。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天王悍,我揣著相機(jī)與錄音餐曼,去河邊找鬼。 笑死源譬,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的刮刑。 我是一名探鬼主播养渴,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼翘紊!你這毒婦竟也來了藐唠?” 一聲冷哼從身側(cè)響起鹉究,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤踪宠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后绍妨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體柬脸,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年孤页,在試婚紗的時候發(fā)現(xiàn)自己被綠了涩馆。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡蛾号,死狀恐怖涯雅,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情精刷,我是刑警寧澤蔗候,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布锈遥,位于F島的核電站所灸,受9級特大地震影響爬立,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜知纷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一陵霉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧乍桂,春花似錦效床、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至运嗜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間砸民,已是汗流浹背奋救。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留演侯,地道東北人利耍。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像程癌,于是被迫代替她去往敵國和親轴猎。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載 :OpenDiggawesome-github-vue 是由OpenDigg整理并維護(hù)的Vue相關(guān)開源項(xiàng)目庫...
    果汁密碼閱讀 23,128評論 8 124
  • UI組件element ★11612 - 餓了么出品的Vue2的web UI工具套件 Vux ★7503 - 基于...
    董董董董董董董董董大笨蛋閱讀 8,519評論 6 123
  • 本人叫沈琳中鼠,女沿癞,已經(jīng)11歲,六年級椎扬,1.69了!最最最最(此處xN個最)好的閨蜜有兩個。一個叫椿玲青筐赔,一個叫奈莉。...
    夢怡瓔閱讀 282評論 0 1
  • 注意力VS時間 時間是游走于身體之外的客觀存在茴丰,沒辦法通過自己的主觀意愿和控制去延長或者縮短天吓;而注意力是內(nèi)在可控的...
    Dillon_2017閱讀 166評論 0 0
  • 計算機(jī)革命起源于機(jī)器失仁,但計算機(jī)遠(yuǎn)非機(jī)器那么簡單。計算機(jī)更像我們頭腦的一部分萄焦,就如同頭腦延伸的工具。通過計算...
    浩文_f7ff閱讀 199評論 0 0