首页 > 其他分享 >在 Vue 自定义事件中,父组件如何接收子组件传递的多个参数?

在 Vue 自定义事件中,父组件如何接收子组件传递的多个参数?

时间:2024-08-15 19:40:27浏览次数:10  
标签:Vue 自定义 传递 参数 事件 组件 接收

在 Vue 中,自定义事件是父组件和子组件之间通信的重要方式。父组件可以监听子组件的事件,子组件则通过触发自定义事件将数据传递给父组件。如果子组件需要向父组件传递多个参数。

 $emit 方法使用

一、场景介绍

假设我们有一个父组件和一个子组件。子组件需要通过自定义事件向父组件传递多个参数,比如 nameage。父组件需要监听子组件的事件并接收这两个参数。

二、实现步骤

  1. 在子组件中触发自定义事件并传递多个参数:

在子组件中,可以使用 $emit 方法触发自定义事件并传递多个参数。$emit 的第一个参数是事件名称,后续的参数就是需要传递的数据。

<!-- 子组件 Child.vue -->
<template>
  <button @click="sendData">发送数据</button>
</template>

<script>
export default {
  methods: {
    sendData() {
      // 触发自定义事件,并传递多个参数
      this.$emit('send-info', 'Alice', 25);
    }
  }
};
</script>

 

 

在上面的代码中,子组件通过 this.$emit('send-info', 'Alice', 25) 触发了 send-info 事件,并传递了两个参数:'Alice'25

  1. 在父组件中监听自定义事件并接收多个参数:

父组件可以通过在子组件上监听自定义事件来接收这些参数。事件监听可以直接在模板中进行,并通过回调函数接收传递的参数。

 

<!-- 父组件 Parent.vue -->
<template>
  <div>
    <Child @send-info="handleInfo" />
  </div>
</template>

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

export default {
  components: {
    Child
  },
  methods: {
    handleInfo(name, age) {
      console.log('接收到的名字:', name);
      console.log('接收到的年龄:', age);
    }
  }
};
</script>

 

在父组件中,通过在子组件上添加 @send-info="handleInfo",监听了子组件的 send-info 事件。当事件被触发时,handleInfo 方法会被调用,并且接收到子组件传递的两个参数。

 

 

在 Vue 中父组件接收子组件传递的多个参数非常简单。只需在子组件中使用 $emit 方法传递多个参数,在父组件中通过事件监听函数接收这些参数即可。

这种方式不仅适用于两个参数的传递,实际上可以传递任意数量的参数。只需在 $emit 方法中依次添加参数,并在父组件的回调函数中按顺序接收即可。

标签:Vue,自定义,传递,参数,事件,组件,接收
From: https://www.cnblogs.com/zx618/p/18361671

相关文章

  • VUE DIFF算法原理
    Vue的Diff算法是虚拟DOM实现中的核心部分,它在视图更新时比较新旧虚拟DOM树并高效更新实际DOM。一、什么是Diff算法?Diff算法用于在虚拟DOM更新时,通过比较新旧两棵虚拟DOM树,找出最小差异并将这些变化应用到实际DOM上。Vue采用了一种高效的算法,只对同层级节点进......
  • 监听 Vuex 数据变化的几种方法
    1.1在组件中使用计算属性监听Vuex状态Vuex状态可以通过计算属性映射到组件中,当Vuex状态发生变化时,计算属性也会自动更新。我们可以通过Vue的watch选项来监听计算属性的变化,从而监听Vuex中状态的变化。<template><div>{{count}}</div></template><script>e......
  • Vue2 和 Vue3中EventBus使用差异
    目录前言一、EventBus和mitt的对比二、Vue2中的EventBus使用实例2.1创建EventBus2.2在组件中使用EventBus2.2.1组件A-发送事件2.2.2组件B-监听事件2.3注意事项三、Vue3中的mitt使用实例3.1安装mitt3.2创建mitt实例3.3在组件中使用mitt3......
  • MFC自定义按钮实现
    MFC中要实现自定义按钮,首先要创建一个类并继承自CButton。我这里创建的类名为CMainButtonclassCMainButton:publicCButton{ DECLARE_DYNAMIC(CMainButton)public: CMainButton(UINTnID,CRectrcWnd,CWnd*pParent=nullptr);//nID为按钮ID,rcWnd为按钮位置 virtual~CM......
  • C语言学习笔记 Day13(复合类型/自定义类型)
    Day13 内容梳理:目录Chapter9 复合类型(自定义类型)9.1结构体(1)结构体变量定义、初始化(2)嵌套结构体(3)结构体赋值(4)结构体和指针(5)结构体做函数参数9.2共用体(联合体)9.3枚举9.4typedef关键字Chapter9 复合类型(自定义类型)9.1结构体有时需要将不同类型的数组......
  • allure报告自定义logo图片和文字
    有时根据项目需要把allure报告的logo换成公司的,步骤如下:1、将自定义的logo图片放到static文件夹中,尺寸大小100*100D:\allure-2.13.9\plugins\custom-logo-plugin\static      2、编辑styles.css文件。    修改和增加如下css:.side-nav__brand{......
  • 全面掌握 Spring Cloud LoadBalancer:从自定义到策略优化的实战教程
    引言在微服务架构中,负载均衡是保障系统高效运行的关键技术之一。无论是服务端负载均衡还是客户端负载均衡,合理的负载均衡策略都能显著提升系统的稳定性和响应速度。本文将从基础概念入手,详细讲解如何在SpringCloud中实现和优化负载均衡,并结合实际案例,帮助读者快速上手并......
  • ofcommon.dll故障深度探索:Office组件恢复的高级策略揭秘
    解决ofcommon.dll丢失的问题,采取以下专业步骤可以帮助您恢复Office组件的正常运作:1.系统文件检查:•以管理员身份运行命令提示符,输入sfc/scannow并回车。这将扫描并修复系统文件,包括可能缺失的ofcommon.dll。2.Office修复:•打开“控制面板”>“程序”>“程序和功......
  • 自定义JSON名
    lSer:=TMVCJsonDataObjectsSerializer.Create;trylSer.DataSetToJsonArray(MasterDBHelper.Query,lJObj.a['m'],TMVCNameCase.ncLowerCase,[],procedure(constaField:TField;constaJsonObject:TJSONObject......
  • vue计算属性
    在插值表达式和指令中可以使用表达式,但是无论是指令还是插值表达式,设计的初衷都是为了数据渲染或者简单运算。如果在插值表达式中过渡使用,则有以下缺点1、模板中有大量运算,不推荐2、无法复用计算解决方法:引入计算属性配置项computed,计算得到的属性,这个属性也会成为data中的属......