跳到主要内容

使用vue3 组合式组件api emit触发父组件方法 举例

管

管理员

前端

2023年06月23日 1,974 次阅读
本页目录
在Vue 3中,你可以使用组合式API来创建和管理组件逻辑。下面是一个使用`setup()`函数和`emit`方法触发父组件方法的示例。

```html
<!-- ParentComponent.vue -->
<template>
  <div>
    <h1>Parent Component</h1>
    <ChildComponent @custom-event="handleCustomEvent" />
  </div>
</template>

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

export default {
  components: {
    ChildComponent,
  },
  methods: {
    handleCustomEvent(payload) {
      console.log('Event triggered from child:', payload);
    },
  },
};
</script>
```

在这个例子中,父组件`ParentComponent.vue`引入了子组件`ChildComponent.vue`并监听了一个自定义事件`custom-event`。当这个事件被触发时,`handleCustomEvent`方法将被调用。

```html
<!-- ChildComponent.vue -->
<template>
  <div>
    <h2>Child Component</h2>
    <button @click="emitCustomEvent">Trigger Custom Event</button>
  </div>
</template>

<script>
import { defineComponent, ref, onMounted } from 'vue';

export default defineComponent({
  setup(_, { emit }) {
    const count = ref(0);

    function emitCustomEvent() {
      count.value++;
      emit('custom-event', count.value);
    }

    return {
      emitCustomEvent,
    };
  },
});
</script>
```

在子组件`ChildComponent.vue`中,我们使用了组合式API的`setup()`函数。我们在这里定义了一个响应式引用`count`以及一个方法`emitCustomEvent`。当用户点击按钮时,`emitCustomEvent`方法将被调用,它会更新`count`的值并通过`emit`方法触发`custom-event`事件,同时传递`count.value`作为有效载荷。这将导致父组件的`handleCustomEvent`方法被调用,有效载荷将被打印到控制台。

这个示例展示了如何使用Vue 3的组合式API和`emit`方法在子组件中触发父组件的方法。

Related

相关文章

同分类文章 →
2025年06月10日 前端

gemini-2.5-pro-0605 按图生成html效果测试

Gemini 最新推出的 2.5 版本真的有点东西。之前用过不少 AI 辅助写代码的工具,但这次它的&ldquo;图生 HTML&rdquo;功能确实让我眼前一亮&mdash;&mdash;上传一张设计图,它不仅能快速识别布局和元素,还能生成结构清晰、样

2025年03月14日 前端

css flex-1和overflow-hidden结合使用详解:弹性布局与内容溢出控制

在 Flexbox 布局中,flex: 1 和 overflow: hidden 是两个常用的属性,它们组合使用可以有效地控制子元素的尺寸和内容显示。flex: 1 的作用:当子元素设置 flex: 1 时,它会根据 Flex 容器的主轴方向,自动伸缩以填充剩余的可用

2025年03月13日 前端

Vue 3中实现处理后的v-model双向绑定

在Vue 3中,当你需要对v-model传入的值进行处理后再展示或使用时,可以使用计算属性的getter和setter来实现这种处理过程的双向绑定。 实现步骤 接收父组件传递的v-model值 创建计算属性,在getter中处理展示值,在setter中处

WeChat

扫码加我微信

微信二维码