在 Vue 中,子组件可以通过 $emit 方法发出自定义事件,父组件可以监听这些事件并作出相应的处理。

在子组件中发出自定义事件:

<template>
  <button @click="emitCustomEvent">发出事件</button>
</template>

<script>
export default {
  methods: {
    emitCustomEvent() {
      // 发出名为 'custom-event' 的自定义事件,并传递数据
      this.$emit('custom-event', 'Custom event emitted!');
    },
  },
};
</script>

在父组件中监听自定义事件:

<template>
  <div>
    <child-component @custom-event="handleCustomEvent"></child-component>
  </div>
</template>

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

export default {
  components: {
    ChildComponent,
  },
  methods: {
    handleCustomEvent(data) {
      // 处理从子组件发出的自定义事件
      console.log('Received custom event:', data);
    },
  },
};
</script>

在子组件中使用 $emit 方法触发自定义事件,并传递需要的数据。在父组件中通过在子组件标签上使用 @eventName 的方式监听并捕获自定义事件,当子组件触发事件时,父组件中的相应处理函数就会被调用。

在自定义事件中可以传递任意数据作为参数,父组件中可以接收到这些数据,并根据需要进行处理。

Was this helpful?

0 / 0

发表回复 0

Your email address will not be published.