最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vux-scroller實現(xiàn)移動端上拉加載功能過程解析

 更新時間:2019年10月08日 09:03:18   作者:有夢想的咸魚前端  
這篇文章主要介紹了vux-scroller實現(xiàn)移動端上拉加載功能過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

本文將講述vue-cli+vux-scroller實現(xiàn)移動端的上拉加載功能:

糾錯聲明:網(wǎng)上查閱資料看到很多人都將vux和vuex弄混,在這里我們先解釋一下,vuex是vue框架自帶的組件,是數(shù)據(jù)狀態(tài)管理工具,vux是一款移動端的UI組件庫;

vux(官方文檔:https://doc.vux.li/zh-CN/)是基于WeUi和vue(2.x)開發(fā)的移動端的UI組件庫,主要服務(wù)于微信頁面?;趙ebpack+vue-loader+vux可以快速開發(fā)移動端頁面,配合vux-loader方便你在WeUi的基礎(chǔ)上定制需要的樣式。vux-loader保證了組件按需使用,因此不用擔(dān)心最終打包了整個vux的組件庫代碼。vux并不完全依賴于WeUi,vux在WeUi的基礎(chǔ)上擴展了多個常用組件,但是盡量保持整體UI樣式接近WeUi的設(shè)計規(guī)范。

首先我們需要安裝vux的依賴包,命令如下:

npm install vux --save 

官方文檔聲明了vux必須配合vux-loader一起使用,所以我們需要在build/webpack.base.conf.js里參照如下代碼進行配置:

const vuxLoader = require('vux-loader')
const webpackConfig = originalConfig // 原來的 module.exports 代碼賦值給變量 webpackConfig

module.exports = vuxLoader.merge(webpackConfig, {
 plugins: ['vux-ui']
})

vux的Scroller組件為我們提供了上拉加載和下拉刷新等功能,雖然官方文檔已經(jīng)聲明了不再更新此組件,但是目前的版本基本滿足于我們的日常開發(fā),所以還是可以使用的;

我們在組件中使用的時候是需要引入對應(yīng)組才能進行使用的;

import { Scroller } from 'vux'

HTML視圖層代碼:

  //height是設(shè)置滾動區(qū)域高度,vux對該組件聲明的不夠詳細,多次調(diào)試-170是可以使用,如有更好的算法或者理解歡迎跟博主溝通交流
  //on-scroller-bottom 滾動事件 這個事件在滾動的時候會進行多次觸發(fā)
  //scroll-bottom-offst 在底部什么位置觸發(fā)事件,這里配置的是距離底部200px的地方滑動就可以觸發(fā)
  //ref 給scroller組件添加ref方便操作DOM,這是個小技巧,后面會用到
 <scroller height="-170" lock-x @on-scroll-bottom="onScrollBottom" :scroll-bottom-offst="200" ref="scrollerBottom">
  //scroller標(biāo)簽內(nèi)部必須包裹一層div,小技巧,不然會出現(xiàn)滑不到底部的問題
  // 這個div的高度必須要高于底部滾動區(qū)域的高度,不然滾動不了
   <div>
      <p>滾動內(nèi)容區(qū)域</p>
   </div> 
    
    //這個div是展示提示信息的
    <div>
    <div id="title" style="width:100%;text-align:center;height:30px;ling-height:30px;margin-top:20px;">上拉加載更多</div>
    </div>
 </scroller>

js數(shù)據(jù)邏輯層代碼:

  // 上拉加載滑動的方法
  onScrollBottom () {
    //onFetching是個狀態(tài)變量,默認(rèn)值設(shè)為false來進行控制觸發(fā)事件及更改提示信息
   if (this.onFetching) {
   } else {
    //默認(rèn)值onFetching為false,所以提示信息首先就是加載中,我們這里用的是原生的DOM操作方法
    document.getElementById("title").innerHTML="加載中...";
     //onFetching賦值為true,下次觸發(fā)的時候會觸發(fā)onFetching為true的情況
    this.onFetching = true;
    setTimeout(() => {
       //此處的pageNum是當(dāng)前頁碼,默認(rèn)為1,每滑動一次都this.pageNum++然后傳入?yún)?shù)調(diào)用接口
      this.pageNum+=1;
      this.$nextTick(() => {
      this.$refs.scrollerBottom.reset()
     })
        //后臺請求接口
      this.$http({
       url:"traderecords/getPersonTradDetail",
       method:"get",
       params:{
         pageSize:10,
          //動態(tài)的給pageNum賦值,保證每次的參數(shù)都不一樣,后臺傳過來的數(shù)據(jù)也不一樣
         pageNum:this.pageNum,
         brandId:this.$route.query.brandId,
         date:this.value2
       }
     }).then((res)=>{ 
       console.log(res.data.data.rowMaps);
        //如果接口請求成功
       if(res.data.code==200){
          //接口請求成功并且返回的數(shù)組的長度<10不夠一頁的時候
        if(res.data.data.rowMaps.length<10){
          // end是控制提示信息的,不觸發(fā)滑動的時候是不展示的,默認(rèn)值為false
         this.end=true;
          //返回的數(shù)組長度不夠一頁的時候提示信息修改為沒有更多數(shù)據(jù)
         document.getElementById("title").innerHTML="沒有更多數(shù)據(jù)了...";
        // 當(dāng)數(shù)組長度小于10時,該方法禁用
         this.$refs.scrollerBottom.disablePullup() ;
        }
        else{
          //否則提示信息為加載成功
         document.getElementById("title").innerHTML="加載成功";
        }
            //dataList是我聲明的空數(shù)組,用concat方法把新數(shù)組和后臺返回的數(shù)據(jù)進行拼接然后重新賦值給dataList,這個是關(guān)鍵
          this.dataList=this.dataList.concat(res.data.data.rowMaps);
          console.log(this.dataList); 
            //加載成之后提示信息改為上拉加載更多
          document.getElementById("title").innerHTML="上拉加載更多";
       }
          //再把onFetching的狀態(tài)值改為false
       this.onFetching = false 
     })
      
    }, 500)
   }
  },

到這里,我們的上拉加載功能就實現(xiàn)了,一般情況下上拉加載是和下拉刷新一起用的,vux都給我們提供了組件,由于項目需要暫時只用到了上拉加載,代碼看似很多,其實不是很復(fù)雜;

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue中如何下載文件導(dǎo)出保存到本地

    vue中如何下載文件導(dǎo)出保存到本地

    這篇文章主要介紹了vue中如何下載文件導(dǎo)出保存到本地,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Vue組件設(shè)計之多列表拖拽交換排序功能實現(xiàn)

    Vue組件設(shè)計之多列表拖拽交換排序功能實現(xiàn)

    這篇文章主要介紹了Vue組件設(shè)計之多列表拖拽交換排序,常見的場景有單列表拖拽排序,多列表拖拽交換排序,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • vue學(xué)習(xí)筆記五:在vue項目里面使用引入公共方法詳解

    vue學(xué)習(xí)筆記五:在vue項目里面使用引入公共方法詳解

    這篇文章主要介紹了在vue項目里面使用引入公共方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 詳解Vue2中組件間通信的解決全方案

    詳解Vue2中組件間通信的解決全方案

    Vue中組件這個特性讓不少前端er非常喜歡,我自己也是其中之一,它讓前端的組件式開發(fā)更加合理和簡單。下面這篇文章主要給大家介紹了關(guān)于Vue2中組件間通信的解決全方案,文中通過示例代碼介紹的非常詳細,需要的朋友們下面來一起看看吧。
    2017-07-07
  • vue移動端寫的拖拽功能示例代碼

    vue移動端寫的拖拽功能示例代碼

    這篇文章主要介紹了vue移動端寫的拖拽功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • vue父子模板傳值問題解決方法案例分析

    vue父子模板傳值問題解決方法案例分析

    這篇文章主要介紹了vue父子模板傳值問題解決方法,結(jié)合案例形式分析了vue.js父子模板傳值問題相關(guān)實現(xiàn)方法與具體操作步驟,需要的朋友可以參考下
    2020-02-02
  • 安裝vue無法運行、此系統(tǒng)無法運行腳本問題及解決

    安裝vue無法運行、此系統(tǒng)無法運行腳本問題及解決

    這篇文章主要介紹了安裝vue無法運行、此系統(tǒng)無法運行腳本問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • 使用Vue CLI創(chuàng)建typescript項目的方法

    使用Vue CLI創(chuàng)建typescript項目的方法

    這篇文章主要介紹了使用Vue CLI創(chuàng)建typescript項目的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Vue+ElementUi實現(xiàn)點擊表格鏈接頁面跳轉(zhuǎn)和路由效果

    Vue+ElementUi實現(xiàn)點擊表格鏈接頁面跳轉(zhuǎn)和路由效果

    這篇文章主要介紹了Vue+ElementUi實現(xiàn)點擊表格中鏈接進行頁面跳轉(zhuǎn)和路由,本文結(jié)合實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • 詳解Vue3中Watch監(jiān)聽事件的使用

    詳解Vue3中Watch監(jiān)聽事件的使用

    這篇文章主要為大家詳細介紹了Vue3中Watch監(jiān)聽事件的使用的相關(guān)資料,文中的示例代碼講解詳細,對我們學(xué)習(xí)Vue3有一定的幫助,需要的可以參考一下
    2023-02-02

最新評論

新晃| 寿光市| 光山县| 济宁市| 昌图县| 汝城县| 英德市| 沾化县| 胶南市| 舟山市| 延津县| 东乌珠穆沁旗| 美姑县| 陕西省| 孙吴县| 三门峡市| 石台县| 威信县| 南部县| 上思县| 邯郸县| 历史| 古丈县| 三明市| 开江县| 长汀县| 无锡市| 宿迁市| 贵溪市| 隆尧县| 永德县| 金乡县| 太谷县| 宝应县| 邵东县| 大埔县| 大竹县| 嘉祥县| 宜兰市| 深水埗区| 华蓥市|