Vue.js中this.$nextTick()的使用

this.$nextTick()將回調(diào)延遲到下次 DOM 更新循環(huán)之后執(zhí)行镰踏。在修改數(shù)據(jù)之后立即使用它怜庸,然后等待 DOM 更新上煤。它跟全局方法 Vue.nextTick 一樣,不同的是回調(diào)的 this 自動(dòng)綁定到調(diào)用它的實(shí)例上他匪。


假設(shè)我們更改了某個(gè)dom元素內(nèi)部的文本,而這時(shí)候我們想直接打印出這個(gè)被改變后的文本是需要dom更新之后才會(huì)實(shí)現(xiàn)的夸研,也就好比我們將打印輸出的代碼放在setTimeout(fn, 0)中邦蜜;


先來第一個(gè)例子看一看

<template><section><div ref="hello"><h1>Hello World ~</h1></div><el-button type="danger" @click="get">點(diǎn)擊</el-button></section></template><script>? export default {

? ? methods: {

? ? ? get() {

? ? ? }

? ? },

? ? mounted() {

? ? ? console.log(333);

? ? ? console.log(this.$refs['hello']);

? ? ? this.$nextTick(() => {

? ? ? ? console.log(444);

? ? ? ? console.log(this.$refs['hello']);

? ? ? });

? ? },

? ? created() {

? ? ? console.log(111);

? ? ? console.log(this.$refs['hello']);

? ? ? this.$nextTick(() => {

? ? ? ? console.log(222);

? ? ? ? console.log(this.$refs['hello']);

? ? ? });

? ? }

? }</script>

可以根據(jù)打印的順序看到,在created()鉤子函數(shù)執(zhí)行的時(shí)候DOM 其實(shí)并未進(jìn)行任何渲染亥至,而此時(shí)進(jìn)行DOM操作并無作用悼沈,而在created()里使用this.$nextTick()可以等待dom生成以后再來獲取dom對(duì)象



然后來看第二個(gè)例子

<template><section><h1 ref="hello">{{ value }}</h1><el-button type="danger" @click="get">點(diǎn)擊</el-button></section></template><script>? export default {

? ? data() {

? ? ? return {

? ? ? ? value: 'Hello World ~'? ? ? };

? ? },

? ? methods: {

? ? ? get() {

? ? ? ? this.value ='你好啊';

? ? ? ? console.log(this.$refs['hello'].innerText);

? ? ? ? this.$nextTick(() => {

? ? ? ? ? console.log(this.$refs['hello'].innerText);

? ? ? ? });

? ? ? }

? ? },

? ? mounted() {

? ? },

? ? created() {

? ? }

? }</script>


?根據(jù)上面的例子可以看出,在方法里直接打印的話姐扮, 由于dom元素還沒有更新絮供, 因此打印出來的還是未改變之前的值,而通過this.$nextTick()獲取到的值為dom更新之后的值





this.$nextTick()在頁面交互茶敏,尤其是從后臺(tái)獲取數(shù)據(jù)后重新生成dom對(duì)象之后的操作有很大的優(yōu)勢(shì)杯缺,這里只是簡(jiǎn)單的例子,實(shí)際應(yīng)用中更為好用~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末睡榆,一起剝皮案震驚了整個(gè)濱河市萍肆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌胀屿,老刑警劉巖塘揣,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異宿崭,居然都是意外死亡亲铡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來奖蔓,“玉大人赞草,你說我怎么就攤上這事∵汉祝” “怎么了厨疙?”我有些...
    開封第一講書人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)疑务。 經(jīng)常有香客問我沾凄,道長(zhǎng),這世上最難降的妖魔是什么知允? 我笑而不...
    開封第一講書人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任撒蟀,我火速辦了婚禮,結(jié)果婚禮上温鸽,老公的妹妹穿的比我還像新娘保屯。我一直安慰自己,他們只是感情好涤垫,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開白布配椭。 她就那樣靜靜地躺著,像睡著了一般雹姊。 火紅的嫁衣襯著肌膚如雪股缸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評(píng)論 1 290
  • 那天吱雏,我揣著相機(jī)與錄音敦姻,去河邊找鬼。 笑死歧杏,一個(gè)胖子當(dāng)著我的面吹牛镰惦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播犬绒,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼旺入,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了凯力?” 一聲冷哼從身側(cè)響起茵瘾,我...
    開封第一講書人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎咐鹤,沒想到半個(gè)月后拗秘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡祈惶,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年雕旨,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了扮匠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡凡涩,死狀恐怖棒搜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情活箕,我是刑警寧澤力麸,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站讹蘑,受9級(jí)特大地震影響末盔,放射性物質(zhì)發(fā)生泄漏筑舅。R本人自食惡果不足惜座慰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望翠拣。 院中可真熱鬧版仔,春花似錦、人聲如沸误墓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽谜慌。三九已至然想,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間欣范,已是汗流浹背变泄。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留恼琼,地道東北人妨蛹。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像晴竞,于是被迫代替她去往敵國(guó)和親蛙卤。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容