vue父子组件通信
时间: 2023-07-22 13:12:56 浏览: 68
在 Vue 中,父子组件之间的通信可以通过 props 和事件来实现。
1. 父组件向子组件传递数据:可以通过 props 把数据传递给子组件,在子组件中使用 props 接收数据。例如:
```html
<!-- 父组件 -->
<template>
<div>
<child-component :message="msg"></child-component>
</div>
</template>
<script>
import ChildComponent from './ChildComponent.vue'
export default {
components: {
ChildComponent
},
data() {
return {
msg: 'Hello World!'
}
}
}
</script>
<!-- 子组件 -->
<template>
<div>
{{ message }}
</div>
</template>
<script>
export default {
props: {
message: String
}
}
</script>
```
2. 子组件向父组件传递数据:可以通过自定义事件来实现。在子组件中,使用 $emit 触发一个自定义事件,并传递数据。在父组件中,通过 v-on 监听子组件的自定义事件并获取数据。例如:
```html
<!-- 父组件 -->
<template>
<div>
<child-component @my-event="handleEvent"></child-component>
</div>
</template>
<script>
import ChildComponent from './ChildComponent.vue'
export default {
components: {
ChildComponent
},
methods: {
handleEvent(data) {
console.log(data)
}
}
}
</script>
<!-- 子组件 -->
<template>
<div>
<button @click="handleClick">发送事件</button>
</div>
</template>
<script>
export default {
methods: {
handleClick() {
this.$emit('my-event', 'Hello World!')
}
}
}
</script>
```
阅读全文