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

vant-List-@load事件一直觸發(fā)的解決

 更新時間:2023年01月18日 10:11:10   作者:Delete_89x  
這篇文章主要介紹了vant-List-@load事件一直觸發(fā)的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

vant-List-@load事件一直觸發(fā)

項目場景

今天項目用到vant-List,發(fā)現(xiàn)一直觸發(fā)@load事件。

這是請求的page和pageSize

page: 0,
pageSize: 10,

后端測試數(shù)據(jù)一共21條,但是進入頁面就一下請求了三次,全部加載完數(shù)據(jù)了,這樣就達不到要求了。

問題描述

查看了文檔底下的常見問題:

為什么會連續(xù)觸發(fā) load 事件?

如果一次請求加載的數(shù)據(jù)條數(shù)較少,導(dǎo)致列表內(nèi)容無法鋪滿當前屏幕,List 會繼續(xù)觸發(fā) load 事件,直到內(nèi)容鋪滿屏幕或數(shù)據(jù)全部加載完成。因此你需要調(diào)整每次獲取的數(shù)據(jù)條數(shù),理想情況下每次請求獲取的數(shù)據(jù)條數(shù)應(yīng)能夠填滿一屏高度。

看到這個時候我查看了一下代碼,10條的數(shù)據(jù)量是能夠填滿一屏的,但是還是直接請求完成了。

往下走:

在 html、body 上設(shè)置 overflow 后一直觸發(fā)加載?

如果在 html 和 body 標簽上設(shè)置了overflow-x: hidden樣式,會導(dǎo)致 List 一直觸發(fā)加載。

html,
body {
overflow-x: hidden;
}

這個問題的原因是當元素設(shè)置了overflow-x: hidden樣式時,該元素的overflow-y會被瀏覽器設(shè)置為auto,而不是默認值visible,導(dǎo)致 List 無法正確地判斷滾動容器。

解決方法是去除該樣式,或者在 html 和 body 標簽上添加height: 100%樣式。

原因分析

到這里就找到問題的原因了,我習(xí)慣在外層盒子加上min-height: 100vh;overflow-x:hidden;沒想到會影響這個組件,麻了。

解決方案

去除overflow-x: hidden;或?qū)in-height: 100vh;改為height: 100vh;

vant-list onLoad觸發(fā)以及tab切換不再觸發(fā)問題

首先 van-list 是首次進就會觸發(fā)加載的,滾動條滑倒底部不會再觸發(fā) 一般是因為外部高度未固定導(dǎo)致拿不到滾動條位置

<template>
? ? <div class="listClass" ref="listout">
? ? ? ? <van-list v-model="loading" :finished="finished" finished-text="沒有更多了" @load="onLoad">
? ? ? ? ? ? <div v-for="(item, index) in list" :key="index">{{item}}</div>
? ? ? ? </van-list>
? ? </div>
</template>
<script>
export default {
? ? data() {
? ? ? ? return {
? ? ? ? ? ? // 初始化定義
? ? ? ? ? ? loading: true,
? ? ? ? ? ? finished: false,
? ? ? ? ? ? searchData: {
? ? ? ? ? ? ? ? pageSize: 10,
? ? ? ? ? ? ? ? pageNo: 0
? ? ? ? ? ? },
? ? ? ? ? ? list: []
? ? ? ? }
? ? },
? ? methods: {
? ? ? ? onLoad(){
? ? ? ? ? ? this.searchData.pageNo += 1
? ? ? ? ? ? this.obtainList()
? ? ? ? },
? ? ? ? // 列表
? ? ? ? obtainList () {
? ? ? ? ? ? // 調(diào)用列表接口(此為演示)
? ? ? ? ? ? findList(this.searchData).then(res => {
? ? ? ? ? ? ? ? if (res.data.data && res.data.errcode == 0) {
? ? ? ? ? ? ? ? ? ? if(this.searchData.pageNo == 1){
? ? ? ? ? ? ? ? ? ? ? ? this.list = []
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? res.data.data.result.forEach((v) => {
? ? ? ? ? ? ? ? ? ? ? ? this.list.push(v)
? ? ? ? ? ? ? ? ? ? })
? ? ? ? ? ? ? ? ? ? this.loading = false
? ? ? ? ? ? ? ? ? ? if(this.searchData.pageNo >= res.data.data.totalPage) {
? ? ? ? ? ? ? ? ? ? ? ? this.finished = true
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? })
? ? ? ? }
? ? }
}
</script>
<style scoped>
.listClass {
? ? width: 100%;
? ? height: 100vh;
? ? overflow-y: auto;
}
</style>

tab 切換的時候 需要重置下loading和finished狀態(tài)

? ? // 切換
? ? activeClick (type) {
? ? ? this.searchData.active = type
? ? ? this.searchData.pageNo = 0
? ? ? this.$refs.listout.scrollTop = 0
? ? ? this.loading = true
? ? ? this.finished = false
? ? ? this.onLoad()
? ? }

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue如何調(diào)用接口請求頭增加參數(shù)

    Vue如何調(diào)用接口請求頭增加參數(shù)

    這篇文章主要介紹了Vue如何調(diào)用接口請求頭增加參數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Vue2項目中對百度地圖的封裝使用詳解

    Vue2項目中對百度地圖的封裝使用詳解

    近期項目需求相關(guān)地圖限定使用百度地圖,功能比較簡單,下面這篇文章主要給大家介紹了關(guān)于Vue2項目中對百度地圖的封裝使用的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • vue父組件異步傳遞props值,子組件接收不到解決方案

    vue父組件異步傳遞props值,子組件接收不到解決方案

    這篇文章主要介紹了vue父組件異步傳遞props值,子組件接收不到解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • ant design vue動態(tài)循環(huán)生成表單以及自定義校驗規(guī)則詳解

    ant design vue動態(tài)循環(huán)生成表單以及自定義校驗規(guī)則詳解

    這篇文章主要介紹了ant design vue動態(tài)循環(huán)生成表單以及自定義校驗規(guī)則詳解,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • vue頁面加載時的進度條功能(實例代碼)

    vue頁面加載時的進度條功能(實例代碼)

    這篇文章主要介紹了vue頁面加載時的進度條功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01
  • 利用Vue v-model實現(xiàn)一個自定義的表單組件

    利用Vue v-model實現(xiàn)一個自定義的表單組件

    本篇文章主要介紹了利用Vue v-model實現(xiàn)一個自定義的表單組件的相關(guān)知識。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04
  • Vue 項目部署到服務(wù)器的問題解決方法

    Vue 項目部署到服務(wù)器的問題解決方法

    本篇文章主要介紹了Vue 項目部署到服務(wù)器的問題解決方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • Vue組件通信傳遞數(shù)據(jù)的三種方式

    Vue組件通信傳遞數(shù)據(jù)的三種方式

    這篇文章主要介紹了Vue組件通信傳遞數(shù)據(jù)的三種方式,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-04-04
  • vue項目如何實現(xiàn)ip和localhost同時訪問

    vue項目如何實現(xiàn)ip和localhost同時訪問

    這篇文章主要介紹了vue項目如何實現(xiàn)ip和localhost同時訪問,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Vue2.0/3.0雙向數(shù)據(jù)綁定的實現(xiàn)原理詳解

    Vue2.0/3.0雙向數(shù)據(jù)綁定的實現(xiàn)原理詳解

    這篇文章主要給大家介紹了關(guān)于Vue2.0/3.0雙向數(shù)據(jù)綁定的實現(xiàn)原理,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04

最新評論

宁德市| 庐江县| 荣成市| 兴业县| 江孜县| 民县| 邛崃市| 高陵县| 策勒县| 额济纳旗| 汨罗市| 南充市| 德兴市| 德清县| 九台市| 库车县| 赣州市| 三穗县| 新乡市| 尤溪县| 塘沽区| 上思县| 安新县| 惠安县| 屏边| 安多县| 长岭县| 梁河县| 唐河县| 甘洛县| 林口县| 广平县| 闵行区| 郑州市| 宁陵县| 米易县| 三穗县| 凤翔县| 师宗县| 麻栗坡县| 柏乡县|