VUE语法-$refs和ref属性的使用

1、$refs和ref属性的使用

1、$refs:一个包含 DOM 元素和组件实例的对象,通过模板引用注册。

2、ref实际上获取元素的DOM节点

3、如果需要在Vue中操作DOM我们可以通过ref和$refs这两个来实现

总结:$refs可以获取被ref属性修饰的元素的相关信息。

1.1、$refs和ref使用-非组件环境

$refs f的使用至少需要写在mounted中,等待组件渲染结束,否则获取不到信息。

在下面的案例中,我们将template中的div加入属性ref=”comp2”,并打算在mounted中获取相关的DOM信息。

注意点:这是是没有使用组件的用法,后面有组件的用法。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="https://unpkg.com/vue@3"></script>
</head>
<body><div id="app"></div><script type="module">//实例化vue实例const { createApp } = Vueconst app=createApp({mounted(){},template:`<div><div ref="comp2" name="div111">hello vue</div></div>`}); //vue实例只作用于app这个DOM节点中app.mount('#app');//viewModel是组件帮助我们完成的</script> 
</body>
</html>

1.1.1、获取名称为comp2的ref节点

核心代码:this.$refs.comp2

mounted(){console.log(this.$refs.comp2)
},

53a08a2d5b0b495bb01fb917b5174f46.png

1.1.2、获取名称为comp2节点中的值

核心代码:this.$refs.comp2.innerHTML

mounted(){console.log(this.$refs.comp2)console.log(this.$refs.comp2.innerHTML)
},

af761531d8c34d23a8e6aaf642ee36cf.png

1.1.3、获取名称为comp2节点中属性的值

核心代码:this.$refs.comp2.attributes.name

mounted(){console.log(this.$refs)console.log(this.$refs.comp2.innerHTML)//获取属性name的值console.log(this.$refs.comp2.attributes.name)},

3fa9336a49514f639b606707b3db7592.png

1.2、$refs和ref使用-组件环境

在vue中定义了一个全局组件component2

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="https://unpkg.com/vue@3"></script>
</head>
<body><div id="app"></div><script type="module">//实例化vue实例const { createApp } = Vueconst app=createApp({mounted(){console.log(this.$refs)console.log(this.$refs.comp2.innerHTML)console.log(this.$refs.comp2.attributes.name)},template:`<div>< component2 ref="comp" > </component2></div>`}); //定义一个全局组件app.component("component2",{methods:{event1(){console.log("======1======");}},data(){return {name:"晓春111"}},template:`<div name="div111">hello vue111111111</div> `});//vue实例只作用于app这个DOM节点中app.mount('#app');//viewModel是组件帮助我们完成的</script> 
</body>
</html>

1.2.1、获取到子组件comp的节点

核心代码:this.$refs.comp

mounted(){console.log(this.$refs.comp)
},

1ba784aa56ef49e58d1c6dc6be0b9e7b.png

1.2.2、获取到子组件comp的节点中定义的函数

核心代码:this.$refs.comp.event1

mounted(){console.log(this.$refs.comp)console.log(this.$refs.comp.event1)
},

68cc2bb6db824d3b9e3e0867136f694a.png

1.2.3、获取到子组件comp的节点data中定义的属性值

核心代码:this.$refs.comp.name

mounted(){console.log(this.$refs.comp)console.log(this.$refs.comp.event1)console.log(this.$refs.comp.name)},

6d4145be1e854da5b79b6d925fe903f6.png

1.2.4、获取到子组件comp的节点中template的值

核心代码:this.$refs.comp.$el

      mounted(){console.log(this.$refs.comp)console.log(this.$refs.comp.event1)console.log(this.$refs.comp.name)console.log(this.$refs.comp.$el)},

8a06f624a0c1450fad876b5ab91d7325.png

1.2.5、获取到子组件comp的节点中template中元素属性的值

核心代码:this.$refs.comp.$el.attributes.name

      mounted(){console.log(this.$refs.comp)console.log(this.$refs.comp.event1)console.log(this.$refs.comp.name)console.log(this.$refs.comp.$el)console.log(this.$refs.comp.$el.attributes.name)},

7d70c29552104c6685f17b5d31ae6b20.png

1.2.6、获取到子组件comp的节点中template中元素的值

核心代码:this.$refs.comp.$el.innerHTML

mounted(){console.log(this.$refs.comp)console.log(this.$refs.comp.event1)console.log(this.$refs.comp.name)console.log(this.$refs.comp.$el)console.log(this.$refs.comp.$el.attributes.name)console.log(this.$refs.comp.$el.innerHTML)},

e864ef817a1742c4aceb6a85ec716c1a.png

1.2.7、获取到子组件comp的节点中template中元素的值

核心代码:this.$refs.comp.$data

$data能够获取我们定义在data中的参数。也就是

data(){

        return {

          name:"晓春111"

        } }

的值

 mounted(){console.log(this.$refs.comp)console.log(this.$refs.comp.event1)console.log(this.$refs.comp.name)console.log(this.$refs.comp.$el)console.log(this.$refs.comp.$el.attributes.name)console.log(this.$refs.comp.$el.innerHTML)console.log(this.$refs.comp.$data)},

e563ba4e657541a4b81d2e22e9f32924.png

1.2.8、获取子组件comp中template自定义属性

核心代码:this.$refs.comp.$options

  mounted(){console.log(this.$refs.comp)console.log(this.$refs.comp.event1)console.log(this.$refs.comp.name)console.log(this.$refs.comp.$el)console.log(this.$refs.comp.$el.attributes.name)console.log(this.$refs.comp.$el.innerHTML)console.log(this.$refs.comp.$data)console.log(this.$refs.comp.$options)},

e3f29476f6974e3790f8d189b825966a.png

 

 

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

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

相关文章

解决ElementUI时间选择器回显出现Wed..2013..中国标准时间.

使用饿了么组件 时间日期选择框回显到页面为啥是这样的&#xff1f; 为什么再时间框中选择日期&#xff0c;回显页面出现了这种英文格式呢&#xff1f;&#xff1f;&#xff1f;&#xff1f; 其实这个问题直接使用elementui的内置属性就能解决 DateTimePicker 日期时间选择…

搭个网页应用,让ChatGPT帮我写SQL

大家好&#xff0c;我是凌览。 开门见山&#xff0c;我搭了一个网页应用名字叫sql-translate。访问链接挂在我的个人博客(https://linglan01.cn/about)导航栏&#xff0c;也可以访问https://www.linglan01.cn/c/sql-translate/直达sql-translate。 它的主要功能有&#xff1a;…

Linux上通过SSL/TLS和start tls连接到LDAP服务器

一&#xff0c;大致流程。 1.首先在Linux上搭建一个LDAP服务器 2.在LDAP服务器上安装CA证书&#xff0c;服务器证书&#xff0c;因为SSL/TLS&#xff0c;start tls都属于机密通信&#xff0c;需要客户端和服务器都存在一个相同的证书认证双方的身份。3.安装phpldapadmin工具&am…

基于JavaWeb+SSM+Vue家庭记账本微信小程序系统的设计和实现

基于JavaWebSSMVue家庭记账本微信小程序系统的设计和实现 源码获取入口前言主要技术系统设计功能截图Lun文目录订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 前言 1.1选题背景 互联网是人类的基本需求&#xff0c;特别是在现代社会&#xff0c;个人…

Django(九、cookie与session)

文章目录 一、cookie与session的介绍HTTP四大特性 cookiesession Django操作cookie三板斧基于cookie的登录功能 一、cookie与session的介绍 在讲之前我们先来回忆一下HTTP的四大特性 HTTP四大特性 1.基于请求响应 2.基于TIC、IP作用于应用层上的协议 3.无状态 保存…

No matching variant of com.android.tools.build:gradle:7.4.2 was found.

一、报错信息 创建个新项目&#xff0c;运行直接报错&#xff0c;信息如下&#xff1a; No matching variant of com.android.tools.build:gradle:7.4.2 was found. The consumer was configured to find a runtime of a library compatible with Java 8, packaged as a jar,…

Windows安装Hadoop运行环境

1、下载Hadoop 2、解压Hadoop tar zxvf hadoop-3.1.1.tar.gz3、设置Hadoop环境变量 3.1.1、系统环境变量 # HADOOP_HOME D:\software\hadoop-3.1.13.1.2、Path 环境变量 %HADOOP_HOME%\bin %HADOOP_HOME%\sbin3.1.3、修改Hadoop文件JAVA_HOME 注 : 路径中不要出现空格 ,…

分享一篇很就以前的文档-VMware Vsphere菜鸟篇

PS&#xff1a;由于内容是很久以前做的记录&#xff0c;在整理过程中发现了一些问题&#xff0c;简单修改后分享给大家。首先ESXI节点和win7均运行在VMware Workstation上面&#xff0c;属于是最底层&#xff0c;而新创建的CentOS则是嵌套后创建的操作系统&#xff0c;这点希望…

AT89S52单片机的最小应用系统

目录 ​一.时钟电路设计 1.内部时钟方式 2.外部时钟方式 3.时钟信号的输出 二.机器周期&#xff0c;指令周期与指令时序 1.时钟周期 2.机器周期 3.指令周期 三.复位操作和复位电路 1.复位操作 2 复位电路设计 四.低功耗节电模式 AT89S52本身片内有8KB闪烁存储器&am…

④【Set】Redis常用数据类型: Set [使用手册]

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ Redis Set ④Redis Set 操作命令汇总1. sadd …

真实网络中的 bbr

本文包含中心极限定理&#xff0c;大数定律&#xff0c;经济规律等&#xff0c;bbr 倒没多少&#xff0c;不过已经习惯把 bbr 当靶子了。 上周写了 揭秘 bbr 以及 抢带宽的原理&#xff0c;我对自己说&#xff0c;这都是理论上如何&#xff0c;可实际上呢。于是有必要结合更实际…

【Django使用】md文档10大模块第5期:Django数据库增删改查和Django视图

Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用&#xff0c;多个组件可以很方便的以"插件"形式服务于整个框架&#xff0c;Django有许多功能强大的第三方插件&#xff0c;你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展…