vue屬性介紹(一)ref 與$refs的互生關係

場景介紹

當我們需要在js中獲取某個節點的時候,我們一般會採用什麼呢,js中可以是document.getelementById("dom"),jquery中可以是$("#dom"),那麼vue中我們可以怎樣快速獲取指定節點的dom信息呢,我想說的是:ref爲你而來。

實例介紹

在介紹實例之前,我們先來說一下ref 和$refs的區別:

屬性 詳情
ref 用於dom元素中,用於標記dom元素。
$refs 用於create或method方法中,用於獲取標記的dom元素。

由以上表格可以看出,我說他們是互生關係實至名歸。

ref在實例中的應用

在以下的代碼片段中,我們將mail註冊在父組件$refs 對象中,第二種是我們將mailMsg註冊到 $refs ,註冊後我們獲取的是整個dom元素。

	<div class="mail">
	  <span>郵箱:</span>
	  <input type="text" class="text" v-model="mail" ref="mail"/>
	  <img src="./fhz.png" @click="clearMail" v-show="isClearMail">
	<p  ref="mailMsg">*請填寫正確郵箱</p>
	</div>

$refs在實例中的應用

$refs 用於獲取已註冊的元素。比如下面我們設置mail的焦點(或者或者整個元素)可以通過以下的方式實現。

  mounted(){
     this.$refs.mail.focus();
  },

重要提醒

關於 ref 註冊時間的重要說明:因爲 ref 本身是作爲渲染結果被創建的,在初始渲染的時候你不能訪問它們 - 它們還不存在!$refs 也不是響應式的,因此你不應該試圖用它在模板中做數據綁定。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章