vue-mugen-scroll組件實(shí)現(xiàn)pc端滾動(dòng)刷新
由于工作的原因,現(xiàn)在需要實(shí)現(xiàn)一個(gè)滾動(dòng)加載(PC端)的效果,之前使用的是vue+element,但是element沒(méi)有類(lèi)似的組件,所以去github上找了一個(gè)名叫vue-mugen-scroll,使用起來(lái)很簡(jiǎn)單也很方便,所以給大家分享一下如果使用。
一、準(zhǔn)備工作
首先需要安裝一下組件:
npm install --save vue-mugen-scroll
不需要全局引用,在需要的地方引用即可:
import MugenScroll from "vue-mugen-scroll";
export default {
components: { MugenScroll }
};
二、編碼
直接上代碼
<template>
<section>
<div id="user-table" ref="user-table">
<div>
<el-table :data="tableDate" border style="width: 100%">
<el-table-column prop="name" label="用戶姓名"></el-table-column>
</el-table>
</div>
<mugen-scroll :handler="loadMore" :should-handle="!loading" scroll-container="user-table">
</mugen-scroll>
</div>
</section>
</template>
<script>
import MugenScroll from "vue-mugen-scroll";
export default {
name: "app",
components: { MugenScroll },
data() {
return {
// 加載狀態(tài)
loading: false,
// 當(dāng)前頁(yè)數(shù)
page: 1,
// 總頁(yè)數(shù)
pageTotal: 3,
pagesize: 10,
// 模擬后端返回的數(shù)據(jù)
datas: [
{ id: "1", name: "用戶1" },
{ id: "2", name: "用戶2" },
{ id: "3", name: "用戶3" },
{ id: "4", name: "用戶4" },
{ id: "5", name: "用戶5" },
{ id: "6", name: "用戶6" },
{ id: "7", name: "用戶7" },
{ id: "8", name: "用戶8" },
{ id: "9", name: "用戶9" },
{ id: "10", name: "用戶10" },
{ id: "11", name: "用戶11" },
{ id: "12", name: "用戶12" },
{ id: "13", name: "用戶13" },
{ id: "14", name: "用戶14" },
{ id: "15", name: "用戶15" },
{ id: "16", name: "用戶16" },
{ id: "17", name: "用戶17" },
{ id: "18", name: "用戶18" },
{ id: "19", name: "用戶19" },
{ id: "20", name: "用戶20" },
{ id: "21", name: "用戶21" },
{ id: "22", name: "用戶22" },
{ id: "23", name: "用戶23" },
{ id: "24", name: "用戶24" },
{ id: "25", name: "用戶25" },
{ id: "26", name: "用戶26" },
{ id: "27", name: "用戶27" }
],
// 列表中的數(shù)據(jù)
tableDate: []
};
},
methods: {
// 加載更多
loadMore() {
// 是否當(dāng)前page不是最后一頁(yè)
if (this.page <= this.pageTotal) {
console.log("loadMore...");
this.loading = true;
// 模擬分頁(yè)查詢
let startIndex = (this.page - 1) * this.pagesize;
let endIndex = startIndex + this.pagesize;
this.tableDate.push(...this.datas.slice(startIndex, endIndex));
// 頁(yè)碼+1
this.page++;
console.log(this.tableDate);
this.loading = false;
}
}
}
};
</script>
<style scoped>
#user-table {
width: 400px;
height: 400px;
overflow-y: scroll;
margin: 100px auto;
}
</style>
說(shuō)明一下,這里最主要的就是<mugen-scroll>這個(gè)標(biāo)簽,should-handle屬性就是是否需要執(zhí)行加載方法,handler就是加載的具體方法,scroll-container就是指向的元素的ref,需要注意的是,需要滾動(dòng)加載的元素,如#user-table,需要設(shè)置它的具體高度,而且要設(shè)置滾動(dòng)條,就像我在<style>寫(xiě)到的,不然沒(méi)有效果。
三、效果圖
初始效果

滾動(dòng)后的效果

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue項(xiàng)目中js-cookie的使用存儲(chǔ)token操作
這篇文章主要介紹了vue項(xiàng)目中js-cookie的使用存儲(chǔ)token操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11
Vue循環(huán)中多個(gè)input綁定指定v-model實(shí)例
這篇文章主要介紹了Vue循環(huán)中多個(gè)input綁定指定v-model實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08
離線搭建vue環(huán)境運(yùn)行項(xiàng)目詳細(xì)步驟
由于公司要求在內(nèi)網(wǎng)開(kāi)發(fā)項(xiàng)目,而內(nèi)網(wǎng)不能連接外網(wǎng),因此只能離線安裝vue環(huán)境,下面這篇文章主要給大家介紹了關(guān)于離線搭建vue環(huán)境運(yùn)行項(xiàng)目的詳細(xì)步驟,需要的朋友可以參考下2023-11-11
vue中計(jì)算屬性和方法的區(qū)別及說(shuō)明
這篇文章主要介紹了vue中計(jì)算屬性和方法的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09
Vue移動(dòng)端下拉加載更多數(shù)據(jù)onload實(shí)現(xiàn)方法淺析
這篇文章主要介紹了Vue移動(dòng)端下拉加載更多數(shù)據(jù)onload實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
VUE div click無(wú)效的問(wèn)題及解決
這篇文章主要介紹了VUE div click無(wú)效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01

