vue中一個子組件在父組件中有兩個相同的子組件,如何獲取子組件的dom元素呢,你可能想到的是使用vue提供的ref,通過$refs獲取dom元素
但是如果兩個子組件采用相同的方法就會獲取到相同的元素,在這里可以通過document.getElementById()方法來獲取,
組件都有一個_uid,可以在子組件的定義動態的綁定id,並且該ID是計算屬性代碼如下:
<template>
<div>
<!-- 對象動態綁定 id 的獲取通過計算屬性獲取相應的倆球的Id-->
<div class="ball" :style="style" :id="ballId"></div>
</div>
</template>
<script>
export default {
mounted() {
console.log(this);
let ball = document.getElementById(this.ballId);//通過這種方式就能獲取父組件中兩個div實例元素截圖如下

computed: {
ballId() {
return "ball" + this._uid;
}
};
</script>
<style scoped>
.ball {
width: 100px;
height: 100px;
border-radius: 50%;
border: 1px solid pink;
line-height: 100px;
text-align: center;
}
</style>