日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

[ vant ] vue移动端下拉刷新组件

發(fā)布時間:2024/3/13 vue 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [ vant ] vue移动端下拉刷新组件 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

學習關(guān)鍵語句:
vant list組件和下拉刷新
vant 下拉刷新和局部滾動沖突

寫在前面

每一次 ! 我是說每一次我在使用 vant 組件庫里面 list組件和下拉刷新連在一起用的時候

都會出現(xiàn)下拉刷新和列表下滑局部滾動的沖突 !

這讓我很 ! 難 ! 受 !

這篇文章提供 來自于瀏覽精彩的互聯(lián)網(wǎng)并通過我實際使用得來的體驗 給出 2 個解決方法 , 雖然說我還看到有人給的解決方法是 overflow 加給父級 , 我就覺得挺迷的 , 不曉得是怎么一回事

開始

第一種方法應該是很方便的一種了 , 就是修改源碼樣式了 , 你可以將以下代碼加入到你的 css 中 , 注意 , 如果你使用的是局部 css , 請使用穿透或者新開一個全局 style

.van-pull-refresh {height: calc(100vh - 100px) !important; // 此處的 100px 需要根據(jù)你的實際情況來處理 , 是頁面中不包含列表的高度部分overflow: auto !important; }

但是有時候會出現(xiàn)第一種方法不起作用的情況 , 遇到這種情況 , 我也只能推薦你使用原生方法 scroll 來判斷是否需要進行下拉刷新了

第二種就是即時判斷是否需要下拉刷新了

這種方法的原理就是 當列表的 scrollTop 為 0 時 , 說明列表已經(jīng)到頂了 , 到頂了還往下拉說明你就是想要刷新列表 , 如果 scrollTop 不等于 0 那就是列表向下滑動而已

我們看下使用組件時需要的屬性

<van-pull-refreshv-model="refreshing" // 表示是否在刷新 , 下拉時自動變?yōu)?true ,需要在請求數(shù)據(jù)結(jié)束后手動設置為 false@refresh="onRefresh" // 下拉刷新觸發(fā)的方法 , 將分頁變?yōu)?1 然后請求數(shù)據(jù):disabled="pullRefreshDisabled" // 是否禁用下拉刷新的方法 , 禁用后將無法下拉刷新 , 通過列表滾動高度來控制這個值 ><van-listv-model:loading="loading" // 是否處于加載狀態(tài) , 列表滑到最底處時自動變成 true , 變?yōu)?true 時不會觸發(fā) load 事件方法:finished="finished" // 是否已經(jīng)加載完成finished-text="沒有更多了" @load="onLoad" // 加載新數(shù)據(jù)的方法 , 移動端一般傳入新的頁數(shù)將新數(shù)據(jù)數(shù)組添加到原有數(shù)據(jù)數(shù)組之后@scroll="divScroll" // 滾動時觸發(fā)的事件 , 來判斷當前滾動的高度是多少><div v-for="(item, index) in data" :key="index">{{ item }}</div></van-list> </van-pull-refresh>

如果都看了上面的注釋 , 那么其實也很簡單了 , 我們在 divScroll 方法中實時監(jiān)控滾動的高度 , 當滾動的高度 == 0 的時候 , 就給下拉刷新組件可以下拉刷新的功能

const pullRefreshDisabled = ref(false) const divScroll = (e: any) => {if (e.target.scrollTop == 0) {pullRefreshDisabled.value = false} else {pullRefreshDisabled.value = true} }

用了這么長時間 , 我越發(fā)覺得一個 any 走天下了

初始值設置為 false 是為了一開始就能下拉刷新 , 千萬別搞混 , 這個 pullRefreshDisabled 為 true 時是不能下拉刷新 , 為 false 時是可以下拉刷新

結(jié)束

emmm我以前挺抗拒使用判斷滾動來寫這個 , 但是當我真的寫了之后 , 我直呼 真香 !

總結(jié)

以上是生活随笔為你收集整理的[ vant ] vue移动端下拉刷新组件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。