Vue 解決通過this.$refs來獲取DOM或者組件報錯問題

this.$refs的使用場景

如果ref屬性加在普通元素上,那么this.$refs.name則指向該DOM元素

如果ref屬性加在組件上,那么this.$refs.name指向該組件實例


為什么有時候通過this.$refs.name來獲取會報錯?

一個比較常見的場景:在一個彈窗打開的時候立刻通過this.$refs來獲取內(nèi)容就會出現(xiàn)xxx is undefined的錯誤

因為ref本身是作為渲染結(jié)果被創(chuàng)建的,在渲染的時候是不能訪問的,因為他們還不存在!

如果此時代碼是需要這樣來寫代碼,那么你可以在DOM渲染完畢后再進行獲取

this.$nextTick(() => {

this.$refs.name... //DOM渲染完畢后就能正常獲取了

})

通過this.$nextTick()獲取到的值為dom更新之后的值

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容