当前位置: 首页 > news >正文

Vue中常见的几种组件间通信方法

1.props(父传子)

父组件Parent.vue

<template><child :msg="message"></child>
</template>

父组件通过:val="value"的形式定义要传给子组件的值value绑定到val上
子组件Child.vue

export default {//写法一 用数组接收props:['msg'], //写法二 用对象接收,可以绑定接收的数据类型、设置默认值、验证等props:{msg:{type:string,default:"这是默认值"}},  created(){console.log(this.msg)}
}

子组件通过props的方法接收父组件绑定的val

2.$emit(子传父)

父组件Parent.vue

<template><p>{{num}}</p><child @getVal="getvalue()"></child>
</template>
<script>
export default { components:{child},data(){return{num=''}},methods:{getvalue(val){this.num = val}}
}
</script>

子组件Child.vue

export default { data(){return{val=1}},methods:{sendval(){this.$emit("getVal",this.val)}}
}

3.EventBus事件总线(兄弟组件间传值)

创建事件中心管理组件之间的通信

// event-bus.js
import Vue from 'vue'
export const EventBus = new Vue()

兄弟A通过 $emit 进行派发传值,兄弟B通过 $on 接收A的值

4、依赖注入(provide / inject)

这种方式就是vue中依赖注入,该方法用于 父子组件之间 的通信。当然这里所说的父子不一定是真正的父子,也可以是祖孙组件,在层数很深的情况下,可以使用这种方式来进行传值。就不用一层一层的传递数据了。
provide和inject是vue提供的两个钩子,和data、methods是同级的。并且provide的书写形式和data一样。
provide 钩子用来发送数据或方法,inject钩子用来接收数据或方法

provide() { return {     num: this.num  };
}
inject: ['num']

注意: 依赖注入所提供的属性是非响应式的。

5、$parent / $children

使用$parent可以让组件访问父组件的实例(访问的是上一级父组件的属性和方法)。
使用 $children 可以让组件访问子组件的实例,但是, $children 并不能保证顺序,并且访问的数据也不是响应式的。

子组件:

<template><div><span>{{message}}</span><p>获取父组件的值为:  {{parentVal}}</p></div>
</template><script>
export default {data() {return {message: 'Vue'}},computed:{parentVal(){return this.$parent.msg;}}
}
</script>

父组件

<template><div class="hello_world"><div>{{msg}}</div><child></child><button @click="change">点击改变子组件值</button></div>
</template><script>
import child from './child.vue'
export default {components: { child },data() {return {msg: 'Welcome'}},methods: {change() {// 获取到子组件this.$children[0].message = 'JavaScript'}}
}
</script>

在上面的代码中,子组件获取到了父组件的parentVal值,父组件改变了子组件中message的值。
1.通过 $parent 访问到的是上一级父组件的实例,可以使用 $root 来访问根组件的实例
2.在组件中使用$children拿到的是所有的子组件的实例,它是一个数组,并且是无序的
3.在根组件 #app 上拿 $parent 得到的是 new Vue()的实例,在这实例上再拿 $parent 得到的是undefined,而在最底层的子组件拿 $children 是个空数组
4.$children 的值是数组,而 $parent是个对象

6、$root

将数据data挂载在vue实例上,子组件通过this.$root.xxx 可以访问

7. 跨代通信$attrs $listeners

相关文章:

Vue中常见的几种组件间通信方法

1.props&#xff08;父传子&#xff09; 父组件Parent.vue <template><child :msg"message"></child> </template>父组件通过:val"value"的形式定义要传给子组件的值value绑定到val上 子组件Child.vue export default {//写法一…...

Outcome VS. Output:研发效能提升中,谁会更胜一筹?

2007 年&#xff0c;网景通信公司&#xff08;Netscape&#xff09;的联合创始人 Marc Andreessen 在博客 The Pmarca Guide to Startups 中提出 「Product/Market Fit」 &#xff0c;他写道&#xff0c; 「这意味着在一个良好的市场中&#xff0c;拥有能够满足该市场的产品。」…...

ptp4l与phc2sys进行系统时钟同步

linuxptp用于时钟同步。安装采用apt install linuxptp主要包含2个程序&#xff0c;ptp4l 进行时钟同步&#xff0c;实时网卡时钟与远端的时钟同步&#xff0c;支持1588 和 802.1AS 两种协议phc2sys 将网卡上的时钟同步到操作系统&#xff0c;或者反之命令demo:某主机P通过eth2连…...

使用注解JSON序列化

JsonSerialize(using ToStringSerializer.class) 将返回数据转成String序列化 JsonFormat(pattern "yyyy-MM-dd hh:mm",timezone"GMT8") 将日期数据转换成特定格式 使用JsonSerialize自定义注解接口 定义接口 import java.lang.annotation.ElementTyp…...

kubernetes教程 --Pod生命周期

Pod生命周期 pod创建过程运行初始化容器&#xff08;init container&#xff09;过程运行主容器&#xff08;main container&#xff09;过程 容器启动后钩子&#xff08;post start&#xff09;、容器终止前钩子&#xff08;pre stop&#xff09;容器的存活性探测&#xff08;…...

高校房产管理系统用到了哪些技术?

数图互通高校房产管理系统是基于公司自主研发的FMCenterV5.0平通过在中国100多所高校的成功实施和迭代&#xff0c;形成了一套成熟、完善、全生命周期的房屋资源管理解决方案。台&#xff0c;是针对中国高校房产的管理特点和管理要求&#xff0c;研发的一套标准产品&#xff1b…...

【Python学习笔记】37.Python3 MySQL - mysql-connector 驱动(2)

前言 本章继续介绍MySQL - mysql-connector 驱动。 where 条件语句 如果我们要读取指定条件的数据&#xff0c;可以使用 where 语句&#xff1a; demo_mysql_test.py 读取 name 字段为 CSDN 的记录&#xff1a; import mysql.connectormydb mysql.connector.connect(host…...

【高级Java】高级Java实验

一、反射与动态代理1、&#xff08;4分&#xff09;请通过反射技术&#xff0c;为附件中的Person.class生成相应的.java代码&#xff0c;java代码中的方法的方法体为空&#xff0c;即方法内部代码不用生成。请注意生成的java代码的格式。2、&#xff08;3分&#xff09;请为第1…...

SYN480R 解码

目录1.空载情况下2.当有按键被按下3.数据帧分析4.同步码5.数据码6.对24位数据帧分析1.空载情况下 在空载情况下&#xff0c;syn480r 输出引脚&#xff0c;输出的是杂乱无序的波形 2.当有按键被按下 按下按键&#xff0c;会连续输出相同的脉冲波形&#xff0c;放大分析 3.数据…...

ASP .NET(基于.NET 6.0)源码解读

这几天一直在琢磨在我现有技术认知基础上&#xff0c;未来如何做技术提升。 日思夜想&#xff0c;我整理出了我自己的一套学习规划方案&#xff0c;并希望在实施过程中能够不断调整学习方案与方式&#xff0c;以接近自我提升的效率最大化。 从以下几个大的方面来得到提升&…...

阿里工作7年,一个30岁女软件测试工程师的心路历程

简单的先说一下&#xff0c;坐标杭州&#xff0c;14届本科毕业&#xff0c;算上年前在阿里巴巴的面试&#xff0c;一共有面试了有6家公司&#xff08;因为不想请假&#xff0c;因此只是每个晚上去其他公司面试&#xff0c;所以面试的公司比较少&#xff09; 其中成功的有4家&am…...

学生党必备的 Keychron 无线机械键盘

学生党必备的 Keychron 无线机械键盘 由于专业需要&#xff0c;之间的键盘使用起来不太舒服&#xff0c;于是准备重新买一个适合工作学习的键盘&#xff0c;于是通过朋友介绍了解到了keychron k3pro,当时也看到网上一些资料说道这款键盘比较到位&#xff0c;今天就来带大家了解…...

FPGA MAX 10 10M50系列10M50DAF484C8G/10M50DAF484C7G/10M50DCF484C7G规格

介绍MAX 10器件是单芯片、非易失性低成本可编程逻辑器件(pld)&#xff0c;用于集成最优的系统组件集。MAX 10设备的亮点包括:内部存储双配置闪存用户闪存即时支持集成模数转换器(adc)支持Nios II单芯片软核处理器MAX 10设备是系统管理、I/O扩展、通信控制平面、工业、汽车和消费…...

【codequ】Java学习路线整理(韩顺平)

文章目录Java学习路线一、Java基础1.建立编程思想Java概述变量运算符控制结构数据、排序和查找面向对象编程&#xff08;基础&#xff09;面向对象编程&#xff08;中级&#xff09;项目&学以致用2.提升编程能力3.分析需求&#xff0c;代码实现能力Java8新特性二、Java高级…...

服务器容器配置日志(Linux+x86_64+Ubuntu18.04+CUDA11.0+python3.7)

一、创建并进入容器 &#xff08;平台使用教学详细&#xff0c;这部分略写&#xff09; 登上服务器后&#xff0c;打开终端输入如下进入自己建的容器 ssh -p XXXXX root10.XXX.XXX.XXX //按自己的宿主机端口写二、安装Conda&#xff08;miniconda3&#xff09; &#xff08…...

2023年美赛赛题思路分析

2023年的赛题A-F题的整体难度不算太难&#xff0c;难度在于数据的收集上。整体难度上来看&#xff0c;难度上F题难度最小&#xff0c;建议直接上手。本次先给大家分享一些数据网站&#xff0c;在对各题做简单的思路分析。1、美国国家海洋和大气管理局Homepage | National Ocean…...

[C++]服务器与客户端建立连接与检测断开的demo

该程序在IP127.0.0.1以及端口5000环境下测试 有一段时间没有在Windows下用C进行网络编程了&#xff0c;这段日子都在做QT的网络编程和OpenCV的图像识别。 今天重新写个Windows下C的&#xff0c;基于TCP的双端连接建立与断开检测的demo&#xff0c;巩固下自己Windows下的网络编程…...

包教包会vue3+ts状态管理工具pinia

一、Pinia介绍 定义&#xff1a;pinia是和vuex一样的状态管理工具 语法&#xff1a;和 Vue3 一样&#xff0c;它实现状态管理有两种语法&#xff1a;选项式API 和 组合式API 支持&#xff1a;vue2、typeScript、devtools 二、使用步骤 1.安装 pnpm add pinia yarn add pin…...

Generated columns cannot be used in COPY

错误如下DBD::Pg::db do failed: ERROR: column "transtype" is a generated columnsec., avg: 2520 recs/sec), REPORTSINTERMEDIATETABLE in progress.DETAIL: Generated columns cannot be used in COPY. at /usr/local/share/perl5/Ora2Pg.pm line 15125.FATAL: …...

Amazon S3简介

前言&#xff1a; 这段时间来到了某大数据平台&#xff0c;做平台技术底座封装和一些架构等等&#xff0c;有结构化数据也有非结构数据&#xff0c;涉及到很多技术&#xff0c;自己也私下花时间去研究了很多&#xff0c;有很多纯技术类的还是需要梳理并记录&#xff0c;巩固以及…...

VOOHU沃虎xJLSemi景略:智造时代通信基石-以太网接口PHY芯片

随着智能制造和工业物联网的高速发展&#xff0c;工业通信正朝着高速化、智能化的方向迈进。工业自动化设备需要实时、高效地传输大量数据&#xff0c;以实现精准控制和协同作业。 工业以太网现场总线凭借其高速率、高可靠性、兼容性强等优势成为工业通信的主流选择&#xff0…...

Docker+iredmail搭建企业级邮件服务器全流程(附常见问题排查)

Dockeriredmail搭建企业级邮件服务器全流程指南 邮件系统作为企业日常沟通的核心基础设施&#xff0c;其稳定性和安全性直接影响业务运转效率。传统邮件服务器部署往往需要复杂的配置和漫长的调试周期&#xff0c;而Docker容器化技术结合iredmail开源邮件解决方案&#xff0c;为…...

语音转换完全上手:Retrieval-based Voice-Conversion-WebUI从入门到精通

语音转换完全上手&#xff1a;Retrieval-based Voice-Conversion-WebUI从入门到精通 【免费下载链接】Retrieval-based-Voice-Conversion-WebUI 语音数据小于等于10分钟也可以用来训练一个优秀的变声模型&#xff01; 项目地址: https://gitcode.com/GitHub_Trending/re/Retr…...

2024 0xGame Web安全挑战:从SQLite注入到RCE实战解析

1. SQLite注入基础与实战技巧 SQLite作为轻量级数据库&#xff0c;在CTF题目中经常出现。与MySQL注入相比&#xff0c;SQLite少了information_schema等常用表&#xff0c;但核心注入逻辑相通。以2024 0xGame的ez_sql题为例&#xff0c;我们来看具体操作&#xff1a; 闭合方式差…...

5大突破!漫画阅读工具Venera重构跨平台阅读体验

5大突破&#xff01;漫画阅读工具Venera重构跨平台阅读体验 【免费下载链接】venera A comic app 项目地址: https://gitcode.com/gh_mirrors/ve/venera 副标题&#xff1a;如何在Windows、macOS和移动设备间无缝切换你的漫画库&#xff1f; 开篇痛点引入 不同设备间漫…...

突破数字阅读壁垒:bypass-paywalls-chrome-clean工具深度实战指南

突破数字阅读壁垒&#xff1a;bypass-paywalls-chrome-clean工具深度实战指南 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在信息获取成本日益增高的今天&#xff0c;优质内容常常…...

为什么你的MoveIt2 Python API总报错?ROS2环境变量与PYTHONPATH的隐藏陷阱

为什么你的MoveIt2 Python API总报错&#xff1f;ROS2环境变量与PYTHONPATH的隐藏陷阱 当你第一次在ROS2中尝试使用MoveIt2的Python API时&#xff0c;那种"ModuleNotFoundError: No module named moveit"的报错信息可能会让你抓狂。这不是因为你做错了什么&#xff…...

非隔离双向 DC/DC 变换器 buck - boost 变换器仿真探索

非隔离双向DC/DC变换器 buck-boost变换器仿真 输入侧为直流电压源&#xff0c;输出侧接蓄电池 模型采用电压外环电流内环的双闭环控制方式 可实现恒流充放电&#xff0c;且具备充放电保护装置防止过充和过放。 蓄电池充放电模式可切换 Matlab/Simulink模型在电力电子领域&#…...

盘点那些提高作物耐盐性的方法(一)

本文内容速览&#xff1a;随着全球气候变化加剧和不合理灌溉的持续影响&#xff0c;土壤次生盐渍化问题日益突出&#xff0c;许多地区的耕地盐碱化程度不断加重。传统手段在应对作物的高盐胁迫时逐渐显现出效果上限——部分作物的耐盐性改良已进入平台期&#xff0c;单纯依靠农…...

告别串口线!手把手教你用WCH-LinkE的SDI功能实现CH32V303RCT6的无线调试打印

无线调试革命&#xff1a;基于WCH-LinkE的SDI功能实现CH32V303RCT6高效打印 调试嵌入式系统时&#xff0c;串口打印是最常用的调试手段之一。然而传统串口调试需要占用宝贵的硬件UART资源&#xff0c;在IO口紧张或串口已被占用的场景下尤为不便。沁恒微电子推出的SDI(Serial Da…...