Vue-Vue中在mounted生命週期中獲取dom物件獲取不到
阿新 • • 發佈:2022-05-12
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物件了!!!