✨ 区别
在Vue.js中,我们有多种选择来在组件之间传递数据和通信,包括使用$emit
和props
、provide
和inject
以及事件总线(Event Bus)。每种方法都具有自己的优势和适用场景。
🎃 使用 $emit 和 props
$emit
和props是Vue官方推荐的一种数据传递和通信方式。- 适用于父子组件之间的数据传递。
- 通过在子组件中触发自定义事件
$emit
,将数据传递给父组件进行处理。 - 父组件通过props属性明确指定接收哪些数据,并进行类型检查和默认值设置。
🌟示例:
父组件:
<template>
<div>
<child-component :message="parentMessage" @custom-event="handleEvent"></child-component>
</div>
</template>
<script>
import ChildComponent from './ChildComponent.vue';
export default {
data() {
return {
parentMessage: 'Hello from parent',
};
},
methods: {
handleEvent(data) {
console.log('Received data from child:', data);