美文网首页
vue中ref的用法

vue中ref的用法

作者: 超人鸭 | 来源:发表于2019-08-18 23:37 被阅读0次

vue给我们提供一个操作dom的属性,ref。绑定在dom元素上时,用起来与id差不多,通过this.$refs来调用:

<div ref="test">test</div>
console.log(this.$refs.test)
image.png

看到打印出来就是绑定的dom对象,可以用来执行一些dom操作,比如操作样式,获取属性等:

let testDom = this.$refs.test
testDom.style.height = '200px'
testDom.style.background = 'red'
console.log(testDom.clientHeight)

可以看到如果绑定在普通的dom元素上,与id用法基本一样,那肯定还有别的用法,比如 循环渲染:

//简单的数组:
    list:[1,2,3,4]
//绑定在循环渲染上
    <ul>
      <li v-for="(item,index) in list" :key="index" ref="list">
        {{index}}--{{item}}
      </li>
    </ul>
//打印看一下这个ref="list"是什么
    console.log(this.$refs.list)
image.png

可以看到是个数组,也很好理解,数组的每一项就是每个li元素。

  • ref除了这两个用法,还有另一种用法,绑定在组件标签上:
    比如说我现在有个组件test:
<template>
  <div style="height:200px;background:red;"></div>
</template>

<script>
export default {
  name:'test',
  data() {
    return{
      data:1
    }
  },
  methods: {
    _alert() {
      alert('test-ref')
    }
  }
}
</script>

然后我把别的地方引用它,并绑定ref:

<test ref="test"></test>
//打印出来看看这次是什么
console.log(this.$refs.test)
image.png

可以看到这次和我们之前绑定在dom元素上有很大的不同,这次获取到的是一个VueComponent对象,里面有这个组件的各个属性,这些属性里面有一个$el,这就是dom对象,就是和我们直接绑定在dom元素上获取的一样:

let testDom = this.$refs.test.$el
console.log(testDom.clientHeight)  //打印出来就是设置的200

这个$el属性,而且我们可以看到里面还有我们设置在data里面的变量,我们是可以直接通过这种ref的方式去修改,它就等于拿到那个组件的this,可以直接调用,不仅是data里面的变量,还有methods里面的方法:

//调用在之前组件里面定义的_alert()方法
this.$refs.test._alert()
image.png

这种用法特别适合在用ui框架的组件的时候,ui框架给我们提供了很多组件的方法,就是要通过这个ref去调用,比如说element-ui的树形组件:


image.png

还有许多,用到外部框架组件的时候,就需要使用这种方法。

相关文章

  • vue中ref的用法

    vue给我们提供一个操作dom的属性,ref。绑定在dom元素上时,用起来与id差不多,通过this.$refs来...

  • vue中ref($refs)的用法

    官网概念: 解读: 用途:ref相当于给元素或组件赋予一个ID引用,用来注册引用信息的,方便获取dom元素或获取组...

  • vue ref 用法

    简单些个小demo 点击后数字+1,闪闪效果。 结果 优化之后代码: 有更好的方法,可以留言,一起学习❤❤❤❤❤❤❤❤

  • vue中ref的作用

    vue中的ref其实功能很强大,下面介绍一下如何使用。 基本用法,本页面获取dom元素 其实ref除了可以获取本页...

  • vue - ref

    vue - ref 说明 ref 是英文单词 reference,代表引用. 在 vue 中, ref 的使用分四...

  • Vue中ref/$refs的基本用法

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

  • VUE中父组件使用子组件函数,子组件使用父组件函数

    (1)vue中父组件调用子组件函数 用法:子组件上定义ref="refName", 父组件的方法中用this.$r...

  • vue 之 ref 用法

    ref被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的$refs对象上。如果在普通的 DOM 元素上使...

  • Vue ref="XXX" 用法

    类似组件定义id

  • vue中ref($refs)用法和作用

    ref有三种用法: 1、ref 加在普通元素上,用this.$refs.name 获取到的是dom元素 2、ref...

网友评论

      本文标题:vue中ref的用法

      本文链接:https://www.haomeiwen.com/subject/mftjsctx.html