简述 Vue父子組件和非父子組件的通信

Vue组件之间的通信可以分为父子组件通信和非父子组件通信两大类。下面将分别进行详细的解释:

父子组件通信

1. 父传子

  • 方式:通过props属性进行传递。
  • 步骤
    1. 在父组件中定义要传递的数据。
    2. 在父组件的模板中,使用子组件标签并动态绑定父组件的数据到子组件的props上。
    3. 在子组件中,通过props选项声明要接收的数据,并在模板中使用这些数据。

示例代码

父组件:

<template><child-component :message="parentMessage"></child-component>
</template><script>
import ChildComponent from './ChildComponent.vue'export default {data() {return {parentMessage: 'Hello from Parent'}},components: {ChildComponent}
}
</script>

子组件:

<template><div>{{ message }}</div>
</template><script>
export default {props: ['message']
}
</script>

2. 子传父

  • 方式:通过自定义事件进行传递。
  • 步骤
    1. 在子组件中,当需要向父组件传递数据时,使用this.$emit('eventName', payload)触发一个自定义事件。
    2. 在父组件中,使用@eventNamev-on:eventName监听子组件的自定义事件,并在事件处理函数中接收数据。

示例代码

子组件:

<template><button @click="notifyParent">Notify Parent</button>
</template><script>
export default {methods: {notifyParent() {this.$emit('childEvent', 'Hello from Child');}}
}
</script>

父组件:

<template><child-component @childEvent="handleChildEvent"></child-component>
</template><script>
import ChildComponent from './ChildComponent.vue'export default {methods: {handleChildEvent(message) {console.log(message); // 输出:'Hello from Child'}},components: {ChildComponent}
}
</script>

非父子组件通信

1. 事件总线(Event Bus)

  • 方式:创建一个新的Vue实例作为事件中心,用于在任意组件之间传递事件和消息。
  • 步骤
    1. 创建一个新的Vue实例作为事件总线。
    2. 在需要发送消息的组件中,使用EventBus.$emit('eventName', payload)发送消息。
    3. 在需要接收消息的组件中,使用EventBus.$on('eventName', callback)监听消息。

2. Vuex

  • 方式:Vuex是Vue.js的状态管理模式和库,用于集中存储和管理组件的状态。
  • 步骤
    1. 安装和配置Vuex。
    2. 在Vuex的store中定义state、mutations、actions等。
    3. 在组件中,通过this.$store.state访问状态,通过this.$store.commit提交mutation,或者通过this.$store.dispatch分发action。

3. provide/inject

  • 方式:允许祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,该依赖都可以作为属性供后代组件使用。
  • 步骤
    1. 在祖先组件中,使用provide选项提供数据或方法。
    2. 在后代组件中,使用inject选项来接收这些数据或方法。

以上方式可以根据具体项目需求和场景来选择使用。在大型项目中,Vuex通常是一个很好的选择,因为它提供了清晰的状态管理和数据流。而在小型项目中,父子组件通信和事件总线可能更加轻量级和易于实现。

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

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

相关文章

ABeam 德硕 Team Building | SDC Green Day——环保公益行动

山野好拾光 春日公益行 继上年度大连办公室Green Day活动的顺利举办&#xff0c;环保的理念更加深入到ABeam每一位员工的心中。春日天气晴好&#xff0c;西安办公室的小伙伴们也迫不及待来上一场说走就走的Green Day Outing活动。 本次环保公益行动主题为「夏日Go Green畅享山…

千亿级开源大模型Qwen110B部署实测

近日&#xff0c;通义千问团队震撼开源 Qwen1.5 系列首个千亿参数模型 Qwen1.5-110B-Chat。 千亿级大模型普通显卡是跑不了推理的&#xff0c;普通人一般也没办法本地运行千亿级大模型。 为了探索千亿级大模型到底需要计算资源&#xff0c;我用云计算资源部署了Qwen1.5-110B-…

谷歌AI搜索功能“翻车”,用户体验引担忧

近期&#xff0c;谷歌对其搜索引擎进行重大更新&#xff0c;推出了全新AI搜索功能“AI Overview”&#xff0c;试图通过人工智能技术提供更智能便捷的搜索体验&#xff0c;并追赶微软和OpenAI等竞争对手。然而事与愿违&#xff0c;这项备受期待的功能上线后却频频出错&#xff…

测试基础06:软件产品的运行环境dev、sit、test、fat、uat、pre、pro

​​​​​​​课程大纲 1、Dev开发环境 &#xff08;Development environment&#xff09; 使用者 开发人员使用。 用途 用于编程&#xff0c;版本变动很大。 外部能否访问 外部用户无法访问。 2、sit/ITE系统集成测试环境 &#xff08;System Integration Testing en…

WIFI——ESP8266的一些知识

ESP8266的三种无线通讯模式&#xff1a; AP模式&#xff1a;ESP8266产生WIFI&#xff0c;其他设备加入该wifi 无线终端模式&#xff1a;别人创建wifi&#xff0c;ESP8266加入该wifi 混合模式&#xff1a;虽然是以上两种都能用&#xff0c;但同一时间只能用其中一个 设置AP模…

大数据的存储和处理面临哪些挑战,如何应对?

大数据的存储和处理面临以下挑战&#xff1a; 数据量巨大&#xff1a;大数据的特点之一是数据量非常庞大&#xff0c;存储和处理这么大规模的数据是一个挑战。传统的数据库系统可能无法满足大数据需求&#xff0c;需要寻找适合大规模数据处理的解决方案。 数据异构性&#xff…

30多万汉字词语押韵查询ACCESS\EXCEL数据库

押韵&#xff0c;也作“压韵”。作诗词曲赋等韵文时在句末或联末用同韵的字相押&#xff0c;称为押韵。诗歌押韵&#xff0c;使作品声韵和谐&#xff0c;便于吟诵和记忆&#xff0c;具有节奏和声调美。旧时押韵&#xff0c;要求韵部相同或相通&#xff0c;也有少数变格。现代新…

《开发问题解决》Window下7z解压:cannot create symbolic link : 客户端没有所需的特权

问题描述&#xff1a; 今天使用7z来解压东西的是突然出现这个问题。 问题解决&#xff1a; download直接下载到c盘中&#xff0c;由于所在文件夹有权限限制。无法进行正常解压。 7.zip解压时使用管理员权限进行解压&#xff0c;解压时使用管理员权限。即如图 使用管理员权限重…

【面试干货】找出一个偶数能够表示为两个素数之和的所有可能情况

【面试干货】找出一个偶数能够表示为两个素数之和的所有可能情况 1、实现思想2、代码实现 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 1、实现思想 功能&#xff1a;通过循环遍历奇数&#xff0c;找出一个大于等于 6 的偶数能够表示为两…

【C++初阶】auto关键字

目录 1.auto简介 2.auto的使用 1.auto简介 在早期C/C中auto的含义是&#xff1a;使用auto修饰的变量&#xff0c;是具有自动存储器的局部变量&#xff0c;但遗憾的 是一直没有人去使用它&#xff0c;大家可思考下为什么&#xff1f; C11中&#xff0c;标准委员会赋予了auto全…

红队项目PinkysPalace格式字符串缓冲区溢出详解

简介 渗透测试-地基篇 该篇章目的是重新牢固地基&#xff0c;加强每日训练操作的笔记&#xff0c;在记录地基笔记中会有很多跳跃性思维的操作和方式方法&#xff0c;望大家能共同加油学到东西。 请注意&#xff1a; 本文仅用于技术讨论与研究&#xff0c;对于所有笔记中复现的…

视频白平衡没调好怎么补救 视频白平衡调整用哪些参数 会声会影视频制作教程

没有调不好的白平衡&#xff01;如果有&#xff0c;那就是你的方法没用对。无论你的视频发黄还是发蓝&#xff0c;只要掌握本文提供的方法&#xff0c;简单几步就能纠正色偏、校准白平衡。操作很简单&#xff0c;几乎所有人都能够轻松掌握。有关视频白平衡没调好怎么补救&#…

Android 布局中@NULL的使用和代码实现方式详解

文章目录 1、使用场景2、示例代码实现2.1、移除背景2.2 、移除文本2.3、移除布局宽度或高度2.4、移除提示文本2.5、移除图像资源 3、综合示例3.1、布局文件 activity_main.xml3.2、主活动文件 MainActivity.java3.4、资源文件3.5、运行结果 4、优点5、缺点6、综合分析6.1、适用…

.net core web项目部署IIS报错:HTTP 错误 413.1 - Request Entity Too Large

HTTP 错误 413.1 - Request Entity Too Large 解决办法 这个报错的原因是因为IIS配置问题&#xff0c;IIS最大默认配置只有30M&#xff0c;超过30M就会报错 解决办法 在程序中配置能接收最大字节大小 //配置请求头中能最大接收多少数据 //builder.WebHost.UseKestrel(option…

VGG论文解析—Very Deep Convolutional Networks for Large-Scale Image Recognition

VGG论文解析—Very Deep Convolutional Networks for Large-Scale Image Recognition -2015 研究背景 大规模图像识别的深度卷积神经网络 VGG&#xff08;牛津大学视觉几何组&#xff09; 认识数据集&#xff1a;ImageNet的大规模图像识别挑战赛 LSVRC-2014&#xff1a;Image…

485通讯的自动流量控制详细介绍

485通讯的自动流量控制&#xff08;Auto Flow Control&#xff09;是一种简化流量控制过程的方法&#xff0c;使通信设备能够自动调整发送速率&#xff0c;以适应接收端的处理能力。它通过内置的算法或硬件特性来实现&#xff0c;不需要额外的硬件控制信号&#xff08;如RTS/CT…

el-table的懒加载树形结构

el-table树形模式&#xff0c;懒加载的数据保存在multipleTableRef.value.store.states.lazyTreeNodeMap._rawValue multipleTableRef.value.store.states.lazyTreeNodeMap._rawValue默认值为 {} &#xff0c; 也就是没有属性的对象&#xff0c;每展开一个节点&#xff0c;如展…

linux系统——nohup后台运行程序

nohup可以将正在执行程序以后台挂起形式执行&#xff0c;也即为执行结果不打印到终端 具体使用可以&#xff0c;nohup待执行的命令&#xff0c;可以将执行命令结果输出到当前目录的nohup.out文件内 nohup也有其他用法

Linux-Web服务搭建面试题-2

31. 描述在Linux上设置和维护分布式监控系统&#xff08;如Prometheus和Grafana&#xff09;的过程。 在Linux上设置和维护分布式监控系统&#xff08;如Prometheus和Grafana&#xff09;的过程可以分为以下几个步骤&#xff1a; 安装和配置Prometheus&#xff1a; 下载并安装…

MyCat2之分库分表

原理 一个数据库由很多表的构成&#xff0c;每个表对应的不同的业务&#xff0c;垂直切分是指按照业务将表进行分类&#xff0c;分不到不同的数据库上&#xff0c;这样压力就分担到了不同的库上面。 数据分片 数据分片包括里&#xff1a;垂直分片和水平分片&#xff0c;垂直分…