【Vue】父组件如何调用子组件的函数
在Vue中,父组件可以通过几种方式调用子组件的方法:
- 使用
ref
属性引用子组件实例,然后在父组件中通过this.$refs.refName.methodName()
调用。 - 使用事件派发,子组件通过
$emit
触发一个事件,父组件监听这个事件并调用子组件的方法。
下面是使用ref
的例子:
<!-- 父组件 -->
<template>
<div>
<child-component ref="child"></child-component>
<button @click="callChildMethod">Call Child Method</button>
</div>
</template>
<script>
import ChildComponent from './ChildComponent.vue';
export default {
components: {
ChildComponent
},
methods: {
callChildMethod() {
this.$refs.child.childMethod();
}
}
};
</script>
<!-- 子组件 -->
<template>
<div>
<p>Child Component</p>
</div>
</template>
<script>
export default {
methods: {
childMethod() {
console.log('Child method called');
}
}
};
</script>
下面是使用事件派发的例子:
<!-- 父组件 -->
<template>
<div>
<child-component @call-child-method="parentMethod"></child-component>
</div>
</template>
<script>
import ChildComponent from './ChildComponent.vue';
export default {
components: {
ChildComponent
},
methods: {
parentMethod() {
console.log('Parent method called');
}
}
};
</script>
<!-- 子组件 -->
<template>
<div>
<p>Child Component</p>
<button @click="callParentMethod">Call Parent Method</button>
</div>
</template>
<script>
export default {
methods: {
callParentMethod() {
this.$emit('call-child-method');
}
}
};
</script>
在这两个例子中,父组件可以通过ref
引用子组件并直接调用其方法,或者通过事件委托机制让子组件触发父组件的方法。
评论已关闭