vue中ref與getElementByID的區別


1 用在常規元素中

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

ref與getElement獲取到的內容相同

在網上查到有描述說ref的方式相比getElement會減少獲取dom節點的消耗,未證實,這里記錄


2 用在組件中

2.1 單獨使用
<Test ref="testCom"/>
console.log(this.$refs.testCom)

ref獲取到的是組件對象,可以調用到該對象下的屬性和方法

  data() {
    return{
      testdata: 'testdata'
    }
  },
  methods:{
    testfun: function(){
      console.log('testfun')
    }
  },
console.log(this.$refs.testCom.$data.testdata)
this.$refs.testCom.testfun()

2.2 與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所在循環中的所有所有元素,而不是其中一個


結尾

最后,貼上官方文檔的描述,其實已經很清晰了,這里是為了自己實踐做一個記錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM