理解vue的重要機制 非同步更新佇列

2021-09-19 03:55:24 字數 578 閱讀 3266

獲取當前div內容

這段**不難理解,但是執行時卻在後台丟擲乙個錯誤:cannot read property 『innerhtml』 of null,意思是獲取不到div元素,這句是「非同步更新佇列」

vue在觀察到資料變化時並不是直接更新dom,而是開啟乙個佇列,並緩衝到同乙個事件迴圈中發生的所有資料變化。在緩衝時會去除重複資料,從而避免不必要的計算和dom操作。然後在下一事件迴圈tick中,vue重新整理佇列並執行實際(已去重的資料)工作。所以如果你用乙個for迴圈來動態改變資料100次,其實它只會應用最後一改變,如果沒有這個機制,dom就會被重繪100次,這固然是很大的開銷。

所以上面之所以報錯,在執行this.showdiv=true時,div仍然還沒有被建立出來,直到下乙個vue事件迴圈,才開始建立,而$nexttick就是用來什麼時候dom更新完成

gettext:function())  

}

非同步訊息機制的理解

1 looper準備工作場地 sthreadlocal 和工作用的道具 messagequeue 2 handler可以理解為 該機制的外掛程式,在activity中,因為activitythread已經定義了looper,所以直接例項化hander就可以使用了 3 messagequeue是系統中...

同步機制與非同步機制的理解

同步機制與非同步機制的理解 同步機制即在進行輸入輸出時,必須等待輸入輸出完畢後,才能進行後面的操作。非同步傳輸機制就不必等待完畢就可進行其它操作。網路上有乙個比較通俗的例子 請吃飯 同步就是我叫你吃飯,你聽到了就立刻跟我去,若你沒有反應,那我就不停的叫你,直到你回應。同步的特點是我不能做其他任何的事...

從Vue的DOM構建機制中理解key

在diff演算法中,他只會對同級的dom元素進行比較,例如 改變後 這個時候最好的解決方法是將原來的標籤移動到改變後的位置,但diff演算法不這麼做,它首先會比較每一層的變化,就如上面的例子,他的做法是把第三層的標籤先刪掉,再在第二層裡建立乙個.那麼在同層比較中 如果節點型別不同,直接乾掉前面的節點...