$refs是Vue提供的一個特殊屬性,是一個對象,用于通過在vue實例上添加ref屬性引用來訪問子組件和元素。
以一個簡單的例子來說明:
<template>
<div>
<child-component ref="childComp"></child-component>
</div>
</template>
<script>
import childComponent from './childComponent.vue';
export default {
components: {
childComponent
},
mounted() {
const childComp = this.$refs.childComp;
console.log(childComp);
}
}
</script>
在這個例子中,我們在模板中為子組件添加了ref屬性,并賦值為“childComp”。接著在vue實例中,我們通過this.$refs.childComp獲取到了這個子組件的實例。
使用$refs的好處是,我們可以在父組件中直接訪問子組件的方法和屬性,而不需要通過props或$emit來傳遞。這可以大大簡化我們的代碼,提高開發效率。
需要注意的是,$refs只會在子組件渲染完成后才能訪問到。也就是說,在mounted()、created()等生命周期鉤子函數中,可能還無法訪問$refs。