vue中ref和e.target的区别 ref用法

  • Post author:
  • Post category:vue




1、首先认识一下ref

ref说白了就是标识,获取某一个标签的标志。

为什么这么说呢?

<button ref="age" @click="getRefAge">ref的age形式</button>

getRefAge(e){
		// 获取的是button标签, ref是用来获取标签的
        console.log(this.$refs.age)       
        console.log(this.$refs.age === e.target)  // true
        console.log(this.$refs)     // {age: button对象}   
      }

这个时候,可以看到给age是成为了这个button标签的标识,用于寻找,获取这个标签的标识。



2、ref的有趣玩法,深入一下,防止迷糊

// 注意: 给ref是给其绑定了v-bind事件
<button :ref="age" @click="refDongTai">ref成了动态的情况</button>

refDongTai(e){
        console.log(e.target)
        console.log(this.$refs[this.age])   // 可以访问,但没什么实质性的用处
      }

这个时候, age是一个变量,假设age的值是18,那么这个ref使用的是标识是18这个数值



3、ref和e.target的区别

<button ref="age" @click="getRefAge">ref的age形式</button>

getRefAge(e){
        console.log(this.$refs.age)     
        console.log(this.$refs.age === e.target)  // true 
      }

可以看到都同样可以获取到标签,并且 e.target的用法还单词比较少。

要想知道其区别,还需要打印一下,refs

getRefAge(e){
        console.log(this.$refs)     // {age: button标签}   
      }
现在就可以知道了,因为ref是保存在了this身上的,即vue的实例身上的,那么标识了ref的,
可以在任意位置将标签取出来使用,而e.target,则仅限于触发了这个标签事件的时候可以使用

说白了,就是this.$refs的作用范围 > e.target。 

【备注】:新手写文,如有不足之处,还请指出,提前感谢!



版权声明:本文为weixin_45715650原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。