VUE的$refs和$el的使用

ref 被用来给元素或子组件注册引用信息数组

ref 有三种用法:
  一、ref 加在普通的元素上,用this.$refs.(ref值) 获取到的是dom元素app

  二、ref 加在子组件上,用this.$refs.(ref值) 获取到的是组件实例,能够使用组件的全部方法。在使用方法的时候直接this.$refs.(ref值).方法() 就能够使用了dom

  三、如何利用 v-for 和 ref 获取一组数组或者dom 节点this

 

  若是经过v-for 遍历想加不一样的ref时记得加 :号,即 :ref =某变量 ;spa

 

  这点和其余属性同样,若是是固定值就不须要加 :号,若是是变量记得加 :号。(加冒号的,说明后面的是一个变量或者表达式;没加冒号的后面就是对应的字符串常量(String)3d

 

应注意的坑有:code

一、ref 须要在dom渲染完成后才会有,在使用的时候确保dom已经渲染完成。好比在生命周期 mounted(){} 钩子中调用,或者在 this.$nextTick(()=>{}) 中调用。blog

二、若是ref 是循环出来的,有多个重名,那么ref的值会是一个数组 ,此时要拿到单个的ref 只须要循环就能够了
生命周期

 

 

 

vm.$el

获取Vue实例关联的DOM元素;字符串

 

比方说我这里想获取自定义组件tabControl,并获取它的OffsetTop。就须要先获取该组件。

在组件内设置   属性 ref='一个名称(tabControl2)', 

而后 this.$refs.tabControl2     就拿到了该组件 

切记:ref属性,而获取组件的时候要用$refs

 

获取  OffsetTop,组件不是DOM元素,是没有OffsetTop的,没法经过 点 .OffsetTop来获取的。就须要经过$el来获取组件中的DOM元素

相关文章
相关标签/搜索