按照官方文档的介绍,在组件中使用ref可以调用子组件的方法的对象。
当我们的子组件是使用<script setup lang="ts">
的语法糖去编写的,那么它的方法的对象都不会暴露给父组件,见官方文档解析
所以,我们子组件中的方法需要如下编写:
<script setup lang="ts">
import SelectSpecs from "./selectSpecs.vue";
import { ref } from "vue";
const popup = ref(null);
function open() {
popup.value.open();
}
function close() {
popup.value.close();
}
// 将需要对外暴露的方法和对象添加到这里
defineExpose({
open,
});
</script>
然后父组件就按照正常的方法就可以访问该属性了。