通过ref进行组件间的通信

news2024/9/25 17:10:39

ref:绑定dom节点,拿到的就是dom对象;

ref:绑定组件,拿到的就是组件对象;

ref绑在dom节点上:

//绑在dom上,
<input type="text" ref="mytext">
<input type="text" ref="myusername">
//this.$refs拿到的是原生dom节点
console.log(this.$refs)

结果: 

console.log(this.$refs.mytext,this.$refs.myusername)

分别拿到两个input dom节点:

完整代码: 

<body>
    <div id="box">
        <input type="text" ref="mytext">
        <input type="text" ref="myusername">
        <button @click="handleAdd">add</button>
    </div>
    <script>
        new Vue({
            el:"#box",

            methods:{
                handleAdd(){
                    console.log(this.$refs.mytext,this.$refs.myusername)
                }
            }
        })
    </script>
</body>

结果:

ref绑在组件上: 

//绑在组件上
<child ref="mychild"></child>
//this.$refs.mychild获取的是组件对象,里面有很多组件里的属性方法
console.log(this.$refs.mychild)

结果:

我们在组件里定义一个状态:myname,通过“this.$refs.mychild”就能拿到整个组件对象,所以组件对象里的状态也就可以用访问了:

console.log(this.$refs.mychild.myname)

这样别的组件也就能拿到 child 组件上的状态了;

完整代码:

<body>
    <div id="box">
        <button @click="handleAdd">add</button>

        <child ref="mychild"></child>
    </div>
    <script>
        Vue.component("child",{
            template:`
            <div>child</div>
            `,
            data(){
                return {
                    myname:"child-11111"
                }
            }
        })
        new Vue({
            el:"#box",

            methods:{
                handleAdd(){
                    console.log(this.$refs.mychild.myname)
                }
            }
        })
    </script>
</body>

结果:

  • 其他的组件也可以改这个状态;; 

 

ref的缺点:

因为ref虽然能实现组件之间的通信,但是会造成数据流流向的紊乱,所以一般不用;

 组件之间的通信有几种:

  • 父传子--通过自定义属性(兄弟之间的通信通过父组件中间人)
  • 子传父--通过自定义事件
  • bus方式--发布者、订阅者
  • vuex方式
  • ref方式--打破组件间的壁垒,直接拿来用

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

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

相关文章

SpringCloud微服务(十二)——Seata分布式事务

SpringCloud Alibaba Seata分布式事务 简介 Seata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务 官网&#xff1a;http://seata.io/zh-cn/ 一次业务操作需要垮多个数据源或需要垮多个系统进行远程调用,就会产生分布式事务问题…

PDF的两种密码忘记了,怎么解决

PDF文件带有两种加密方式&#xff0c;大家一定都很熟悉&#xff0c;因为大部分文件都有这两种加密方式&#xff0c;比如Word、Excel、PPT、压缩包等。PDF文件也有这两种密码。 那就是&#xff1a;打开密码、编辑限制 打开密码&#xff1a;就是在我们打开PDF文件的时候&#x…

聚焦离子束FIB测试的计量技术规范盘点

聚焦离子束系统采用聚焦的离子束对样品表面进行轰击&#xff0c;并由计算机控制离子束的扫描或加工轨迹、步距、驻留时间和循环次数&#xff0c;以实现对材料的成像、刻蚀、诱导沉积和注入的分析系统。其应用已经从界面检测扩展到纳米图像制备、透射样品制备、三维成像和分析、…

网络安全加固的必要性

随着信息化的快速变化&#xff0c;企业和机构面临网络安全威胁也越来越多&#xff0c;每一种安全防护措施就像是桶的一块木板&#xff0c;这个木桶中承载着的水就好比网络中运行的各种业务。各种业务能否安全、稳定地运转取决于最矮木板的高度和各块木板之间是否存在缝隙。为了…

加拿大Assignment写作格式技巧整理

对大部分同学来说&#xff0c;写Assignment就如同梦魇一般&#xff0c;让人望而却步。的确&#xff0c;写Assignment是一个大工程&#xff0c;需要为之付诸努力。但是也不必过于担心&#xff0c;小编在本文中主要讨论加拿大英文Assignment的格式及写作技巧&#xff0c;希望能对…

内网使用adb工具使用logcat进行日志分析

WorkTool自动化团队问题发现正文总结问题发现 我们在平时的安卓项目开发中&#xff0c;看日志和调试肯定都是通过 Android Studio 进行实时日志查看和过滤&#xff0c;但如果是部署在内网机器或其他原因不能方便的安装 Android Studio 想查看实时日志就有一定的困难&#xff0…

擎创技术流 | ClickHouse实用工具—ckman教程(4)

《使用CKman导入集群》 CKman&#xff08;ClickHouse Manager&#xff09;是由擎创科技自主研发的一款管理ClickHouse的工具&#xff0c;前端用Vue框架&#xff0c;后端使用Go语言编写。它主要用来管理ClickHouse集群、节点以及数据监控等&#xff0c;致力于服务ClickHouse分布…

双软企业认定需要什么条件

认定双软企业的好处 1、税收优惠:所得税两免三减半。双软认证企业&#xff0c;自获利年度起&#xff0c;第一年和第二年免征企业所得税&#xff0c;第三年至第五年减半征收企业所得税。 增值税超过3%的部分即征即退。 2、政策支持:各地政府对于科研专项资金、税收减免科技计划、…

哈希表【数据结构】

文章目录哈希表概念插入元素搜索元素结构冲突概念冲突-避免哈希函数设计常见哈希函数调节负载因子负载因子定义负载因子和冲突率的关系冲突解决冲突-解决-闭散列线性探测过程缺点二次探测概念缺点冲突-解决-开散列/哈希桶概念结构代码实现哈希桶hashcode 和 equals问题面试题&a…

Metabase学习教程:视图-2

线型图指南 当我们谈论线型图时&#xff0c;我们谈论的多数是&#xff1a;时间序列、趋势线、警报等等。 线型图对于绘制在序列中捕获的数据非常有用&#xff0c;无论该序列是时间的流逝&#xff0c;还是流程或流中的步骤。这些图表通常用于绘制时间序列&#xff08;也称为运…

语义分割实战:基于tensorflow搭建DeeplabV3实现语义分割任务

任务描述: 语义分割是一种典型的计算机视觉问题,其是将一些图像作为输入并将它们转换为具有突出显示的感兴趣区域的掩模,即图像中的每个像素根据其所属的感兴趣对象被分配类别。如下图中左图所示,其语义是人骑自行车,语义分割的结果如右图所示,粉红色代表人,绿色代表自行…

ssm基于安卓android的失物招领APP-计算机毕业设计

技术介绍 开发语言&#xff1a;Java 框架&#xff1a;ssm JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.9 安卓框架&#x…

Qt MainWindow窗口部件简介

Qt MainWindow窗口部件简介 1、菜单栏 特性如下&#xff1a; 有且仅有一个**位置&#xff1a;**顶部 // 创建菜单 最多只能有一个 QMenuBar * bar menuBar(); // 将菜单栏放入到窗口处 setMenuBar(bar);// 创建顶部菜单 QMenu * fileMenu bar->addMenu("文件&quo…

用DIV+CSS技术制作一个简单的网页 我的家乡主题

家乡旅游景点网页作业制作 网页代码运用了DIV盒子的使用方法&#xff0c;如盒子的嵌套、浮动、margin、border、background等属性的使用&#xff0c;外部大盒子设定居中&#xff0c;内部左中右布局&#xff0c;下方横向浮动排列&#xff0c;大学学习的前端知识点和布局方式都有…

redis三(3-2)

传统缓存的问题 传统的缓存策略一般是请求到达Tomcat后&#xff0c;先查询Redis&#xff0c;如果未命中则查询数据库&#xff0c;存在下面的问题&#xff1a; 请求要经过Tomcat处理&#xff0c;Tomcat的性能成为整个系统的瓶颈Redis缓存失效时&#xff0c;会对数据库产生冲击…

【Java八股文总结】之读写分离分库分表

文章目录读写分离&分库分表一、读写分离1、何为读写分离2、读写分离会带来什么问题&#xff1f;如何解决&#xff1f;3、如何实现读写分离&#xff1f;4、主从复制原理二、分库分表1、为什么要进行分库分表&#xff1f;2、何为分库&#xff1f;3、何为分表&#xff1f;★4、…

Github+Markdown(1)

报错配置 如果报错如下&#xff1a;Failed to connect to github.com port 443: Timed out 解决方案&#xff1a; 在C:\Users\m00585487\.gitconfig文件中&#xff0c;添加如下内容 [http "https://github.com"] proxy http://m00585487:J!f42022proxyhk.huawei…

基础SSM框架搭建

SSM框架一、注入依赖二、配置web.xml三、springmvc-common.xml配置四、mybatis-config.xml配置五、log4j.properties日志文件配置六、jdbc.properties连接信息七、applicationContext.xml配置八、UserDao.xml案例九、UserService接口十、UserServiceImpl实现十一、MyConverter十…

【表白程序】盛开的玫瑰代码

我挥舞着键盘和本子&#xff0c;发誓要把世界写个明明白白。 今天带来的是盛开的玫瑰&#xff0c;希望大家喜欢&#xff01; 简介 HTML5 SVG线条玫瑰花动画特效是一款基于svg绘制卡通玫瑰花动画&#xff0c;先用线条勾画出花的现状&#xff0c;在生成颜色过程特效。 利用所学…

如何提取图片中文字?安利这几个图片转文字提取的方法

在我们工作学习中&#xff0c;有没有遇到过需要将图片中的文字信息给记录下来的情况&#xff0c;一般这种时候你是怎么做的呢&#xff1f;是根据图片手动输入吗&#xff1f;如果是在文字少量的情况下&#xff0c;可以这样操作&#xff0c;可是如果文字较多的话&#xff0c;手动…