在 vue.js 中,可通過(guò)四種方式獲取 dom 元素:使用 ref 為組件或 dom 元素創(chuàng)建引用;通過(guò) queryselector 根據(jù) css 選擇器獲取 dom 元素;通過(guò) getboundingclientrect 獲取 dom 元素邊界矩形信息;通過(guò) event.target 在事件發(fā)生時(shí)獲取觸發(fā)事件的 dom 元素。
Vue 中獲取 DOM
在 Vue.js 中,獲取 DOM 元素有幾種方法,具體取決于實(shí)際需要。
1. 通過(guò) ref
ref 屬性為組件或 DOM 元素創(chuàng)建一個(gè)引用。在組件中,可以使用 this.$refs
訪問(wèn)引用。對(duì)于 DOM 元素,可以使用 $refs
訪問(wèn) DOM 節(jié)點(diǎn)。
<code class="javascript">// 組件中 <template><div ref="myDiv"></div> </template><script> export default { mounted() { console.log(this.$refs.myDiv); // 獲取 myDiv DOM 節(jié)點(diǎn) } } </script> // DOM 元素 <div ref="myDiv"></div> <script> console.log(document.myDiv); // 獲取 myDiv DOM 節(jié)點(diǎn) </script></code>
登錄后復(fù)制
2. 通過(guò) querySelector
querySelector
方法可以根據(jù) CSS 選擇器獲取 DOM 元素。
<code class="javascript">// 組件中 const myDiv = this.$el.querySelector('div'); // DOM 元素 const myDiv = document.querySelector('div');</code>
登錄后復(fù)制
3. 通過(guò) getBoundingClientRect
getBoundingClientRect
方法返回一個(gè)包含 DOM 元素邊界矩形信息的 DOMRect 對(duì)象。
<code class="javascript">// 組件中 const rect = this.$el.getBoundingClientRect(); // DOM 元素 const rect = document.myDiv.getBoundingClientRect();</code>
登錄后復(fù)制
4. 通過(guò) event.target
當(dāng)事件發(fā)生時(shí),event.target
屬性包含觸發(fā)事件的 DOM 元素。
<code class="javascript">// 在事件處理函數(shù)中 const target = event.target;</code>
登錄后復(fù)制
根據(jù)具體情況,可以根據(jù)上述方法選擇最合適的方法來(lái)獲取 DOM 元素。