vue3获取组件实例的方法
在Vue 3中,获取组件实例的方法有两种:
- 使用
ref函数:在组件的setup函数中,可以使用ref函数将组件实例存储在一个变量中,然后可以通过该变量来访问组件实例。
import { ref } from 'vue';
export default {
setup() {
const myComponent = ref(null);
// 在组件挂载后,将组件实例赋值给myComponent
onMounted(() => {
myComponent.value = this;
});
return {
myComponent
};
}
}
然后可以在模板中使用myComponent来访问组件实例:
<template>
<div>
<button @click="myComponent.someMethod()">调用组件方法</button>
</div>
</template>
- 使用
inject函数:在父组件中,可以使用provide函数提供组件实例,然后在子组件中使用inject函数获取组件实例。
// 父组件
import { provide, ref } from 'vue';
export default {
setup() {
const myComponent = ref(null);
// 在组件挂载后,将组件实例赋值给myComponent
onMounted(() => {
myComponent.value = this;
});
provide('myComponent', myComponent);
return {
myComponent
};
}
}
// 子组件
import { inject } from 'vue';
export default {
setup() {
const myComponent = inject('myComponent');
return {
myComponent
};
}
}
然后可以在子组件中使用myComponent来访问父组件的组件实例
原文地址: https://www.cveoy.top/t/topic/iO9z 著作权归作者所有。请勿转载和采集!