1.原生js操作dom
const dom = getElementById('box')
2.vue官方方法:ref
<div class="set" ref="up">
該元素是我們要操作的dom對象,它的ref是 up
@click="Alert"
給元素一個點擊事件,編寫對應的方法部分代碼
this.$refs.up.style.display = "block";
注意:如果要操作的元素是處於 隱藏和顯示 狀態中,此時多次操作refs可能會導致獲取到的元素為空,這是因為 $refs 只會在組件渲染完成之后生效, ref 本身作為渲染結果被創建,在初始渲染的時候不能訪問他們,是不存在的。並且它們不是響應式的,所有的動態加載的模板更新它都無法相應的變化。只在組件渲染完成后才填充,用於元素或子組件注冊引用信息,注冊完成,將會注冊在父組件 $refs 對象上。時常隱藏和顯示元素操作會導致在渲染完成前獲取元素時為空報錯。
3.jQuery操作dom
只要拿jQuery的選擇器,選中相應的dom進行操作就可以了,但是大家都知道jQuery獲取元素是查找頁面所有,相當於“循環”所有元素直至找到需要的dom,但是vue是單頁面的,jQuery獲取dom並不只是獲取vue當前頁面,而是從根路由開始查找所有,當其他頁面出現相同的元素,也會被獲取到,而且jQuery操作的dom,如果是根據動態獲取數據渲染的,那么寫在mounted里的操作方法將會失效,必須放到updated里,這樣會導致有些操作被執行多遍,所以還是不建議在vue中使用jQuery。
可參考文獻地址:
vue中ref的使用(this.$refs獲取為空)
