今天做項目遇到的一個問題,普通的HTML裏面給滾動條定位的時候,直接是兩步走
1、var box=document.getElementById("box");
2、box.scrollTop=box.scrollHeight;
但是公司項目卻是vue項目,所以這樣寫不生效,在控制檯查看scrollTop屬性始終是0。
最終翻了很多網頁終於找到了答案:this.$nextTick
簡單的介紹下$nextTick:
Vue 實現響應式並不是數據發生變化之後 DOM 立即變化,而是按一定的策略進行 DOM 的更新。
$nextTick 是在下次 DOM 更新循環結束之後執行延遲迴調,在修改數據之後使用 。
既然$nextTick是在下次DOM更新時執行的,那正好用。
果然是成功把滾動條定位到底部。
總結一下就是 如果我們想對未來更新後的視圖進行操作,我們只需要把要執行的函數傳遞給this.$nextTick方法,vue就會給我們做這個工作。