日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

vue實現虛擬列表功能的代碼

瀏覽:25日期:2022-12-25 17:47:22

當數據量較大(此處設定為10w),而且要用列表的形式展現給用戶,如果我們不做處理的話,在瀏覽器中渲染10w dom節點,是極其耗費時間的,那我的Macbook air舉例,10w條數據渲染出來到能看到頁面,需要13秒多(實際應該是10秒左右),如果是用戶的話肯定是不會等一個網頁十幾秒的

vue實現虛擬列表功能的代碼

我們可以用虛擬列表解決這個問題一步步來首先看一下效果

vue實現虛擬列表功能的代碼

這是data中的數據

data() { return { list: [], // 賊大的數組 li: { // 列表項信息 height: 50, }, container: { // 容器信息 height: 500, }, pos: 1, // 第一排顯示的元素的下標 MAX_NUM: 1, // 在容器內最多顯示幾個列表項 timer: null, // 定時器 carriedOut: true, // 能不能執行操作 }; },

然后在mounted中創建一個賊大的數組,在調用test方法計算第一次的虛擬列表中有哪些

mounted() { // 創建一個賊大的數據數組 for (let i = 0; i < 100000; i++) { this.list.push(i); } this.test(); },

test方法

test() { // 節流 if (this.carriedOut) { // 容器跟里面的列表項 const { container, li } = this; // 計算可視區域最多能顯示多少個li this.MAX_NUM = Math.ceil(container.height / li.height); // 獲取 overflow:scroll 的元素已滾動的高度 let scrollTop = this.$refs.container.scrollTop; // 計算當前處于第一排的元素的下標 this.pos = Math.round(scrollTop / li.height); // 下方節流操作 this.carriedOut = false; this.timer = setTimeout(() => { this.carriedOut = true; clearTimeout(this.timer); }, 50); } },

然后是computed

computed: { // 用于渲染在頁面上的數組 showList() { // 根據計算出來的 第一排元素的下標,和最多顯示多少個 用slice實現截取數組 let arr = this.list.slice(this.pos, this.pos + this.MAX_NUM); return arr; }, },

這是html,注意監聽了div的scroll事件,并且調用的是test方法

<div class='virtual-list'> <h1>虛擬列表</h1> <div ref='container' : @scroll='test'> <ul :style='`height:${li.height*list.length}px;padding-top:${li.height*pos}px`'> <li : v-for='item in 100000' :key='item'>{{item}}</li> </ul> </div> </div>

完整源代碼

<template> <div class='virtual-list'> <h1>虛擬列表</h1> <div ref='container' : @scroll='test'> <ul :style='`height:${li.height*list.length}px;padding-top:${li.height*pos}px`'> <li : v-for='item of showList' :key='item'>{{item}}</li> </ul> </div> </div></template><script>export default { data() { return { list: [], // 賊大的數組 li: { // 列表項信息 height: 50, }, container: { // 容器信息 height: 500, }, pos: 1, // 第一排顯示的元素的下標 MAX_NUM: 1, // 在容器內最多顯示幾個列表項 timer: null, // 定時器 carriedOut: true, // 能不能執行操作 }; }, mounted() { // 創建一個賊大的數據數組 for (let i = 0; i < 1000; i++) { this.list.push(i); } this.test(); }, computed: { // 用于渲染在頁面上的數組 showList() { // 根據計算出來的 第一排元素的下標,和最多顯示多少個 用slice實現截取數組 let arr = this.list.slice(this.pos, this.pos + this.MAX_NUM); return arr; }, }, methods: { test() { // 節流 if (this.carriedOut) { // 容器跟里面的列表項 const { container, li } = this; // 計算可視區域最多能顯示多少個li this.MAX_NUM = Math.ceil(container.height / li.height); // 獲取 overflow:scroll 的元素已滾動的高度 let scrollTop = this.$refs.container.scrollTop; // 計算當前處于第一排的元素的下標 this.pos = Math.round(scrollTop / li.height); // 下方節流操作 this.carriedOut = false; this.timer = setTimeout(() => { this.carriedOut = true; clearTimeout(this.timer); }, 50); } }, },};</script><style lang='scss' scoped>.virtual-list { text-align: center; .container { overflow: scroll; border: 1px solid red; }}</style>

到此這篇關于vue實現虛擬列表功能的代碼的文章就介紹到這了,更多相關vue 虛擬列表內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Vue
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产视频欧美| 视频一区视频二区中文字幕| 亚洲久草在线| 日韩精品欧美| zzzwww在线看片免费| 久久伊人久久| 精品免费av一区二区三区| 国产欧美一区二区色老头| 久久激情综合网| 国产中文欧美日韩在线| 精品日韩视频| 美日韩精品视频| 日本v片在线高清不卡在线观看| 日本中文字幕视频一区| 麻豆久久久久久久| 99精品美女| 蜜桃视频一区二区三区| 久久精品av麻豆的观看方式| 国产精品久久久久久久免费软件| 国产精品传媒麻豆hd| 亚洲深夜视频| 亚洲综合不卡| 国产精品99精品一区二区三区∴| www在线观看黄色| 亚洲一区二区三区免费在线观看| 亚洲香蕉视频| 国产精品一区二区三区www| 乱一区二区av| 欧美日韩国产欧| 欧美一区二区三区免费看| 久久电影tv| 亚洲一区日韩| 麻豆高清免费国产一区| 不卡中文一二三区| 蜜臀精品一区二区三区在线观看 | 欧美综合社区国产| 欧美日韩国产观看视频| 色婷婷成人网| 亚洲精品一级二级| 国产精品一级在线观看| 中文日韩欧美| 日韩av自拍| 日韩有码av| 今天的高清视频免费播放成人| 日韩二区在线观看| 国产综合欧美| 国产一卡不卡| 日韩免费看片| 国产日韩欧美| 亚洲激情另类| а√天堂8资源在线| 97成人超碰| 日韩午夜免费| 日韩啪啪电影网| 欧美日韩一区自拍| 在线综合亚洲| 中文av在线全新| 国产欧美另类| 男人的天堂亚洲一区| 99久久99视频只有精品| 麻豆精品视频在线观看视频| 丝袜美腿成人在线| 亚洲精品一级二级| 麻豆91精品91久久久的内涵| 午夜精品福利影院| 欧美资源在线| 久久精品欧美一区| 色婷婷色综合| 久久中文在线| 国产欧美日韩一级| 免费在线成人网| 免费精品国产| 久久久夜精品| 日韩1区在线| 国产日产一区| 亚洲精品乱码| 亚洲色图综合| 欧美日韩国产高清| 蜜桃视频在线网站| 丁香婷婷久久| 国产精品久久乐| 视频一区中文字幕精品| 欧美日韩国产传媒| 欧美福利在线| 亚洲精品123区| 尹人成人综合网| 亚洲婷婷在线| 午夜免费一区| 亚洲少妇自拍| 在线亚洲一区| 女人天堂亚洲aⅴ在线观看| 久久亚洲成人| 国产伦久视频在线观看| 成人精品国产亚洲| 久久精品国产99国产精品| 久久不卡日韩美女| 久久精品女人| 国产videos久久| 91青青国产在线观看精品| 你懂的国产精品| 国产成人精品999在线观看| 国产suv精品一区| 伊人久久国产| 久久免费高清| 免费视频久久| 亚洲毛片在线免费| 日韩高清在线不卡| 欧美精品国产白浆久久久久| aa亚洲婷婷| 亚洲有吗中文字幕| 欧美日韩91| 久久不见久久见国语| 日产午夜精品一线二线三线| 久久精品123| 亚洲综合另类| 91综合久久爱com| 国产精品xxx| 欧洲精品一区二区三区| 好吊日精品视频| 日韩精品亚洲一区二区三区免费| 欧美日韩一区自拍| 中文在线а√在线8| 五月精品视频| 视频一区在线视频| 国产精品一在线观看| 精品国产中文字幕第一页| 四虎884aa成人精品最新| 亚洲综合二区| 国产精品1区| 日本蜜桃在线观看视频| 国产亚洲在线观看| 国产日韩中文在线中文字幕| 成人国产精品一区二区免费麻豆| 日韩专区精品| 亚洲精品护士| 超碰99在线| 亚洲一区二区三区中文字幕在线观看| 欧美伊人久久| 精品国产欧美日韩| 午夜在线观看免费一区| 国产精品**亚洲精品| 欧美不卡在线| 国产视频网站一区二区三区| 久久久久久久久久久妇女 | 精品日韩一区| 亚洲欧美日韩精品一区二区| 青青在线精品| 久久精品欧美一区| 国产午夜久久av| 亚洲无线一线二线三线区别av| 免费日韩av| 综合日韩av| 日韩中文字幕| 欧美不卡高清一区二区三区| 亚洲麻豆一区| 久久久精品网| 国产免费久久| 日韩午夜黄色| 精品资源在线| 亚洲涩涩av| 日韩不卡免费高清视频| 亚洲精品影视| 欧美精品资源| 国产精品密蕾丝视频下载| 久久亚洲美女| 久久99久久人婷婷精品综合| 日韩一级欧洲| 电影91久久久| 日韩精品欧美大片| 黑丝一区二区三区| 国产精品国产一区| 日韩成人午夜精品| 欧美 日韩 国产一区二区在线视频| 国产乱码精品一区二区三区亚洲人 | 国产aⅴ精品一区二区三区久久| 久久亚洲欧洲| 久久在线免费| 激情黄产视频在线免费观看| 久久国产高清| 天堂а√在线最新版中文在线| 欧美偷窥清纯综合图区| 手机精品视频在线观看| 亚洲国产综合在线看不卡| 国产精品久久久久久久久久久久久久久 | 日韩成人亚洲| 精品视频在线你懂得| 精品日韩毛片| 久久亚洲黄色| 国产精品网在线观看| 美女日韩在线中文字幕| 欧美综合另类| 色在线视频观看| 日产精品一区二区| 久久精品一区| 国产精品一区二区美女视频免费看 | 久久中文字幕av| 美女毛片一区二区三区四区最新中文字幕亚洲 | 88久久精品| 中文不卡在线| 丝袜国产日韩另类美女|