Vue组件之间进行传值的两种方式

news2025/1/15 20:02:00

在这里插入图片描述

在 Vue 中,组件之间传值是一个常见的操作,通常有两种方式来传递数据:props 和事件(Event Bus)。下面我将详细介绍这两种方式。

1. 通过 Props 传递数据

Props 是一种用于从父组件向子组件传递数据的方式。在子组件中,你可以声明 props,然后父组件可以将数据传递给子组件。

父组件向子组件传递数据:

<template>
  <div>
    <ChildComponent :message="parentMessage" />
  </div>
</template>

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

export default {
  components: {
    ChildComponent
  },
  data() {
    return {
      parentMessage: '我是IT小辉同学'
    };
  }
};
</script>

子组件接收并使用 Props:

<template>
  <div>
    <p>{{ message }}</p>
  </div>
</template>

<script>
export default {
  props: {
    message: String // 指定 props 的类型
  }
};
</script>

在这个例子中,message 是一个 prop,它的类型被指定为字符串。父组件通过:message="parentMessage"将数据传递给子组件。当然,我们可以指定messagel类型为number,这个时候我们传值也会正常接收,但是会在控制台报出警告,所以呢,我们可以通过这种方式去进行传值!当然,有时候对于数据类型不用进行限制的时候,我们可以使用简单接收,直接这样接参:

props:[name,age,sex]

同时,我们可以对于参数是否为必填也做限制,这样就是比较复杂的传参限制了,如下:

 props: {
    message: {
    tyoe: String,
    required: true
    }
  }

2. 通过事件传递数据(Event Bus)

Event Bus 是一种通过 Vue 实例进行事件通信的方式,允许不同组件之间进行解耦的通信。你可以使用一个全局的 Vue 实例作为事件中心,然后在需要通信的组件中触发和监听事件。

创建一个全局的 Event Bus:

// EventBus.js
import Vue from 'vue';
export const EventBus = new Vue();

在发送组件中触发事件:

<template>
  <button @click="sendMessage">发送消息</button>
</template>

<script>
import { EventBus } from './EventBus.js';

export default {
  methods: {
    sendMessage() {
      EventBus.$emit('message-sent', '你好啊,我是小辉同学!');
    }
  }
};
</script>

在接收组件中监听事件:

<template>
  <div>
    <p>{{ message }}</p>
  </div>
</template>

<script>
import { EventBus } from './EventBus.js';

export default {
  data() {
    return {
      message: ''
    };
  },
  mounted() {
    EventBus.$on('message-sent', message => {
      this.message = message;
    });
  }
};
</script>

在这个例子中,通过 Event Bus,子组件可以向全局事件中心发送事件,而另一个组件可以监听并在事件触发时执行相应的操作。

这两种方式都可以用来传递数据,但建议使用 Props 来传递父子组件之间的数据,因为它更具有明确性和可维护性,而 Event Bus 可以用于处理跨越多个组件的通信或解耦的情况,更加随意!

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

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

相关文章

ROS 2官方文档(基于humble版本)学习笔记(一)

ROS 2官方文档&#xff08;基于humble版本&#xff09;学习笔记&#xff08;一&#xff09; 一、安装ROS 2二、按教程学习1.CLI 工具配置环境使用turtlesim&#xff0c;ros2和rqt安装 turtlesim启动 turtlesim使用 turtlesim安装 rqt使用 rqt重映射关闭turtlesim 由于市面上专门…

java操作adb查看apk安装包包名【搬代码】

Testpublic static void findadb() throws InterruptedException {String apkip"E:\\需求\\2023\\gql_1.0.1.apk";String findname1"cmd /c cd E:\\appium\\android-sdk\\build-tools\\27.0.2";//没有进到这里String s1 Cmd.exeCmd(findname1);System.out…

微机原理 || 第2次测试:汇编指令(加减乘除运算,XOR,PUSH,POP,寻址方式,物理地址公式,状态标志位)(测试题+手写解析)

&#xff08;一&#xff09;测试题目&#xff1a; 1.数[X]补1111,1110B&#xff0c;则其真值为 2.在I/O指令中,可用于表示端口地址的寄存器 3. MOV AX,[BXSl]的指令中&#xff0c;源操作数的物理地址应该如何计算 4.执行以下两条指令后&#xff0c;标志寄存器FLAGS的六个状态…

InVEST模型+SolVES模型教程

详情点击公众号链接&#xff1a;基于当量因子法、InVEST、SolVES模型等多技术融合在生态系统服务功能社会价值评估中的应用及论文写作、拓展分析 前言 生态系统服务是人类从自然界中获得的直接或间接惠益&#xff0c;可分为供给服务、文化服务、调节服务和支持服务4类&#xf…

基于Llama2模型的开源模型

2023年7月18日Meta开源了Llama2&#xff0c;在2万亿个Token上训练&#xff0c;可用于商业和研究&#xff0c;包括从7B到70B模型权重、预训练和微调的代码。相比Llama1&#xff0c;Llama2有较多提升&#xff0c;评估结果如下所示&#xff1a; 基于Llama2模型的开源模型如下所示…

两节点vSAN配置实战

新钛云服已累计为您分享762篇技术干货 vSAN是VMware的软件定义存储&#xff08;SDS&#xff09;产品&#xff0c;在使用VMware虚拟化的场景中得到广泛的使用。标准的vSAN为三个节点&#xff0c;VMware也推出了用于分支机构的两节点vSAN方案&#xff08;ROBO&#xff09;&#x…

计算机毕设之基于Python+django+MySQL可视化的学习系统的设计与实现

系统阐述的是使用可视化的学习系统的设计与实现&#xff0c;对于Python、B/S结构、MySql进行了较为深入的学习与应用。主要针对系统的设计&#xff0c;描述&#xff0c;实现和分析与测试方面来表明开发的过程。开发中使用了 django框架和MySql数据库技术搭建系统的整体架构。利…

保姆级 Keras 实现 Faster R-CNN 十一

保姆级 Keras 实现 Faster R-CNN 十一 一 RoI 区域二. 定义 RoiPoolingLyaer1. call 函数2. compute_output_shape 函数 三. 将 RoiPoolingLayer 加入模型 上一篇 文章中我们实现了 ProposalLyaer 层, 它将的功能是输出建议区域矩形. 本文要实现另一个自定义层 RoiPoolingLayer…

光栅化(Rasterization)

MVP复习 1&#xff09;Model transformation(placing objects) 找好一个场景&#xff0c;让人物摆好姿势 2&#xff09;View transformation(placing camera) 放置好照相机 利用camera和物体的相对运动关系&#xff0c;始终让camera从任一位置变换到原点看向-z方向且向上为…

LeetCode(力扣)669. 修剪二叉搜索树Python

LeetCode669. 修剪二叉搜索树 题目链接代码 题目链接 https://leetcode.cn/problems/trim-a-binary-search-tree/ 代码 递归 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # …

VS + QT 封装带UI界面的DLL

一、创建编译DLL的项目 1.新建Qt Class Liabrary 2.新建项目&#xff0c;选择Qt Widgets Class 3.新建C类&#xff0c;可以在此类里面写算法函数用于调用。 4.下面是添加完Qt窗体类和C类之后的项目截图 5.修改头文件并编译 将uidemo_global.h中的ifdef内容复制到dialog.h上…

心脏出血漏洞复现(CVE-2014-0160)

CVE-2014-0160&#xff1a;Heartbleed 介绍&#xff1a; 认识&#xff1a;首先简单介绍一下这个漏洞&#xff0c;该漏洞是一个出现在加密程序库OpenSSL的安全漏洞&#xff0c;这个程序呢&#xff0c;是在传输层协议TLS协议之上&#xff0c;这个协议呢被称为心跳协议&#xff0…

Linux操作系统中的信号剖析,

1、前言 信号是一种信息载体&#xff0c;在现实中&#xff0c;信号就是表示消息的物理量&#xff0c;比如说红绿灯&#xff0c;古时候狼烟等等&#xff0c;就拿红绿灯来说&#xff0c;为什人和车辆都是看到绿灯才会通行&#xff0c;红灯亮了就要停下来&#xff0c;因为这是现实…

鉴源论坛 · 观模丨基于应用程序编程接口(API)的自动化测试(上)

作者 | 黄杉 华东师范大学软件工程学院博士 苏亭 华东师范大学软件工程学院教授 版块 | 鉴源论坛 观模 社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区” 01 应用程序编程接口&#xff08;API&#xff09; 应用程序编程接口&#xff0c;英文全称为Applica…

UI自动化之关键字驱动

关键字驱动框架&#xff1a;将每一条测试用例分成四个不同的部分 测试步骤&#xff08;Test Step&#xff09;&#xff1a;一个测试步骤的描述或者是测试对象的一个操作说明测试步骤中的对象&#xff08;Test Object&#xff09;&#xff1a;指页面的对象或者元素对象执行的动…

浪潮信息Owen ZHU:大模型百花齐放,算力效率决定速度

与狭义的人工智能相比&#xff0c;通用人工智能通过跨领域、跨学科、跨任务和跨模态的大模型&#xff0c;能够满足更广泛的场景需求、实现更高程度的逻辑理解能力与使用工具能力。2023年&#xff0c;随着 LLM 大规模语言模型技术的不断突破&#xff0c;大模型为探索更高阶的通用…

打磨 8 个月、功能全面升级,Milvus 2.3.0 文字发布会现在开始!

Milvus 社区的各位伙伴&#xff1a; 大家晚上好&#xff01;欢迎来到 Milvus 2.3.0 文字发布会&#xff01; 作为整个团队的匠心之作&#xff0c;Milvus 2.3.0 历经 8 个月的设计与打磨&#xff0c;无论在新功能、应用场景还是可靠度方面都有不小的提升。 具体来看&#xff1a;…

电脑莫名其妙重启 为设备 ROOT\DISPLAY\0000 加载驱动程序 \Driver\WUDFRd 失败

卸载向日葵即可解决&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;下面是报错日志&#xff0c;估计是远程连接导致的问题

Flask项目请求图片资源返回403错误

问题 解决 在图片url前缀前加 "https://images.weserv.nl/?url" 参考 如何解决访问外部图片返回 403 Forbidden 错误 - 知乎 vue中请求接口会自动带上本地ip_vite打包后请求地址为什么带本地地址_夜月晓晓的博客-CSDN博客

3D点云处理:基于PCA计算点云位姿 平面位姿(附源码)

文章目录 1. 基本内容2. PCA求解步骤(非公式推导)3. 代码实现4. 参考文章目录:3D视觉个人学习目录微信:dhlddxB站: Non-Stop_1. 基本内容 基于PCA计算点云位姿通常是指在三维空间中使用PCA(主成分分析)来估计点云数据的姿态或定位,即确定点云数据在三维空间中的位置(平移…