在Vue中,有時候需要在父組件中訪問子組件的某個元素或方法。這時候可以使用$refs。
通過在子組件中使用ref屬性給元素或組件命名,然后在父組件中通過this.$refs.xxx訪問對應的元素或組件。
<template>
<div>
<child-component ref="child"></child-component>
</div>
</template>
<script>
import ChildComponent from './ChildComponent.vue';
export default {
components: {
ChildComponent
},
mounted() {
const child = this.$refs.child; // 獲取子組件實例
const el = child.$el; // 獲取子組件根元素
const value = child.getValue(); // 調用子組件方法
}
}
</script>
需要注意的是,只有在子組件掛載后才能獲取到$refs,否則會返回undefined。
另外,由于$refs是一個對象,所以在使用時需要判斷是否存在對應的屬性,否則會報錯。