1. 程式人生 > 其它 >Vue-Vue中在mounted生命週期中獲取dom物件獲取不到

Vue-Vue中在mounted生命週期中獲取dom物件獲取不到

Vue中在mounted生命週期中獲取dom物件獲取不到

#Dom物件
        <RadioGroup
                        v-model="handle_side"
                        type="button"
                        style="width: 150px; margin-left: 15px"
                        @on-change="get_data"
                        id='radiogroup_1'
                    >
                        <Radio label="dev" id='dev'>
                             <span>產品側</span>
                        </Radio>
                        <Radio label="sec" id="sec" name="sec">
                             <span>安全側</span>
                        </Radio>
                    </RadioGroup>
#在mounted階段獲取dom物件
mounted() {
        this.disableSecRadio();
    },

    disableSecRadio: function (){
            console.log(document.getElementById('radiogroup_1'))
        },
#此時頁面控制檯 顯示為null

 

按照Vue官方文件說明,在mounted階段,模板已經渲染完畢,理應到獲取到dom元素,但是實際上並沒有。

為了解決獲取不到dom元素的問題,查詢了相應資料,得到了相關的解決辦法---在mounted中新增Vue的全域性方法$nextTick---用於DOM載入更新完後進行的一次回撥函式性質的操作,如下:

#mounted獲取DOM物件
   mounted() {
       setTimeout(()=> {
           //code
        this.disableSecRadio();
        }, 1000);
    },
#此時就可以獲取到DOM物件了

 此時就可以在mounted獲取到Dom物件了!!!

相關資料:

vue中 created mounted 動態獲取資料渲染後,獲取DOM問題