在開發(fā)Vue應(yīng)用過程中,我們經(jīng)常需要獲取當(dāng)前元素,Vue提供了多種方式來獲取DOM元素。
第一種方法是使用ref屬性,給元素賦予一個(gè)引用ID,可以通過this.$refs來訪問該元素,代碼示例如下:
<template>
<div ref="myDiv">
Hello World
</div>
</template>
<script>
export default {
mounted() {
console.log(this.$refs.myDiv); // 輸出元素對(duì)象
}
}
</script>
第二種方法是通過事件對(duì)象來訪問當(dāng)前元素,Vue通過$event將事件對(duì)象暴露給方法,代碼示例如下:
<template>
<button @click="handleClick">點(diǎn)擊我</button>
</template>
<script>
export default {
methods: {
handleClick(event) {
console.log(event.target); // 輸出當(dāng)前按鈕元素對(duì)象
}
}
}
</script>
第三種方法是使用$el屬性,$el是Vue實(shí)例對(duì)應(yīng)的DOM元素,可以通過this.$el來獲取,代碼示例如下:
<template>
<div>
{{ message }}
</div>
</template>
<script>
export default {
mounted() {
console.log(this.$el); // 輸出div元素對(duì)象
}
}
</script>
第四種方法是使用$refs和$el結(jié)合,通過$refs獲取元素引用ID,再通過$refs對(duì)象的屬性訪問元素的$el屬性獲取元素對(duì)象,代碼示例如下:
<template>
<div ref="myDiv">
Hello World
</div>
</template>
<script>
export default {
mounted() {
console.log(this.$refs.myDiv.$el); // 輸出元素對(duì)象
}
}
</script>
除了以上四種方法,還可以通過jQuery或原生JavaScript獲取元素,但不推薦使用,因?yàn)檫@樣會(huì)增加代碼的復(fù)雜度。