使用 ref 获取 DOM 元素和组件引用|学习笔记

简介: 快速学习使用 ref 获取 DOM 元素和组件引用

开发者学堂课程【Vue.js 入门与实战使用 ref 获取 DOM 元素和组件引用】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/586/detail/8189


使用 ref 获取 DOM 元素和组件引用


本节主要学习,vue 内能否获取 DOM 内的元素和组件,首先先使用如下代码:

哈哈哈,今天天气太好了!!!

var vm= new Vue({

el:’#app’,

Date:{}

methods:{

getElement (){

console.log(document.getElementById ( 'myh3 ' ) .innerText)}

右键执行浏览,可以正常显示,且无报错:

1666936676152.jpg

但是上面的代码,其实在无形之中操作了 DOM ,在 vue 中不推荐,所以需要使用 vue 提供的 ref 功能,此时代码可以改变成如下:

哈哈哈,今天天气太好了!!!

var vm= new Vue({

el:’#app’,

Date:{}

methods:{

getElement (){

console.log(document.getElementById ( 'myh3 ' ) .innerText)}

此时刷新浏览,展开看到执行结果:

1666936691376.jpg

通过 vm 拿到 myh3,在 vm 里面添加

console. log (this. $refs.myh3.innerText)

这时

console.log(document.getElementById ( 'myh3 ' ) .innerText)注释掉

ref是英文单词reference

值类型  引用类型 referenceError引用错误

在 h3 上,ref 没有带 s 的原因在于 h3 是一个标签,在input里面添加一个 rdf =“ mybth ”,如果把 myh3 这个元素,包起来就直接使用 ref 

接下来学习 ref 如何获取组件,代码如下

var login = {

template: '

登录组件

'}

var vm= new Vue({

el:’#app’,

Date:{}

 methods:{

},

Components:{

Login

}

此时执行结果可以看到,登录组件已经显示:

1666936706630.jpg

之前是直接用 ref 引用了 DOM 元素,下面探究主键能不能有自己的方法:

代码:

data(){

return {

msg: 'son msg'}

},

methods: {

show(){

console.log('调用了子组件的方法')}

主键内部通过 this 访问到了, data  show ,当出发到对象的时候。在 getElemnetById 添加

console. 1og (this.$refs.mylogin.msg)

此时网页显示:

1666936717446.jpg

同时也可以有自己的访问方法:

 getElemnetById 里面添加这个

this.$refs.mylogin.show()

保存到后在到网页里面观察。(图片如下:)

1666936736061.jpg

相关文章
|
1月前
|
JavaScript
怎么判断两个文档节点、网页元素(element)是否相同?判断两个DOM节点是否相等、相同的4种方法
怎么判断两个文档节点、网页元素(element)是否相同?判断两个DOM节点是否相等、相同的4种方法
|
7天前
|
JavaScript 前端开发 容器
js操作dom元素
js操作dom元素
13 0
|
10天前
|
JavaScript 前端开发 UED
【Web 前端】如何将一个 HTML 元素添加到 DOM 树中的?
【5月更文挑战第2天】【Web 前端】如何将一个 HTML 元素添加到 DOM 树中的?
|
14天前
|
JavaScript 前端开发 开发者
【Web 前端】如何操作DOM元素?
【4月更文挑战第22天】【Web 前端】如何操作DOM元素?
|
14天前
|
JavaScript 前端开发 索引
【Web 前端】JQ对象和DOM元素之间如何转换?
【4月更文挑战第22天】【Web 前端】JQ对象和DOM元素之间如何转换?
|
14天前
|
JavaScript 前端开发
JavaScript DOM 文档对象模型(获取、改变html元素)
JavaScript DOM 文档对象模型(获取、改变html元素)
|
18天前
|
JavaScript 数据可视化 容器
easyv平台_过滤器强制修改dom(暴力自定义组件渲染样式)
easyv平台_过滤器强制修改dom(暴力自定义组件渲染样式)
8 0
|
18天前
|
移动开发 JavaScript 前端开发
webgl学习笔记3_javascript的HTML DOM
webgl学习笔记3_javascript的HTML DOM
19 0
webgl学习笔记3_javascript的HTML DOM
|
29天前
|
JavaScript 前端开发
JavaScript DOM 操作:如何选中一个 HTML 元素?有哪些方法?
在JavaScript中,有五种主要方法选取HTML元素:1) `getElementById` 通过id选取单个元素;2) `getElementsByClassName` 选取具有特定类名的所有元素;3) `getElementsByTagName` 选取特定标签的所有元素;4) `querySelector` 使用CSS选择器选取单个元素;5) `querySelectorAll` 选取匹配CSS选择器的所有元素。这些方法结合使用可精确地定位到DOM树中的目标元素。
13 1
|
29天前
|
JavaScript 前端开发
JavaScript DOM 操作:如何动态创建和插入元素?
使用JavaScript的`createElement`, `createTextNode`和`appendChild`方法可动态创建并插入元素。
14 2