在vue2中 我们可以绑定 ref 通过this.$refs 拿到dom 元素,如果绑定到子组件上,可以调用子组件方法等等。
在vue3中setup函数在组件创建前执行,比beforeCreate 触发还要早,这时候,还没有data,methods等等一些东西,所以没有this这种东西。这里列举一下vue3通过ref来调用子组件的方法
第一种是 配置setup 的方式
<!-- -----------父组件------------------ -->
<template>
<child ref="child" />
</template>
<script>
import child from './child.vue'
import { ref, onMounted } from 'vue'
export default {
components: {
child
},
setup(props, context) {
const child = ref(null)
onMounted(() => {
child.value.init('小王', 23) //调用子组件的 init 方法
})
return {
child
}
}
}
</script>
<!-- -----------子组件------------------ -->
<template>
<h1>child</h1>
</template>
<script>
export default {
setup(props, con