Vue子组件向父组件传递消息

news2024/10/6 10:28:57

父子组件之间的通信:props与emit

通常提到props,都会想到的是父组件给子组件传值;提到emit为子组件向父组件发送消息,但其实,props也可以使子组件向父组件传递消息

方式为在父组件中通过为子组件绑定属性,子组件接收;但其实,我们只需要父组件向子组件传递一个事件,使子组件调用该事件来获取子组件的消息

常规使用

<!-- 子组件A -->
<template>
  <div style="color:coral">
    我是B的子组件A
  </div>
</template>
<script setup>
	import { onMounted } from "vue";
	const props = defineProps({
	  msg: String
	})
	onMounted(() => {
	  console.log('我是A,我接收到B给我传递的消息', props);
	})
</script>
<!-- 父组件B -->
<template>
  <div>
    <h1>我是父组件B,下面是我的子组件A</h1>
    <A msg="我是父组件B,我现在向A组件传递消息"></A>
  </div>
</template>
<script setup>
	import A from "../components/A.vue"
</script>

在这里插入图片描述

子组件向父组件传递消息

<!-- 子组件A -->
<template>
  <div style="background:gainsboro">
    <h3 style="color:coral">我是B的子组件A</h3>
    <button @click="send">B发消息</button>
  </div>
</template>
<script setup>
	import { onMounted } from "vue";
	const props = defineProps({
	  msg: String,
	  myFn: Function
	})
	onMounted(() => {
	  console.log('我是红薯我是红薯,收到收到', props);
	
	})
	const send = () => {
	  props.myFn('我是A,我调用B的事件向它发送此消息:嘿~土豆')
	}

</script>
<!-- 父组件B -->
<template>
  <div>
    <p>我是父组件B,我传递给A组价的事件,A调用后我可以接收到:
      <span style="color:darkorange">{{state.childMsg}}</span>
    </p>
    <h1>我是父组件B,下面是我的子组件A</h1>

    <A
      msg="我是土豆我是土豆,收到请回答"
      :myFn="state.fn"
    ></A>

  </div>
</template>
<script setup>
	import { reactive } from "vue";
	import A from "../components/A.vue"
	
	const state = reactive({
	  childMsg: '暂无消息',
	  fn: (data) => {
	    state.childMsg = data
	  }
	})
</script>

在这里插入图片描述

当子组件A点击“向B发送消息” 调用了这个myFn的函数,并且传递参数,父组件B中就可以收到A传递的参数,此时就完成了子组件行父组件传递消息
在这里插入图片描述

与emit的区别:定义和调用的不同

props方式:父组件为子组件绑定一个属性,将函数赋值给该属性,子组件通过props接收,调用此事件,传递消息。
emit方式:父组件需要在子组件标签中注册一个事件,子组件通过emit调用此事件,传递消息。
在这里插入图片描述

在这里插入图片描述

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

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

相关文章

Docker之centos7环境离线安装

一、docker简介 Docker是一个开源的应用容器引擎&#xff0c;可以让开发者将应用及其依赖打包在一个虚拟的容器中&#xff0c;方便地部署、移植、升级和管理。Docker可以运行在Linux、Windows和MacOS等操作系统上&#xff0c;并且可以在不同的平台之间进行交互和迁移。Docker的…

ES 性能调优,这可能是全网最详细的 Elasticsearch 性能调优指南

文章目录 1、通用优化策略1.1 通用最小化法则1.2 职责单一原则1.3 其他 2、写性能调优2.1 基本原则2.2 优化手段2.2.1 增加 flush 时间间隔&#xff0c;2.2.2 增加refresh_interval的参数值2.2.3 增加Buffer大小&#xff0c;2.2.4 关闭副本2.2.5 禁用swap2.2.6 使用多个工作线程…

小奇猫物语之产品经理篇(1)

小奇猫物语之产品经理篇&#xff08;1&#xff09; 喵喵提示&#xff1a;看到标题后面的&#xff08;1&#xff09;了嘛&#xff1f;没错&#xff01;关于产品经理这方面&#xff0c;小奇会出一个系列哟&#xff0c;感谢各位铲屎官们的观看&#xff0c;欢迎提出指正和批评哦&a…

Springboot设置并访问静态资源目录

目录​​​​​​​ 静态文件 application设置方法 配置详解 编写配置 优缺点 设置配置类方法 配置详解 编写配置 优缺点 总结 静态文件 静态资源&#xff0c;一般是网页端的&#xff1a;HTML文件、JavaScript文件和图片。尤其是设置图片的静态资源&#xff0c;尤其重…

浅谈消防应急照明和疏散指示系统在建筑物中的设计与应用

安科瑞 华楠 摘 要&#xff1a;在消防安全意识逐渐提高的背景下&#xff0c;安全疏散技术也取得了不断发展。基于这种认识&#xff0c;本文对建筑物消防应急照明和疏散指示系统进行了介绍&#xff0c;然后对系统设计与应用方法展开了探讨&#xff0c;为关注这一话题的人们提供…

Linux--查看常驻进程:ps

进程分为瞬时进程和常驻进程 瞬时进程&#xff1a;瞬间完成从加载到内存、显示在输出设备、退出过程 int main() {printf("hello world!\n");return 0; } 常驻进程&#xff1a;一直在内存中 int main() {while (1){printf("hello world!\n");sleep(1);…

Java 动态规划 Leetcode 931. 下降路径最小和

代码展示: class Solution {public int minFallingPathSum(int[][] matrix) {int nmatrix.length;//创建dp数组int[][]dpnew int[n1][n2];//初始化for(int i1;i<n;i){dp[i][0]dp[i][n1]Integer.MAX_VALUE;}//填充数组for(int i1;i<n;i){for(int j1;j<n;j){dp[i][j]Ma…

【网络安全】Burpsuite v2021.12.1安装激活配置快捷启动

Burpsuite v2021.12.1安装&激活&配置&快捷启动 一、下载激活包二、配置JDK11三、启动激活 一、下载激活包 需要下载的内容&#xff1a; Burp Suite jar包JDK11激活jar包汉化jar包 下面是已经下载好的&#xff0c;可以直接使用 BurpSuite网盘下载链接 提取码&#…

单键触摸开关/双键触摸式照明灯/触摸式延时照明灯电路设计

单键触摸开关 触摸式照明开关是一种非常实用的电子开关&#xff0c;用手触摸一下导电片&#xff0c;就能实现开关动作 &#xff0c;使用方便可靠、电路简单、性能稳定、寿命长、节电效果明显。适合于爱好者自制。 一、电路工作原理 电路原理如图 21 所示。 接通电源后&#…

RabbitMQ ---- Hello World

RabbitMQ ---- Hello World 1. 依赖2. 消息生产者3. 信息消费者 本节使用 Java 编写两个程序。发送单个消息的生产者和接收消息并打印出来的消费者。 1. 依赖 <!--指定 jdk 编译版本--><build><plugins><plugin><groupId>org.apache.maven.plu…

Scratch 随机平台跳跃

Scratch 随机平台跳跃 本程序转换为HTML后运行。程序在随机位置生成红、蓝平台各13个&#xff0c;通过W、A、S、D键控制角色移动&#xff0c;移动时把标记下落的变量设为1。该变量为1时角色下落&#xff0c;碰到边缘或平台时结束下落&#xff0c;变量设为0。这种方案的缺陷是角…

Databricks推出AI模型SDK,能自动生成SQL代码

近日一款AI模型的发布&#xff0c;或将有助于提高开发效率。据悉&#xff0c;最近Databricks发布大数据分析平台Spark所用的 AI 模型 SDK&#xff0c;开发者写代码时&#xff0c;可用英文下指令&#xff0c;编译器就会将英文指令转换为 PySpark 或 SQL 语言代码&#xff0c;以提…

偏振光的斯托克斯矢量表示法

《光纤偏振模色散原理 测量与自适应补充技术》张晓光 第二章

【Linux后端服务器开发】进程与地址空间概述

目录 一、进程创建 二、进程状态 1. 运行状态R 2. 睡眠状态S 3. 僵尸状态Z 4. 孤儿进程 三、进程优先级 PRI 四、地址空间的层次结构 五、虚拟地址和物理地址 一、进程创建 fork()函数创建子进程&#xff0c;若创建成功&#xff0c;则给父进程返回子进程的pid&#x…

Python基础教程:异常处理try...except语句

Python是一门非常灵活且易于学习的编程语言&#xff0c;在日常开发中被广泛应用。然而&#xff0c;由于各种原因&#xff0c;我们的代码可能会出现异常情况&#xff0c;例如输入错误、文件读写异常等等。Python异常处理是Python中重要的一部分&#xff0c;为了保证程序的稳定性…

用表格制作网页

利用表格制作网页 实验目标 该网页将利用设计页面的布局&#xff0c;制楚雄师院的页面简介。通过该种制作&#xff0c;我们可以体会到表格在布局设计中的实际运用&#xff0c;体会如何使用表格来控制页面中的元素对象&#xff0c;已达到自然&#xff0c;生动的配置构成元素…

Linux无法访问github解决方案【修改/etc/hosts文件,加上GitHub网站的IP地址】

ChatGPT神中神&#xff01; 省流&#xff1a;修改/etc/hosts文件&#xff0c;加上GitHub网站的IP地址。 "Failed connect to github.com:443; 拒绝连接" 错误通常表示你的系统无法建立与GitHub的安全连接。这可能是由于网络问题、防火墙设置或代理配置等原因引起的。…

unbuntu 22.04 安装和卸载企业微信

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 记录有关在ubuntu22.04上安装和卸载企业微信 以及企业微信无法打开问题处理 1. 正文 1.1 安装 下载wine环境 http://archive.ubuntukylin.com/softwar…

apache hudi 初见

git clone https://gitee.com/apache/Hudi.git docker pull yml 文件里面的镜像 然后 docker-compose -f docker-compose_hadoop284_hive233_spark244.yml -p 6p6 up -d 然后就是 在这里插入代码片# Licensed to the Apache Software Foundation (ASF) under one or more …

MySQL之InnoDB存储结构 | 京东物流技术团队

1 InnoDB存储引擎 InnoDB存储引擎最早由Innobase Oy公司开发&#xff08;属第三方存储引擎&#xff09;。从MySQL 5.5版本开始作为表的默认存储引擎。该存储引擎是第一个完整支持ACID事务的MySQL存储引擎&#xff0c;特点是行锁设计、支持MVCC、支持外键、提供一致性非锁定读&…