vue獲取dom元素注意問題


mounted(){
        setTimeout(()=>{
          this.contentToggle();
        },1000)
    },

methods:{
      contentToggle(){
        console.log(this.$refs.bodyFont.offsetHeight);
      }
    }

vue想要獲取dom元素的高,一般情況下我們都可以想到寫在mounted函數里,即dom加載完再獲取,但是結果並不如我們所想,又想到用一個

this.$nextTick(()=>{
     
       //函數
})

來獲取,發現根本沒用啊/。。

所以好的辦法就是用一個setTimeout定時器,時間可以設為0,但是有時候生效,有時候不生效,還是加一個小的時間值比較保險,這樣就可以保證獲取到的一定是dom加載后的了,該原理適用於vue中很多傳值的問題,剛開始獲取不到傳過來的值,用一個setTimeout就可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM