vue3中子组件调用父组件事件

2024-06-23 16:44

本文主要是介绍vue3中子组件调用父组件事件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在 Vue 3 中,子组件调用父组件的事件(或方法)的方式与 Vue 2 类似,但 Vue 3 引入了 Composition API,这可能会改变你组织代码的方式。不过,基本的通信机制——通过自定义事件 ($emit) 通知父组件——仍然保持不变。

以下是如何在 Vue 3 中使用 Options API 和 Composition API 的示例:

使用 Options API

父组件 (ParentComponent.vue)

<template> 
<div> 
<h2>父组件</h2> 
<ChildComponent @child-event="handleChildEvent" /> 
</div> 
</template> <script> 
import ChildComponent from './ChildComponent.vue'; export default { 
components: { 
ChildComponent 
}, 
methods: { 
handleChildEvent(payload) { 
console.log('子组件触发的事件被父组件捕获', payload); 
} 
} 
}; 
</script>

子组件 (ChildComponent.vue)

<template> 
<div> 
<h3>子组件</h3> 
<button @click="triggerParentEvent">触发父组件事件</button> 
</div> 
</template> <script> 
export default { 
methods: { 
triggerParentEvent() { 
this.$emit('child-event', { message: '来自子组件的数据' }); 
} 
} 
}; 
</script>

使用 Composition API

父组件 (ParentComponent.vue) (这里父组件使用 Options API 或 Composition API 都可以)

子组件 (ChildComponentWithComposition.vue)

<template> 
<div> 
<h3>使用 Composition API 的子组件</h3> 
<button @click="triggerParentEvent">触发父组件事件</button> 
</div> 
</template> <script> 
import { defineComponent, ref } from 'vue'; export default defineComponent({ 
setup(props, { emit }) { 
const triggerParentEvent = () => { 
emit('child-event', { message: '来自使用 Composition API 的子组件的数据' }); 
}; return { 
triggerParentEvent 
}; 
} 
}); 
</script>

在 Composition API 中,setup 函数接收两个参数:props 和 contextcontext 是一个对象,它包含了 attrsslots 和 emit 等属性。你可以通过 context.emit 来触发事件,但更常见的做法是将 emit 直接从 setup 函数的参数中解构出来,如上面的示例所示。

在这两种情况下,子组件都通过 $emit 方法触发一个名为 child-event 的事件,并将一些数据作为有效负载传递给父组件。父组件监听这个事件,并在事件触发时调用相应的方法。

这篇关于vue3中子组件调用父组件事件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1087716

相关文章

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,

CSS place-items: center解析与用法详解

《CSSplace-items:center解析与用法详解》place-items:center;是一个强大的CSS简写属性,用于同时控制网格(Grid)和弹性盒(Flexbox)... place-items: center; 是一个强大的 css 简写属性,用于同时控制 网格(Grid) 和 弹性盒(F

CSS实现元素撑满剩余空间的五种方法

《CSS实现元素撑满剩余空间的五种方法》在日常开发中,我们经常需要让某个元素占据容器的剩余空间,本文将介绍5种不同的方法来实现这个需求,并分析各种方法的优缺点,感兴趣的朋友一起看看吧... css实现元素撑满剩余空间的5种方法 在日常开发中,我们经常需要让某个元素占据容器的剩余空间。这是一个常见的布局需求

CSS Anchor Positioning重新定义锚点定位的时代来临(最新推荐)

《CSSAnchorPositioning重新定义锚点定位的时代来临(最新推荐)》CSSAnchorPositioning是一项仍在草案中的新特性,由Chrome125开始提供原生支持需... 目录 css Anchor Positioning:重新定义「锚定定位」的时代来了! 什么是 Anchor Pos

CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比

《CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比》CSS中的position属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布... css 中的 position 属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布局和层叠关

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3

全面解析HTML5中Checkbox标签

《全面解析HTML5中Checkbox标签》Checkbox是HTML5中非常重要的表单元素之一,通过合理使用其属性和样式自定义方法,可以为用户提供丰富多样的交互体验,这篇文章给大家介绍HTML5中C... 在html5中,Checkbox(复选框)是一种常用的表单元素,允许用户在一组选项中选择多个项目。本

HTML5 搜索框Search Box详解

《HTML5搜索框SearchBox详解》HTML5的搜索框是一个强大的工具,能够有效提升用户体验,通过结合自动补全功能和适当的样式,可以创建出既美观又实用的搜索界面,这篇文章给大家介绍HTML5... html5 搜索框(Search Box)详解搜索框是一个用于输入查询内容的控件,通常用于网站或应用程

CSS3中的字体及相关属性详解

《CSS3中的字体及相关属性详解》:本文主要介绍了CSS3中的字体及相关属性,详细内容请阅读本文,希望能对你有所帮助... 字体网页字体的三个来源:用户机器上安装的字体,放心使用。保存在第三方网站上的字体,例如Typekit和Google,可以link标签链接到你的页面上。保存在你自己Web服务器上的字

html 滚动条滚动过快会留下边框线的解决方案

《html滚动条滚动过快会留下边框线的解决方案》:本文主要介绍了html滚动条滚动过快会留下边框线的解决方案,解决方法很简单,详细内容请阅读本文,希望能对你有所帮助... 滚动条滚动过快时,会留下边框线但其实大部分时候是这样的,没有多出边框线的滚动条滚动过快时留下边框线的问题通常与滚动条样式和滚动行