Vue中的updated和$nextTick

$nextTick用法:將回調(diào)延遲到下次 DOM 更新循環(huán)之后執(zhí)行舞竿。在修改數(shù)據(jù)之后立即使用它枪孩,然后等待 DOM 更新。

updated用法:由于數(shù)據(jù)更改導(dǎo)致的虛擬 DOM 重新渲染和打補丁碟联,在這之后會調(diào)用該鉤子抗愁。當這個鉤子被調(diào)用時,組件 DOM 已經(jīng)更新衡查,所以你現(xiàn)在可以執(zhí)行依賴于 DOM 的操作瘩欺。

this.$nextTick()可以用作局部的數(shù)據(jù)更新后DOM更新結(jié)束后的操作,全局的可以用updated生命周期函數(shù)

在vue中操作DOM--this.$nextTick()

異步更新隊列

可能你還沒有注意到拌牲,Vue 在更新 DOM 時是異步執(zhí)行的俱饿。只要偵聽到數(shù)據(jù)變化,Vue 將開啟一個隊列塌忽,并緩沖在同一事件循環(huán)中發(fā)生的所有數(shù)據(jù)變更拍埠。
(也就是說數(shù)據(jù)變化后,DOM不會馬上更新土居,根據(jù)數(shù)據(jù)更新DOM的事件被放入異步隊列中了)
如果同一個 watcher 被多次觸發(fā)枣购,只會被推入到隊列中一次。這種在緩沖時去除重復(fù)數(shù)據(jù)對于避免不必要的計算和 DOM 操作是非常重要的擦耀。然后坷虑,在下一個的事件循環(huán)“tick”中,Vue 刷新隊列并執(zhí)行實際 (已去重的) 工作埂奈。

例如,當你設(shè)置 vm.someData = 'new value'定躏,該組件不會立即重新渲染账磺。當刷新隊列時,組件會在下一個事件循環(huán)“tick”中更新痊远。多數(shù)情況我們不需要關(guān)心這個過程垮抗,但是如果你想基于更新后的 DOM 狀態(tài)來做點什么,這就可能會有些棘手碧聪。雖然 Vue.js 通常鼓勵開發(fā)人員使用“數(shù)據(jù)驅(qū)動”的方式思考冒版,避免直接接觸 DOM,但是有時我們必須要這么做逞姿。為了在數(shù)據(jù)變化之后等待 Vue 完成更新 DOM辞嗡,可以在數(shù)據(jù)變化之后立即使用 Vue.nextTick(callback)。這樣回調(diào)函數(shù)將在 DOM 更新完成后被調(diào)用滞造。
(在這個更新DOM的隊列結(jié)束后续室,就會調(diào)用nextTick,從而執(zhí)行里面的callback)

例如:

Vue.component('example', {
  template: '<span>{{ message }}</span>',
  data: function () {
    return {
      message: '未更新'
    }
  },
  methods: {
    updateMessage: function () {
      this.message = '已更新'
      console.log(this.$el.textContent) // => '未更新'
      this.$nextTick(function () {
        console.log(this.$el.textContent) // => '已更新'
      })
    }
  }
})

遇到過的問題:當使用異步調(diào)用到的資源來修改data的內(nèi)容時(比如數(shù)據(jù)更改后新增了一個dom)
this.$nextTick () {修改這個新增dom里面的內(nèi)容}要放在修改data的代碼的后面谒养,不然可能callback中對于dom的修改不生效挺狰。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子丰泊,更是在濱河造成了極大的恐慌薯定,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瞳购,死亡現(xiàn)場離奇詭異话侄,居然都是意外死亡,警方通過查閱死者的電腦和手機苛败,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進店門满葛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人罢屈,你說我怎么就攤上這事嘀韧。” “怎么了缠捌?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵锄贷,是天一觀的道長。 經(jīng)常有香客問我曼月,道長谊却,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任哑芹,我火速辦了婚禮炎辨,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘聪姿。我一直安慰自己碴萧,他們只是感情好,可當我...
    茶點故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布末购。 她就那樣靜靜地躺著破喻,像睡著了一般。 火紅的嫁衣襯著肌膚如雪盟榴。 梳的紋絲不亂的頭發(fā)上曹质,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天,我揣著相機與錄音擎场,去河邊找鬼羽德。 笑死,一個胖子當著我的面吹牛顶籽,可吹牛的內(nèi)容都是我干的玩般。 我是一名探鬼主播,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼礼饱,長吁一口氣:“原來是場噩夢啊……” “哼坏为!你這毒婦竟也來了究驴?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤匀伏,失蹤者是張志新(化名)和其女友劉穎洒忧,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體够颠,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡熙侍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了履磨。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蛉抓。...
    茶點故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖剃诅,靈堂內(nèi)的尸體忽然破棺而出巷送,到底是詐尸還是另有隱情,我是刑警寧澤矛辕,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布笑跛,位于F島的核電站,受9級特大地震影響聊品,放射性物質(zhì)發(fā)生泄漏飞蹂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一翻屈、第九天 我趴在偏房一處隱蔽的房頂上張望陈哑。 院中可真熱鬧,春花似錦伸眶、人聲如沸芥颈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至纠屋,卻和暖如春涂臣,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背售担。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工赁遗, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人族铆。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓岩四,卻偏偏與公主長得像,于是被迫代替她去往敵國和親哥攘。 傳聞我的和親對象是個殘疾皇子剖煌,可洞房花燭夜當晚...
    茶點故事閱讀 45,047評論 2 355

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

  • 一:什么是閉包材鹦?閉包的用處? (1)閉包就是能夠讀取其他函數(shù)內(nèi)部變量的函數(shù)耕姊。在本質(zhì)上桶唐,閉包就 是將函數(shù)內(nèi)部和函數(shù)外...
    xuguibin閱讀 9,617評論 1 52
  • Vue中的nextTick涉及到Vue中DOM的異步更新,感覺很有意思茉兰,特意了解了一下尤泽。其中關(guān)于nextTick的...
    追尋1989閱讀 369評論 0 0
  • Vue中的nextTick涉及到Vue中DOM的異步更新坯约,感覺很有意思,特意了解了一下莫鸭。其中關(guān)于nextTick的...
    world_7735閱讀 1,111評論 0 21
  • Vue中的nextTick涉及到Vue中DOM的異步更新闹丐,感覺很有意思,特意了解了一下黔龟。其中關(guān)于nextTick的...
    Ruheng閱讀 685,486評論 57 522
  • 我們身邊總是有那么一些人氏身,某些本領(lǐng)比你強巍棱,特別是那些經(jīng)常需要用到的本領(lǐng)。當你不會處理某些事情時蛋欣,她趾高氣昂的跟你說...
    iwantatriangel閱讀 499評論 0 0