vue2.0和mintui-infiniteScroll結(jié)合如何實(shí)現(xiàn)無(wú)線滾動(dòng)加載
vue2.0和mintui-infiniteScroll實(shí)現(xiàn)無(wú)線滾動(dòng)加載
<template lang="html">
<div class="main">
<div class='list-box'>
<ul v-infinite-scroll="loadMore"
infinite-scroll-disabled="loading"
infinite-scroll-immediate-check="true"
infinite-scroll-distance="40">
<li v-for="(item ,index) in list" :key="index">
{{item.title}}
</li>
</ul>
<!--顯示加載中狀態(tài)-->
<div class="loading-box" v-if="loading">
<mt-spinner type="fading-circle" class="loading-more" color="#0188fd"></mt-spinner>
</div>
<div class="no-more" v-if="noMore">親,已經(jīng)到底了哦!</div>
</div>
</div>
</template>
<script>
import { InfiniteScroll , Spinner } from 'mint-ui';
export default {
components: {
'mt-spinner':Spinner,
},
data() {
return {
list: [],
pagesNum: 1,//總頁(yè)數(shù)
loading: false, // 加載中轉(zhuǎn)圈
noMore: false, // 是否還有更多
endTime: "",
page: {
access_token: this.$route.query.access_token,
planId: this.$route.query.id,
pageNumber: 1,
pageSize: 20,
}
}
},
created() {
this.initData();
},
mounted() {
},
methods: {
initData: function(type) {
this.loading = true
axios.get("xxx", {
params: this.page
})
.then((data) => {
if (type === 'loadMore') {
this.list = this.list.concat(data.data.data.list);
} else {
this.list = data.data.data.list;
}
// 設(shè)置分頁(yè)
this.pagesNum = data.data.data.pages; //總頁(yè)數(shù)
this.loading = false;
})
.catch(function(err) {
console.log(err);
})
},
loadMore:function() {
this.page.pageNumber += 1 // 增加分頁(yè)
this.loading = true // 加載中
if(this.page.pageNumber <= this.pagesNum){
//加載數(shù)據(jù)
setTimeout(()=>{
this.initData('loadMore')
},200)
}else{
this.noMore = true // 顯示沒(méi)有更多了
this.loading = false // 關(guān)閉加載中
return false
}
}
}
}
</script>
<style>
.list-box {
max-height:calc(100% - 1.8rem); //必須有高度
overflow-y: auto;
-webkit-overflow-scrolling: touch;
}
.list-box ul{
width:100%;
}
.list-box ul li{
width: 100%;
height: 0.55rem;
@include flexbox();
@include justify-content(space-between);
border-bottom: 1px solid #e4e4e4;
}
</style>vue使用mint-ui的Infinite scroll(無(wú)線滾動(dòng))報(bào)錯(cuò)
MutationObserver': parameter 1 is not of type 'Node'." * Failed
在Vue里面使用mint-ui的Infinite scroll無(wú)線滾動(dòng),按照配置寫完之后,發(fā)現(xiàn)控制臺(tái)里報(bào)錯(cuò)了。
如下錯(cuò)誤信息:
Error in directive infinite-scroll inserted hook: “TypeError: Failed to execute ‘observe’ on ‘MutationObserver’: parameter 1 is not of type ‘Node’.”
Failed to execute ‘observe’ on ‘MutationObserver’: parameter 1 is not of type ‘Node’.
解決方法
給使用這個(gè)組件的元素設(shè)置height和overflow
<div class="wrap" v-infinite-scroll = "loadMore" infinite-scroll-disabled = "loading" infinite-scroll-distance = "10" ></div>
.wrap {
height: 100vh;
overflow-y: auto;
}然后控制臺(tái)就不會(huì)報(bào)錯(cuò)了。然而官網(wǎng)并沒(méi)有寫這條非常重要的信息。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue實(shí)現(xiàn)購(gòu)物車場(chǎng)景下的應(yīng)用
這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)購(gòu)物車場(chǎng)景下的應(yīng)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11
Vue 刷新當(dāng)前路由的實(shí)現(xiàn)代碼
這篇文章主要介紹了Vue 刷新當(dāng)前路由的實(shí)現(xiàn)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
基于vue+echarts數(shù)據(jù)可視化大屏展示的實(shí)現(xiàn)
這篇文章主要介紹了基于vue+echarts數(shù)據(jù)可視化大屏展示的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
vue中v-model、v-bind和v-on三大指令的區(qū)別詳解
v-model和v-bind都是數(shù)據(jù)綁定的方式,下面這篇文章主要給大家介紹了關(guān)于vue中v-model、v-bind和v-on三大指令的區(qū)別,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11
解決vue多個(gè)路由共用一個(gè)頁(yè)面的問(wèn)題
下面小編就為大家分享一篇解決vue多個(gè)路由共用一個(gè)頁(yè)面的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
一次vue項(xiàng)目?jī)?yōu)化的實(shí)際操作記錄
用vue開發(fā)項(xiàng)目上線以后,發(fā)現(xiàn)首頁(yè)加載速度非常慢,如果項(xiàng)目比較大,甚至可能出現(xiàn)10s以上的等待,下面這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目?jī)?yōu)化的相關(guān)資料,需要的朋友可以參考下2022-09-09
vue+element實(shí)現(xiàn)頁(yè)面頂部tag思路詳解
這篇文章主要介紹了vue+element實(shí)現(xiàn)頁(yè)面頂部tag效果,頁(yè)面顯示由數(shù)組循環(huán)得出,數(shù)組可存儲(chǔ)在store里,tags數(shù)組里面已經(jīng)有值,由于默認(rèn)是白色,所以頁(yè)面上看不出,接下來(lái)就是給選中的標(biāo)簽高亮,需要的朋友可以參考下2021-12-12
FastApi+Vue+LayUI實(shí)現(xiàn)前后端分離的示例代碼
本文主要介紹了FastApi+Vue+LayUI實(shí)現(xiàn)前后端分離的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11
vue實(shí)現(xiàn)路由監(jiān)聽和參數(shù)監(jiān)聽
今天小編就為大家分享一篇vue實(shí)現(xiàn)路由監(jiān)聽和參數(shù)監(jiān)聽,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10

