Vue3父子组件通信

news/2024/9/29 19:16:27

在写vue项目的时候,组件间通信是十分重要的

举个例子

image-20240510214911112

这是一个header组件,点击登录会弹出login组件

login组件是集成在header组件里面的,也就是说header是login的父组件

在header组件中是通过showLogin变量来控制login组件是否显示的

我的需求是点击登录显示登陆组件,登录成功或者点击X关闭login组件

以点击X为例

这个操作是在子组件login中执行的,这时候就需要用到父子组件通信中的子传父

Prop方式

Emit方式

emit方式也是Vue中最常见的组件通信方式,该方式用于子传父;

根据上面的例子,我需要从子组件传递一个false给父组件,以此关闭登录框

image-20240510215753125

子组件代码(login)

// 1.导入 defineEmits
import {defineEmits} from "vue";// 2.定义emit对象 这里的closeLogin是父组件的自定义事件
const emits = defineEmits(['closeLogin'])// 3.给关闭按钮绑定点击事件
<Close @click="closeLogin"/>// 4.定义点击事件的closeLogin函数
const closeLogin = () => {// 这样写的意思就是 当closeLogin触发的时候,就会触发父组件的closeLogin事件// 第二个参数 就是子组件传给父组件的参数emits('closeLogin', false)
}

父组件代码(header)

image-20240510220404385

// 1.在子组件标签上自定义事件
<Login v-if="loginShow" @closeLogin="closeLogin"></Login>// 2.定义closeLogin函数 这个bool就是子组件传来的参数
const closeLogin = (bool) => {loginShow.value = bool
}

总结

总的来说,要实现子传父

父组件需要在子组件的标签上自定义事件,并且绑定一个函数

子组件需要得到一个emit对象,并且传入父组件的自定义事件

在子组件的某个方法中通过emit(事件名,参数)调用父组件的自定义事件对应的函数,并且传入参数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/29982.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

【VMware vSAN】升级vSAN基准测试工具HCIBench 2.8.2 至 2.8.3版本。

HCIBench 是一个HCI超融合基础设施基准测试工具,它本质上是围绕流行且经过验证的开源基准测试工具(Vdbench 和 Fio)的自动化包装器,可以更轻松地跨 HCI 集群进行自动化测试。HCIBench 旨在以一致且可控的方式简化和加速客户 POC 性能测试。该工具完全自动化部署测试虚拟机、…

python学习日记

前记 写这篇博客的目的是博主觉得自己对python语法不够熟悉。。所以尝试通过leetcode写几道题熟悉一下列表/元组等类型的操作,但是写完感觉算法能力太弱了,写出来的代码不够简洁 一、python的一些基本数据类型 列表列表:用[]定义,类似于数组;用list()创建 可变的数据类型…

C118【模板】李超线段树 P4254 [JSOI2008] Blue Mary 开公司

视频链接: Luogu P4254 [JSOI2008] Blue Mary 开公司// 李超线段树 O(nlognlogn) #include <iostream> #include <cstring> #include <algorithm> using namespace std;#define N 50005 #define ls u<<1 #define rs u<<1|1 int n,cnt; struc…

时序仿真中阻塞赋值和非阻塞赋值的区别

1 实验设置 1.1 功能模块编写 设置8位的变量c,通过非阻塞赋值的方式,将同样为8位的变量a和变量b之间按位与的结果赋值给c,代码如下: module test_a4_and_b4(clk,a,b,c, );input wire clk;input wire [7:0] a;input wire [7:0] b;output reg [7:0] c = 0;//非阻塞赋值a…

项目冲刺——第四篇Scrum冲刺博客

作业所属课程 所属课程作业要求 作业要求作业目标 总结第三天的敏捷开发,安排好第四天敏捷开发冲刺一、站立式会议 1、会议图片2、昨天已完成的内容成员 任务肖杨、梁丽贤 完成贴子发布模块设计黄诃华、欧文杰 完成邮箱发送功能功能姚佳如、李慧娣 完成个人信息界面的设计廖莹…

【第三章】推荐系统冷启动问题

推荐系统需要根据用户的历史行为和兴趣预测用户未来的行为和兴趣,在没有足够初始数据的情况下,设计个性化推荐系统并且让用户对推荐结果满意从而愿意使用推荐系统,就是冷启动的问题。 3.1 冷启动问题简介用户冷启动:新用户没有历史数据 物品冷启动:将新物品推荐给可能对它…

kettle从入门到精通 第五十八课 ETL之kettle HTTP post使用教程

1、今天群里有位朋友问我有没有关于调用http接口的kettle 示例,我下意识的去翻我的公众号推文,愣是没找到。果断开始撸。 2、本次演示流程通过调用接口【网易云音乐随机歌曲】,然后解析返回的数据,接口信息如下图所示:3、本次演示流程通过调用接口【网易云音乐随机歌曲】,…

通过Docker Compose部署GitLab和GitLab Runner(一)

GitLab 是一个用于版本控制、项目管理和持续集成的开源软件平台,它提供了一整套工具,能够帮助团队高效地协作开发。而 GitLab Runner 则是 GitLab CI/CD 的执行者,用于运行持续集成和持续交付任务。 在本文中,我们将使用 Docker Compose 来快速部署 GitLab 和 GitLab Runne…