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

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

VUE實(shí)時(shí)監(jiān)聽(tīng)元素距離頂部高度的操作

瀏覽:173日期:2022-12-23 15:46:10

效果圖如下所示

VUE實(shí)時(shí)監(jiān)聽(tīng)元素距離頂部高度的操作

.html

<!-- 監(jiān)聽(tīng)ref距離頂部高度 --><div ref='pronbit'> <div>今日熱門(mén)</div> <div>今日熱銷(xiāo)</div></div>

.js

mounted(){ window.addEventListener(’scroll’,this.handleScrollx,true)},methods: { handleScrollx() { console.log(’滾動(dòng)高度’,window.pageYOffset) console.log(’距離頂部高度’,this.$refs.pronbit.getBoundingClientRect().top) },}

補(bǔ)充知識(shí):Vue異步更新隊(duì)列 及 $nextTick的使用

問(wèn)題一:什么是$nextTick?

簡(jiǎn)單回答:

因?yàn)閂ue的異步更新隊(duì)列,$nextTick是用來(lái)知道什么時(shí)候DOM更新完成的。

詳細(xì)解讀:

我們先來(lái)看這樣一個(gè)場(chǎng)景:有一個(gè)div,默認(rèn)用 v-if 將它隱藏,點(diǎn)擊一個(gè)按鈕后,改變 v-if 的值,讓它顯示出來(lái),同時(shí)拿到這個(gè)div的文本內(nèi)容。如果v-if的值是 false,直接去獲取div內(nèi)容是獲取不到的,因?yàn)榇藭r(shí)div還沒(méi)有被創(chuàng)建出來(lái),那么應(yīng)該在點(diǎn)擊按鈕后,改變v-if的值為 true,div才會(huì)被創(chuàng)建,此時(shí)再去獲取,示例代碼如下:

<div id='app'> <div v-if='showDiv'>這是一段文本</div> <button @click='getText'>獲取div內(nèi)容</button> </div> <script> var app = new Vue({ el : '#app', data:{ showDiv : false }, methods:{ getText:function(){this.showDiv = true;var text = document.getElementById(’div’).innnerHTML; console.log(text); } } }) </script>

這段代碼并不難理解,但是運(yùn)行后在控制臺(tái)會(huì)拋出一個(gè)錯(cuò)誤:Cannot read property ’innnerHTML of null,意思就是獲取不到div元素。這里就涉及Vue一個(gè)重要的概念:異步更新隊(duì)列。

異步更新隊(duì)列

Vue在觀察到數(shù)據(jù)變化時(shí)并不是直接更新DOM,而是開(kāi)啟一個(gè)隊(duì)列,并緩沖在同一個(gè)事件循環(huán)中發(fā)生的所有數(shù)據(jù)改變。在緩沖時(shí)會(huì)去除重復(fù)數(shù)據(jù),從而避免不必要的計(jì)算和DOM操作。然后,在下一個(gè)事件循環(huán)tick中,Vue刷新隊(duì)列并執(zhí)行實(shí)際(已去重的)工作。所以如果你用一個(gè)for循環(huán)來(lái)動(dòng)態(tài)改變數(shù)據(jù)100次,其實(shí)它只會(huì)應(yīng)用最后一次改變,如果沒(méi)有這種機(jī)制,DOM就要重繪100次,這固然是一個(gè)很大的開(kāi)銷(xiāo)。

Vue會(huì)根據(jù)當(dāng)前瀏覽器環(huán)境優(yōu)先使用原生的Promise.then和MutationObserver,如果都不支持,就會(huì)采用setTimeout代替。

知道了Vue異步更新DOM的原理,上面示例的報(bào)錯(cuò)也就不難理解了。事實(shí)上,在執(zhí)行this.showDiv = true時(shí),div仍然還是沒(méi)有被創(chuàng)建出來(lái),直到下一個(gè)vue事件循環(huán)時(shí),才開(kāi)始創(chuàng)建。$nextTick就是用來(lái)知道什么時(shí)候DOM更新完成的,所以上面的示例代碼需要修改為:

<div id='app'> <div v-if='showDiv'>這是一段文本</div> <button @click='getText'>獲取div內(nèi)容</button> </div> <script> var app = new Vue({ el : '#app', data:{ showDiv : false }, methods:{ getText:function(){this.showDiv = true;this.$nextTick(function(){ var text = document.getElementById(’div’).innnerHTML; console.log(text); }); } } }) </script>

這時(shí)再點(diǎn)擊事件,控制臺(tái)就打印出div的內(nèi)容“這是一段文本“了。

理論上,我們應(yīng)該不用去主動(dòng)操作DOM,因?yàn)閂ue的核心思想就是數(shù)據(jù)驅(qū)動(dòng)DOM,但在很多業(yè)務(wù)里,我們避免不了會(huì)使用一些第三方庫(kù),比如 popper.js、swiper等,這些基于原生javascript的庫(kù)都有創(chuàng)建和更新及銷(xiāo)毀的完整生命周期,與Vue配合使用時(shí),就要利用好$nextTick。

以上這篇VUE實(shí)時(shí)監(jiān)聽(tīng)元素距離頂部高度的操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Vue
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日本视频中文字幕一区二区三区| 亚洲一区二区三区高清| 欧美成人综合| 欧美一区久久久| 国产人成精品一区二区三| 欧美日韩一区二区综合 | 国产乱人伦丫前精品视频| 蜜臀av亚洲一区中文字幕| 亚洲免费高清| 国产精品呻吟| 免费人成黄页网站在线一区二区| 亚洲黄色在线| 日韩午夜一区| 香蕉视频成人在线观看| 99香蕉国产精品偷在线观看| 99久久夜色精品国产亚洲1000部| 欧洲av不卡| 日韩中文字幕麻豆| 中文字幕一区二区精品区| 国产精品久久国产愉拍| 亚洲一级少妇| 综合亚洲自拍| 日本а中文在线天堂| 六月天综合网| 久久久久亚洲精品中文字幕| 成人日韩在线观看| 亚洲一区欧美| 成人av三级| 亚洲日本欧美| 三级小说欧洲区亚洲区| 亚洲伊人精品酒店| 成人在线免费观看网站| 夜夜精品视频| 久久不见久久见国语| 啪啪国产精品| 69堂免费精品视频在线播放| 亚洲手机视频| 国产精品日韩精品中文字幕| 91国语精品自产拍| 国产一区二区三区亚洲| 亚洲精品免费观看| 欧美在线观看视频一区| 欧美日韩中文| 午夜久久99| 国产aⅴ精品一区二区三区久久| 亚洲免费网址| 日韩在线欧美| 国产伦精品一区二区三区视频 | 精品视频一区二区三区在线观看| 女同性一区二区三区人了人一| 麻豆视频观看网址久久| 久久午夜影视| 久久久人人人| 国产一区二区三区国产精品| 亚洲精品乱码久久久久久蜜桃麻豆| 蜜桃成人精品| 精品一区二区三区免费看| 亚洲一区导航| 亚洲国产不卡| 国产一区二区亚洲| 国产美女撒尿一区二区| 亚洲深深色噜噜狠狠爱网站 | 国产精品久久久久久模特 | 人人精品久久| 老司机精品久久| 激情偷拍久久| 五月激情久久| 国产精品99久久免费| 日本在线一区二区三区| 亚洲欧美激情诱惑| 午夜影院欧美| 亚洲小说欧美另类婷婷| 色偷偷色偷偷色偷偷在线视频| 国产精品久久久久久久久久白浆 | 欧美精品第一区| 免费不卡在线观看| 免费日韩视频| 亚洲一区久久| av不卡在线| 国户精品久久久久久久久久久不卡| 成人国产综合| 成人亚洲精品| 高清日韩中文字幕| 成人精品视频| caoporn视频在线| 成人亚洲一区二区| 91一区二区三区四区| 国产一区调教| 久久中文字幕一区二区三区| 你懂的国产精品| 成人在线观看免费视频| 国产成人精品三级高清久久91| 国产精品2区| 国产精品久久久网站| 欧美成a人片免费观看久久五月天| 国产精品久久久久久久久免费高清| 国产精品亚洲综合色区韩国| 国产日韩欧美| 国产精品22p| av在线最新| 韩日一区二区三区| 亚洲一区欧美激情| 亚洲精品少妇| 午夜精品影视国产一区在线麻豆| 日本aⅴ精品一区二区三区| 欧美亚洲一区二区三区| 国产精品xvideos88| av中文字幕在线观看第一页| 99久久精品国产亚洲精品| 99视频+国产日韩欧美| 亚洲精品福利| 你懂的国产精品永久在线| 精品欠久久久中文字幕加勒比| 国产专区精品| 伊人久久大香线蕉av不卡| 尹人成人综合网| 亚洲人成精品久久久| 国产调教一区二区三区| 九九久久国产| 999视频精品| 亚洲乱亚洲高清| 国产高清亚洲| 久久九九国产| 蜜臀av亚洲一区中文字幕| 国产情侣一区在线| 日本在线啊啊| 免费看精品久久片| 精品一区二区三区中文字幕| 国产99亚洲| 亚州精品视频| 精品国产午夜肉伦伦影院| 极品裸体白嫩激情啪啪国产精品| 蜜臀久久久99精品久久久久久| 日本va欧美va欧美va精品| 麻豆成人综合网| 婷婷六月综合| 久久国产视频网| 色88888久久久久久影院| 亚洲久久视频| 鲁鲁在线中文| 日本亚洲三级在线| 日韩欧美在线中字| 亚洲毛片在线免费| 精精国产xxxx视频在线播放| 亚洲精品系列| 久久久久99| 国产欧美久久一区二区三区| 欧美美女一区| 日本aⅴ亚洲精品中文乱码| 日本精品不卡| 欧美中文一区| 伊人久久大香线蕉av超碰演员| 国产日韩免费| 在线综合亚洲| 成人国产精选| 日本a口亚洲| 一区在线视频观看| 超碰99在线| 欧美日韩一区自拍| 欧美日韩精品一本二本三本| 精品亚洲a∨| 日韩av不卡在线观看| 亚洲精品国产偷自在线观看| 日本国产一区| 免费日韩av片| 91精品国产91久久久久久黑人| 国产图片一区| 在线免费观看亚洲| 国产真实久久| 国产 日韩 欧美 综合 一区 | 91久久中文| 久久久久久久欧美精品| 日韩高清成人在线| 99热免费精品| 国产99精品| 亚洲午夜天堂| 国产精品密蕾丝视频下载| 国产精品毛片在线看| 日韩福利一区| 久久97久久97精品免视看秋霞| 六月丁香综合| 91精品二区| 亚洲不卡av不卡一区二区| 久久精品毛片| 国产精品视频首页| 欧美一区91| 日本强好片久久久久久aaa| 羞羞答答国产精品www一本 | 欧美日韩一二三四| 欧美少妇精品| 日韩成人精品一区| 精品一区二区三区中文字幕视频| 欧美日韩亚洲一区在线观看| 亚欧成人精品| 久久国产66| 日韩视频二区| 麻豆9191精品国产| 三级欧美韩日大片在线看| 蜜臀av一区二区三区| 免费在线观看视频一区|