vue-mugen-scroll組件實(shí)現(xiàn)pc端滾動(dòng)刷新
由于工作的原因,現(xiàn)在需要實(shí)現(xiàn)一個(gè)滾動(dòng)加載(PC端)的效果,之前使用的是vue+element,但是element沒(mé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如何實(shí)現(xiàn)級(jí)聯(lián)選擇器功能
這篇文章主要介紹了vue如何實(shí)現(xiàn)級(jí)聯(lián)選擇器功能問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04vue webpack build資源相對(duì)路徑的問(wèn)題及解決方法
這篇文章主要介紹了vue webpack build資源相對(duì)路徑的問(wèn)題,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06vue.js 實(shí)現(xiàn)輸入框動(dòng)態(tài)添加功能
這篇文章主要介紹了vue.js 實(shí)現(xiàn)輸入框動(dòng)態(tài)添加功能,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-06-06Vue-router 切換組件頁(yè)面時(shí)進(jìn)入進(jìn)出動(dòng)畫(huà)方法
今天小編就為大家分享一篇Vue-router 切換組件頁(yè)面時(shí)進(jìn)入進(jìn)出動(dòng)畫(huà)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09vue watch深度監(jiān)聽(tīng)對(duì)象實(shí)現(xiàn)數(shù)據(jù)聯(lián)動(dòng)效果
這篇文章主要介紹了vue watch深度監(jiān)聽(tīng)對(duì)象實(shí)現(xiàn)數(shù)據(jù)聯(lián)動(dòng)的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-08-08詳解基于 Nuxt 的 Vue.js 服務(wù)端渲染實(shí)踐
這篇文章主要介紹了詳解基于 Nuxt 的 Vue.js 服務(wù)端渲染實(shí)踐,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10vue子組件封裝彈框只能執(zhí)行一次的mounted問(wèn)題及解決
這篇文章主要介紹了vue子組件封裝彈框只能執(zhí)行一次的mounted問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03Vue 對(duì)象和數(shù)據(jù)的強(qiáng)制更新方式
這篇文章主要介紹了Vue 對(duì)象和數(shù)據(jù)的強(qiáng)制更新方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04