1、問題描述:在彈框里,有個table,我本意是想着在拿到數據渲染table后,利用setCurrentRow()方法讓第一行為默認選中高亮狀態,這就需要操作dom,然而這個dom在這里根本拿不到,即使是加了this.$nextTick(()=>{})。
2、但是根據以往的經驗,我一般關閉dialog或者提交數據的時候都會調用dom進行清除數據或者驗證,所以根據ref來操作dom是沒有問題的(雖然我在dialog中直接獲取不到dom,但是點擊事件中都能獲取到dom)
3、原因:找了半天才發現……真是眾里尋他千百度、一瞅文檔喊卧槽啊!
4、解決:我發現open事件就是個垃圾……正確姿勢是在給底部加上slot='footer',我之前一直都是刪掉的,覺得沒有用,footer這個B玩意是實時加載的,你說氣人不?
5、試一下:mounted()中可以直接打印this.$refs,created()中打印dom需要加上this.$nextTick()
6、總結:這個懶渲染區域有點像v-if,在打開彈框前一直都拿不到dom的,點擊事件一定是在打開后你才能點得到按鈕的吧,所以點擊事件可以拿到dom,なるほど
7、補充:解決第一條數據高亮可以設置 :class="{firstRow:isFirstRow}" ,設置firstRow的樣式后,控制isFirstRow的值為true還是false就行了