最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于Vue.nextTick()的正確使用方法淺析

 更新時(shí)間:2017年08月25日 09:43:31   作者:安小下  
最近在項(xiàng)目中遇到了一個(gè)需求,我們通過(guò)Vue.nextTick()來(lái)解決這一需求,但發(fā)現(xiàn)網(wǎng)上這方面的資料較少,所以自己來(lái)總結(jié)下,下面這篇文章主要給大家介紹了關(guān)于Vue.nextTick()正確使用方法的相關(guān)資料,需要的朋友可以參考下。

本文主要給大家介紹了關(guān)于Vue.nextTick()的正確使用,分享出來(lái)供大家參考學(xué)習(xí),下面話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧。

什么是Vue.nextTick()

官方文檔解釋如下:

在下次 DOM 更新循環(huán)結(jié)束之后執(zhí)行延遲回調(diào)。在修改數(shù)據(jù)之后立即使用這個(gè)方法,獲取更新后的 DOM。

我理解的官方文檔的這句話的側(cè)重點(diǎn)在最后那半句獲取更新后的DOM,獲取更新后的DOM言外之意就是什么操作需要用到了更新后的DOM而不能使用之前的DOM或者使用更新前的DOM或出問題,所以就衍生出了這個(gè)獲取更新后的DOM的Vue方法。所以放在Vue.nextTick()回調(diào)函數(shù)中的執(zhí)行的應(yīng)該是會(huì)對(duì)DOM進(jìn)行操作的 js代碼,比如Swiper擴(kuò)展包的

var swiper = new Swiper('.swiper-container', {
   pagination: '.swiper-pagination',
   nextButton: '.swiper-button-next',
   prevButton: '.swiper-button-prev',
   paginationClickable: true,
   spaceBetween: 30,
   centeredSlides: true,
   autoplay: 2500,
   autoplayDisableOnInteraction: false
  });

什么時(shí)候需要用的Vue.nextTick()

  • 你在Vue生命周期的created()鉤子函數(shù)進(jìn)行的DOM操作一定要放在Vue.nextTick()的回調(diào)函數(shù)中。原因是什么呢,原因是在created()鉤子函數(shù)執(zhí)行的時(shí)候DOM 其實(shí)并未進(jìn)行任何渲染,而此時(shí)進(jìn)行DOM操作無(wú)異于徒勞,所以此處一定要將DOM操作的js代碼放進(jìn)Vue.nextTick()的回調(diào)函數(shù)中。與之對(duì)應(yīng)的就是mounted鉤子函數(shù),因?yàn)樵撱^子函數(shù)執(zhí)行時(shí)所有的DOM掛載和渲染都已完成,此時(shí)在該鉤子函數(shù)中進(jìn)行任何DOM操作都不會(huì)有問題 。
  • 在數(shù)據(jù)變化后要執(zhí)行的某個(gè)操作,而這個(gè)操作需要使用隨數(shù)據(jù)改變而改變的DOM結(jié)構(gòu)的時(shí)候,這個(gè)操作都應(yīng)該放Vue.nextTick()的回調(diào)函數(shù)中。

原因是,Vue是異步執(zhí)行dom更新的,一旦觀察到數(shù)據(jù)變化,Vue就會(huì)開啟一個(gè)隊(duì)列,然后把在同一個(gè)事件循環(huán) (event loop) 當(dāng)中觀察到數(shù)據(jù)變化的 watcher 推送進(jìn)這個(gè)隊(duì)列。如果這個(gè)watcher被觸發(fā)多次,只會(huì)被推送到隊(duì)列一次。這種緩沖行為可以有效的去掉重復(fù)數(shù)據(jù)造成的不必要的計(jì)算和DOm操作。而在下一個(gè)事件循環(huán)時(shí),Vue會(huì)清空隊(duì)列,并進(jìn)行必要的DOM更新。

當(dāng)你設(shè)置 vm.someData = 'new value',DOM 并不會(huì)馬上更新,而是在異步隊(duì)列被清除,也就是下一個(gè)事件循環(huán)開始時(shí)執(zhí)行更新時(shí)才會(huì)進(jìn)行必要的DOM更新。如果此時(shí)你想要根據(jù)更新的 DOM 狀態(tài)去做某些事情,就會(huì)出現(xiàn)問題。。為了在數(shù)據(jù)變化之后等待 Vue 完成更新 DOM ,可以在數(shù)據(jù)變化之后立即使用 Vue.nextTick(callback) 。這樣回調(diào)函數(shù)在 DOM 更新完成后就會(huì)調(diào)用。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • vue中iframe的使用及說(shuō)明

    vue中iframe的使用及說(shuō)明

    這篇文章主要介紹了vue中iframe的使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • vue如何根據(jù)權(quán)限生成動(dòng)態(tài)路由、導(dǎo)航欄

    vue如何根據(jù)權(quán)限生成動(dòng)態(tài)路由、導(dǎo)航欄

    這篇文章主要介紹了vue如何根據(jù)權(quán)限生成動(dòng)態(tài)路由、導(dǎo)航欄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Vue新搭檔TypeScript快速入門實(shí)踐記錄

    Vue新搭檔TypeScript快速入門實(shí)踐記錄

    TypeScript 是一種由微軟開發(fā)的自由和開源的編程語(yǔ)言,它是 JavaScript 的一個(gè)超集,擴(kuò)展了 JavaScript 的語(yǔ)法。這篇文章主要介紹了Vue新搭檔TypeScript快速入門實(shí)踐,需要的朋友可以參考下
    2021-06-06
  • 解決vite.config.js無(wú)法使用__dirname的問題

    解決vite.config.js無(wú)法使用__dirname的問題

    這篇文章主要介紹了解決vite.config.js無(wú)法使用__dirname的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 詳解vue-cli開發(fā)環(huán)境跨域問題解決方案

    詳解vue-cli開發(fā)環(huán)境跨域問題解決方案

    本篇文章主要介紹了vue-cli開發(fā)環(huán)境跨域問題解決方案,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-06-06
  • vue實(shí)現(xiàn)登錄頁(yè)面的驗(yàn)證碼以及驗(yàn)證過(guò)程解析(面向新手)

    vue實(shí)現(xiàn)登錄頁(yè)面的驗(yàn)證碼以及驗(yàn)證過(guò)程解析(面向新手)

    這篇文章主要介紹了vue實(shí)現(xiàn)登錄頁(yè)面的驗(yàn)證碼以及驗(yàn)證過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • vue的watch監(jiān)聽器取消的方法小結(jié)

    vue的watch監(jiān)聽器取消的方法小結(jié)

    在 Vue 中,watch 監(jiān)聽器是可以取消的,取消監(jiān)聽器的方式取決于你是如何使用 watch 的,所以本文給大家餓介紹了vue的watch監(jiān)聽器取消的方法,并通過(guò)代碼示例講解的非常詳細(xì),需要的朋友可以參考下
    2025-02-02
  • vue3+webpack中npm發(fā)布組件的實(shí)現(xiàn)

    vue3+webpack中npm發(fā)布組件的實(shí)現(xiàn)

    本文主要介紹了vue3+webpack中npm發(fā)布組件的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • Vue組件之Tooltip的示例代碼

    Vue組件之Tooltip的示例代碼

    這篇文章主要介紹了Vue組件之Tooltip的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • Vue3?源碼解讀之?Teleport?組件使用示例

    Vue3?源碼解讀之?Teleport?組件使用示例

    這篇文章主要為大家介紹了Vue3?源碼解讀之?Teleport?組件使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08

最新評(píng)論

靖宇县| 嘉义市| 武威市| 民丰县| 汉源县| 永城市| 云安县| 登封市| 乌鲁木齐县| 仁怀市| 本溪| 吉木萨尔县| 綦江县| 韶关市| 周口市| 永兴县| 潜山县| 运城市| 八宿县| 万年县| 东山县| 平阴县| 礼泉县| 玉环县| 屏东县| 龙山县| 吉木萨尔县| 杭州市| 浪卡子县| 新河县| 丹棱县| 金沙县| 桐乡市| 商都县| 怀远县| 潮安县| 孝义市| 农安县| 广元市| 阿坝县| 桃江县|