根據這個 svelte 教程:Svelte Official Tutorials,beforeUpdate生命周期方法在 DOM 更新之前運行。并afterUpdate在 DOM 更新后運行。
他們依靠 div 的 offsetHeight 和 scrollTop 來了解它是否應該滾動以顯示新內容。
但這是如何作業的beforeUpdate?DOM 尚未更新,因此高度沒有改變,因此現在進行計算沒有意義。
這不應該在afterUpdateDOM 中完成并且我們得到正確的 offsetHeight 和 scrollTop 嗎?
同樣在一般情況下(不在 Svelte 的背景關系中),這些屬性是否在使用 DOM 樹渲染 DOM 之前計算并最終確定?
uj5u.com熱心網友回復:
beforeUpdate您對和的調度是正確的afterUpdate。但無論如何,Svelte 教程代碼是正確的,因為邏輯是這樣的:
- 在
beforeUpdate中,檢查滾動條/位置是否靠近滾動容器的底部 - 在,只有在簽到回傳
afterUpdate時才滾動到底部。如果用戶向上滾動然后輸入新訊息,這樣做是為了不滾動到底部 - 在這種情況下,他可能希望留在那個位置。beforeUpdatetrue
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/444166.html
上一篇:PHPDOM為什么使用removeChild洗掉元素的子節點會中斷其子節點上的foreach回圈?
下一篇:執行緒成員為空,但已保存
