2024-12-29 要拿到 DOM 實體要用_value
2024-12-29 要拿到 DOM 實體要用_value
要拿到 DOM 實體要用 .value
非常棒的觀察!你完全說對了,我來幫你詳細拆解:
✅ 你問的這段程式碼:
1 | const el = memberListRef.value |
確實等同於:
1 | if (memberListRef.value) { |
👇 那這裡每個部分是什麼意思呢?
🔸 memberListRef.value
- 因為
memberListRef
是一個 Vue 的ref()
,要拿到 DOM 實體要用.value
。 - 這個對應的是
<div class="member-list" ref="memberListRef">
裡的 DOM 元素。
🔸 scrollTop
- 這是 DOM 元素的屬性。
- 代表「目前這個區塊已經滾動了多少像素的距離」。
- 你可以設定它,讓畫面自動捲動。
🔸 scrollHeight
- 這是 DOM 元素的總高度(包含看不到的那部分,也就是整個捲軸的內容高度)。
- 也就是「所有內容的總高度」。
✅ 所以這行的意思是:
1 | el.scrollTop = el.scrollHeight |
就是把「目前滾動距離」設成「整個內容的總高度」
➡️ 這樣畫面就會滾到底部啦!
❓為什麼要寫成這樣?為什麼不用合併?
兩種寫法都可以,這是純粹為了可讀性:
1 | const el = memberListRef.value |
這樣讓程式更好理解、也比較方便在 el
上加除錯點,或在未來擴充邏輯時多做別的事。
如果你還想進一步了解滾動的原理,或試著改成「每次新增都用動畫滾動到底」也可以,我可以幫你升級!🌟