国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

vue中$nextTick的用法講解

2019-11-19 12:16:37
字體:
供稿:網(wǎng)友

vue是非常流行的框架,他結(jié)合了angular和react的優(yōu)點,從而形成了一個輕量級的易上手的具有雙向數(shù)據(jù)綁定特性的mvvm框架。本人比較喜歡用之。在我們用vue時,我們經(jīng)常用到一個方法是this.$nextTick,相信你也用過。我常用的場景是在進行獲取數(shù)據(jù)后,需要對新視圖進行下一步操作或者其他操作時,發(fā)現(xiàn)獲取不到dom。因為賦值操作只完成了數(shù)據(jù)模型的改變并沒有完成視圖更新。在這個時候我們需要用到本章介紹的函數(shù)。

雖然 Vue.js 通常鼓勵開發(fā)人員沿著“數(shù)據(jù)驅(qū)動”的方式思考,避免直接接觸 DOM,但是有時我們確實要這么做。比如你在Vue生命周期的created()/mounted()鉤子函數(shù)進行的DOM操作一定要放在Vue.nextTick()的回調(diào)函數(shù)中。原因是什么呢,原因是在created()/mounted()鉤子函數(shù)執(zhí)行的時候DOM 其實并未進行任何渲染,而此時進行DOM操作無異于徒勞,所以此處一定要將DOM操作的js代碼放進Vue.nextTick()的回調(diào)函數(shù)中。

為什么要用nextTick?

請看如下一段代碼

new Vue({ el: '#app', data: {  list: [] }, mounted: function () {  this.get() }, methods: {  get: function () {   this.$http.get('/api/article').then(function (res) {    this.list = res.data.data.list    // ref list 引用了ul元素,我想把第一個li顏色變?yōu)榧t色    this.$refs.list.getElementsByTagName('li')[0].style.color = 'red'   })  }, }})

我在獲取到數(shù)據(jù)后賦值給數(shù)據(jù)模型中l(wèi)ist屬性,然后我想引用ul元素找到第一個li把它的顏色變?yōu)榧t色,但是事實上,這個要報錯了,我們知道,在執(zhí)行這句話時,ul下面并沒有l(wèi)i,也就是說剛剛進行的賦值操作,當前并沒有引起視圖層的更新。因此,在這樣的情況下,vue給我們提供了$nextTick方法,如果我們想對未來更新后的視圖進行操作,我們只需要把要執(zhí)行的函數(shù)傳遞給this.$nextTick方法,vue就會給我們做這個工作。

new Vue({ el: '#app', data: {  list: [] }, mounted: function () {  this.$nextTick(() => {    this.get()  }) }, methods: {  get: function () {   this.$http.get('/api/article').then(function (res) {    this.list = res.data.data.list    // ref list 引用了ul元素,我想把第一個li顏色變?yōu)榧t色    this.$refs.list.getElementsByTagName('li')[0].style.color = 'red'   })  }, }})

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對武林網(wǎng)的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 长丰县| 惠水县| 林甸县| 永善县| 中西区| 鄂伦春自治旗| 合山市| 乌拉特前旗| 塔城市| 巴彦淖尔市| 昭苏县| 海淀区| 通海县| 色达县| 登封市| 明星| 博白县| 巩义市| 凤凰县| 阳高县| 特克斯县| 德安县| 酒泉市| 和平区| 枣强县| 安阳市| 沅江市| 柏乡县| 高雄市| 襄汾县| 饶阳县| 南涧| 玛纳斯县| 益阳市| 景宁| 朝阳区| 遂平县| 梁平县| 当雄县| 皮山县| 合阳县|