一狡赐、根據(jù)(組件)div高度判斷是否第二次拉接口
由于組件原因窑业,當頁面第一次加載數(shù)據(jù)量較大的時候,只顯示了幾條數(shù)據(jù)枕屉。第二次拉口才能正常滾動常柄。組件那邊說是因為高度判斷的問題,高度不夠重新拉一下接口
- 思路:當內(nèi)容高度小于div高度并且每行高度和數(shù)組長度的乘積大于div高度時重新拉一次接口
- 實現(xiàn):使用ref獲取當前組件div高度
const tableHeight = this.$refs.refName.$el.getElementByClassName('divName')[0].offsetheight
使用ref獲取當前組件每行高度
const tableHeight = this.$refs.refName.$el.getElementByClassName('rowName')[0].offsetheight
在這元素就獲取完成了搀擂,但是在這確踩了一個坑:拉完接口立馬獲取元素的高度為0西潘,放到nextTick也不頂用,排查很久發(fā)現(xiàn)用settimeout延遲獲取一下就可以了
原因:元素渲染需要時間哨颂,立馬獲取高度肯定是沒有的
二喷市、input輸入框選中完成自動聚焦到下一個輸入框
- 思路 選中輸入完成,失焦當前輸入框品姓,js聚焦下一個輸入框
在實現(xiàn)時碰到了一個問題寝并,沒辦法手動失焦元素,導致有兩個輸入框同時聚焦 - 解決:使用一個頁面只能有一個元素被點擊的特性來做這個功能
<input id='xxx' />
document.getElementById('xxx').click()
就能實現(xiàn)了(雖然有點丑)
三腹备、首次加載數(shù)據(jù)量太大頁面卡死優(yōu)化
- 思路:使用分頁加載(不符合產(chǎn)品需求pass),使用虛擬滾動(可行)