vue:多重嵌套的子组件调用父组件方法
时间: 2023-01-31 22:27:13 浏览: 125
vue组件中实现嵌套子组件案例
5星 · 资源好评率100%
在 Vue.js 中,如果你想在一个子组件中调用父组件的方法,你需要在父组件中使用 `v-on` 指令监听事件,然后在子组件中使用 `$emit` 方法触发这个事件。
举个例子,假设你有一个父组件 `Parent` 和一个子组件 `Child`,父组件中有一个方法 `sayHello`,你希望在子组件中调用这个方法。你可以这样做:
```
// 父组件
<template>
<div>
<child v-on:say-hello="sayHello"></child>
</div>
</template>
<script>
export default {
methods: {
sayHello() {
console.log('Hello from parent');
}
},
components: {
Child
}
}
</script>
// 子组件
<template>
<button @click="sayHelloToParent">Say hello to parent</button>
</template>
<script>
export default {
methods: {
sayHelloToParent() {
this.$emit('say-hello');
}
}
}
</script>
```
在这个例子中,父组件使用 `v-on:say-hello="sayHello"` 监听了一个名为 `say-hello` 的事件,子组件在点击按钮时使用 `$emit` 方法触发了这个事件。当这个事件被触发时,父组件中的 `sayHello` 方法就会被执行。
如果你的子组件是多重嵌套的,那么你可以通过在父组件中继续使用 `v-on` 指令来传递这个事件,直到最终到达需要调用父组件方法的子组件。
例如,假
阅读全文