0%

Vue-父子组件的通信

Vue-父子组件的通信

在 Vue.js 中,父子组件之间的通信可以通过 props 和 events 来实现。下面分别介绍了 props 和 events 的用法:

使用 Props(父传子):

  • 父组件可以通过 props 向子组件传递数据。
  • 在子组件中,props 是响应式的,即当父组件的数据发生变化时,子组件会自动更新。
  • 父组件通过在子组件上使用属性绑定的方式传递数据。

父组件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<template>
<ChildComponent :message="parentMessage" />
</template>

<script>
import ChildComponent from './ChildComponent.vue';

export default {
data() {
return {
parentMessage: 'Hello from Parent',
};
},
components: {
ChildComponent,
},
};
</script>

子组件:

1
2
3
4
5
6
7
8
9
<template>
<div>{{ message }}</div>
</template>

<script>
export default {
props: ['message'],
};
</script>

使用 Events(子传父):

  • 子组件可以通过 events 向父组件发送消息。
  • 在子组件中使用 $emit 方法触发一个自定义事件,并传递数据。
  • 父组件通过在子组件上监听自定义事件来接收子组件发送的消息。

父组件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<template>
<ChildComponent @child-event="handleChildEvent" />
</template>

<script>
import ChildComponent from './ChildComponent.vue';

export default {
methods: {
handleChildEvent(data) {
console.log('Received data from child:', data);
},
},
components: {
ChildComponent,
},
};
</script>

子组件:

1
2
3
4
5
6
7
8
9
10
11
12
13
<template>
<button @click="sendMessage">Send Message to Parent</button>
</template>

<script>
export default {
methods: {
sendMessage() {
this.$emit('child-event', 'Hello from Child');
},
},
};
</script>

通过 props 和 events,父子组件之间可以方便地进行通信,实现数据的传递和交互。

-------------本文结束感谢您的阅读-------------
原创技术分享,您的支持将鼓励我继续创作