真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

vue中watcher的作用是什么-創(chuàng)新互聯(lián)

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)vue 中watcher的作用是什么,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)主營順慶網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,APP應(yīng)用開發(fā),順慶h5成都微信小程序搭建,順慶網(wǎng)站營銷推廣歡迎順慶等地區(qū)企業(yè)咨詢
watch: {
 someProp () {
  // do something
 }
}
// 或者
watch: {
 someProp: {
  deep: true,
  handler () {
   // do something
  }
 }
}

上面的寫法告訴 vue,我需要監(jiān)聽 someProp 屬性的變化,于是 vue 在內(nèi)部就會為我們創(chuàng)建一個 watcher 對象。(限于篇幅,我們不聊 watcher 的具體實(shí)現(xiàn),感興趣的可以直接看源碼 watcher)

然而在 vue 中,watcher 的功能并沒有這么單一,先上段代碼:


在線demo

上面代碼非常簡單,我們現(xiàn)在主要關(guān)注 created 鉤子中打印的 this._watchers,如下:

分別展開三個 watcher,觀察每一個 expression,從上到下分別為:

b() {   return this.a * 2;?  }
"a"
function () {   vm._update(vm._render(), hydrating);?  }

上面三個 watcher 代表了三種不同功能的 watcher,我們將其按功能分為三類:

  • 在 watch 中定義的,用于監(jiān)聽屬性變化的 watcher (第二個)

  • 用于 computed 屬性的 watcher (第一個)

  • 用于頁面更新的 watcher (第三個)

normal-watcher

我們在 watch 中定義的,都屬于這種類型,即只要監(jiān)聽的屬性改變了,都會觸發(fā)定義好的回調(diào)函數(shù)

computed-watcher

每一個 computed 屬性,最后都會生成一個對應(yīng)的 watcher 對象,但是這類 watcher 有個特點(diǎn),我們拿上面的 b 舉例:

屬性 b 依賴 a,當(dāng) a 改變的時候,b 并不會立即重新計(jì)算,只有之后其他地方需要讀取 b 的時候,它才會真正計(jì)算,即具備 lazy(懶計(jì)算)特性

render-watcher

每一個組件都會有一個 render-watcher, function () {? vm._update(vm._render(), hydrating);? }, 當(dāng) data/computed

中的屬性改變的時候,會調(diào)用該 render-watcher 來更新組件的視圖

三種 watcher 的執(zhí)行順序

除了功能上的區(qū)別,這三種 watcher 也有固定的執(zhí)行順序,分別是:

computed-render -> normal-watcher -> render-watcher

這樣安排是有原因的,這樣就能盡可能的保證,在更新組件視圖的時候,computed 屬性已經(jīng)是最新值了,如果 render-watcher 排在 computed-render 前面,就會導(dǎo)致頁面更新的時候 computed 值為舊數(shù)據(jù)。

下面從一段實(shí)例代碼中看下vue中的watcher

在這個示例中,使用 watch 選項(xiàng)允許我們執(zhí)行異步操作(訪問一個 API),限制我們執(zhí)行該操作的頻率,并在我們得到最終結(jié)果前,設(shè)置中間狀態(tài)。這是計(jì)算屬性無法做到的。


Ask a yes/no question:

{{ answer }}

上述就是小編為大家分享的vue 中watcher的作用是什么了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


分享標(biāo)題:vue中watcher的作用是什么-創(chuàng)新互聯(lián)
鏈接URL:http://weahome.cn/article/cohcdj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部