浅析Vue中ref属性与getElementById的区别

本文详细介绍了Vue.js中`ref`的使用,包括在普通HTML元素和组件上的应用,以及与`v-for`指令结合的情况。通过示例代码展示了如何通过`ref`获取DOM元素或组件实例,并强调了在循环中使用`v-for`时,`ref`会返回一个数组,包含了所有循环元素的引用。文章最后总结了`ref`的基本用法和特性,强调其在父子组件通信和操作元素或组件实例时的重要性。
摘要由CSDN通过智能技术生成

在常规html标签中应用

<div id="test" ref="test">test</div>
console.log(document.getElementById('test'))
console.log(this.$refs.test)

在这里插入图片描述

ref与getElement获取到的内容是相同的

在组件中应用

<Test ref="testCom"/>
console.log(this.$refs.testCom)

在这里插入图片描述

ref获取到的是组件对象,可以调用该对象下的属性和方法

与v-for组合使用

<ul v-for="item in list" :key="item.name">
	<li ref="item">{{item.name}}</li>
</ul>
  data() {
    return{
      list:[
        {name: 1},
        {name: 2},
        {name: 3}
      ]
    }
  },
  mounted(){
    console.log(this.$refs.item)
  }

在这里插入图片描述
可以看到,输出的是ref所在循环中的所有元素。

官方文档

在这里插入图片描述

总结

  • ref被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的$ref对象上
  • 如果在普通的DOM元素上使用,引用指向的就是DOM元素;如果用在子组件上,引用就指向组件实例
  • 当v-for用于元素或组件的时候,引用信息奖是包含DOM借点或组件实例的数组
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值