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

相关文章

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

Python中Tensorflow无法调用GPU问题的解决方法

《Python中Tensorflow无法调用GPU问题的解决方法》文章详解如何解决TensorFlow在Windows无法识别GPU的问题,需降级至2.10版本,安装匹配CUDA11.2和cuDNN... 当用以下代码查看GPU数量时,gpuspython返回的是一个空列表,说明tensorflow没有找到

python如何调用java的jar包

《python如何调用java的jar包》这篇文章主要为大家详细介绍了python如何调用java的jar包,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录一、安装包二、使用步骤三、代码演示四、自己写一个jar包五、打包步骤六、方法补充一、安装包pip3 install

前端如何通过nginx访问本地端口

《前端如何通过nginx访问本地端口》:本文主要介绍前端如何通过nginx访问本地端口的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、nginx安装1、下载(1)下载地址(2)系统选择(3)版本选择2、安装部署(1)解压(2)配置文件修改(3)启动(4)

HTML中meta标签的常见使用案例(示例详解)

《HTML中meta标签的常见使用案例(示例详解)》HTMLmeta标签用于提供文档元数据,涵盖字符编码、SEO优化、社交媒体集成、移动设备适配、浏览器控制及安全隐私设置,优化页面显示与搜索引擎索引... 目录html中meta标签的常见使用案例一、基础功能二、搜索引擎优化(seo)三、社交媒体集成四、移动

HTML input 标签示例详解

《HTMLinput标签示例详解》input标签主要用于接收用户的输入,随type属性值的不同,变换其具体功能,本文通过实例图文并茂的形式给大家介绍HTMLinput标签,感兴趣的朋友一... 目录通用属性输入框单行文本输入框 text密码输入框 password数字输入框 number电子邮件输入编程框

HTML img标签和超链接标签详细介绍

《HTMLimg标签和超链接标签详细介绍》:本文主要介绍了HTML中img标签的使用,包括src属性(指定图片路径)、相对/绝对路径区别、alt替代文本、title提示、宽高控制及边框设置等,详细内容请阅读本文,希望能对你有所帮助... 目录img 标签src 属性alt 属性title 属性width/h

CSS3打造的现代交互式登录界面详细实现过程

《CSS3打造的现代交互式登录界面详细实现过程》本文介绍CSS3和jQuery在登录界面设计中的应用,涵盖动画、选择器、自定义字体及盒模型技术,提升界面美观与交互性,同时优化性能和可访问性,感兴趣的朋... 目录1. css3用户登录界面设计概述1.1 用户界面设计的重要性1.2 CSS3的新特性与优势1.

HTML5 中的<button>标签用法和特征

《HTML5中的<button>标签用法和特征》在HTML5中,button标签用于定义一个可点击的按钮,它是创建交互式网页的重要元素之一,本文将深入解析HTML5中的button标签,详细介绍其属... 目录引言<button> 标签的基本用法<button> 标签的属性typevaluedisabled

HTML5实现的移动端购物车自动结算功能示例代码

《HTML5实现的移动端购物车自动结算功能示例代码》本文介绍HTML5实现移动端购物车自动结算,通过WebStorage、事件监听、DOM操作等技术,确保实时更新与数据同步,优化性能及无障碍性,提升用... 目录1. 移动端购物车自动结算概述2. 数据存储与状态保存机制2.1 浏览器端的数据存储方式2.1.