首頁 web前端 js教程 詳解vue中使用refs定位dom出現undefined

詳解vue中使用refs定位dom出現undefined

Dec 22, 2017 am 09:10 AM
refs 出現 定位

一直覺得用ref來定位dom節點挺方便的。但是期間遇到了一個問題,就是在mounted(){}鉤子裡面使用this.$refs.xxx,印出來的卻是undefined?

於是我就比較了一下之前使用ref定位的.vue文件,發現了他們之間的差異。本文主要介紹了vue中使用refs定位dom出現undefined的解決方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟著小編過來看看吧,希望能幫助大家。

我們要想知道為什麼會定位不到某個DOM節點,我們首先要理解mounted(){}這個鉤子函數是用來做什麼的。

以下是vue官方給出的vue生命週期(部分),正如官方所說的一樣,一開始不必先理解,不過隨這你的學習與使用,他的參考價值會越來越高。

 

原來,mounted階段,DOM結構準備就緒,但是這裡的準備就緒需要特別說明一下:

DOM結構已經出來了,但是如果在DOM結構中的某個DOM節點使用了v-if、v-show或v-for(即根據所獲得的後台資料來動態操作DOM,即響應式),那麼這些DOM是不會再mounted階段找到的。

此時的mounted階段,一般是用於發起後端請求,拿回數據,配合路由鉤子做一些事情,簡單來說就是在mounted鉤子中加載數據而已,加載回來的數據是不會再這個階段更新的DOM中的

所以如果在mounted鉤子中使用$refs,如果ref是定位在有v-if、v-for、v-show中的DOM節點,返回來的只能是undefined,因為在mounted階段他們根本不存在! !

經過檢驗,上面端文字是錯誤的,$refs定位不到的主要原因是因為v-if、v-for、v-show這些語句如果依賴父組件傳來的參數的話,該此參數是在mounted()階段子還沒取得得到~~~~! ! ! !

如果想要真正在DOM載入完成後拿到數據,就需要呼叫VUE的全域api :this.$nextTick(() => {})

如果說mounted階段是載入階段,那麼updated階段則是完成了資料更新到DOM的階段(對載入回來的資料進行處理),此時,ref、資料等等全部都掛載到DOM結構上去,在update階段使用this .$refs.xxx,就100%能找到該DOM節點。

updated與mounted不同的是,在每一次的DOM結構更新,vue都會呼叫一次updated(){}鉤子函數!而mounted僅執行一次而已

簡單來說,只要在調試的時候,能看到元素的存在,在updated階段都可以使用this.$refs.xxx找到對應的DOM節點!

關於$refs的使用,官方文件特別給了以下提示:

 

使用的時候要注意一下。

相關推薦:

JavaScript中undefined與null的差異詳解

php提示undefined index的解決方法

php運行出現Call to undefined function curl_init()的解決方法

#

以上是詳解vue中使用refs定位dom出現undefined的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

哪一個比較好? Windows 11中的NTFS和ReFS有何差別和優劣勢? 哪一個比較好? Windows 11中的NTFS和ReFS有何差別和優劣勢? May 10, 2023 am 08:06 AM

NTFS一直是WindowsPC的預設檔案系統,但微軟正在ReFS中引入一些多汁的東西。這個新的檔案系統可能會出現在Windows11中,使用者渴望知道NTFS與ReFS的比較會是什麼樣子。在本詳細指南中,我們將向您展示這兩個檔案系統之間的更好選擇。 Windows11是否支援ReFS?關於Windows11支援ReFS(彈性檔案系統)的討論仍然是暫時的,正在進行中。該檔案系統尚未在Windows11PC上正式可用。但是,DevsChannel和WindowsServe

如何在uniapp中使用地圖和定位功能 如何在uniapp中使用地圖和定位功能 Oct 16, 2023 am 08:01 AM

如何在uniapp中使用地圖和定位功能一、背景介紹隨著行動應用的普及和定位技術的快速發展,地圖和定位功能已經成為了現代行動應用中不可缺少的一部分。 uniapp是一種基於Vue.js開發的跨平台應用程式開發框架,可以方便開發者在多個平台上共用程式碼。本文將介紹如何在uniapp中使用地圖和定位功能,並提供具體的程式碼範例。二、使用uniapp-amap元件實現地圖功能

如何使用WordPress外掛實現即時定位功能 如何使用WordPress外掛實現即時定位功能 Sep 05, 2023 pm 04:51 PM

如何使用WordPress外掛實現即時定位功能隨著行動裝置的普及,越來越多的網站開始提供基於地理位置的服務。在WordPress網站中,我們可以透過使用外掛程式來實現即時定位功能,為訪客提供與地理位置相關的服務。一、選擇適合的外掛程式在WordPress外掛程式庫中有很多提供地理位置服務的外掛程式可供選擇。根據需求和要求,選擇適合的插件是實現即時定位功能的關鍵。以下是幾個

蘋果無線耳機丟了怎麼定位_蘋果無線耳機定位方法 蘋果無線耳機丟了怎麼定位_蘋果無線耳機定位方法 Mar 23, 2024 am 08:21 AM

1.首先,我們打開手機上的【查找】App,在裝置介面的清單中選擇設備。 2、然後,可以查看位置,也可以點選路線導航過去。

解決Go語言開發中的記憶體洩漏定位問題的方法 解決Go語言開發中的記憶體洩漏定位問題的方法 Jul 01, 2023 pm 12:33 PM

解決Go語言開發中的記憶體洩漏定位問題的方法記憶體洩漏是程式開發中常見的問題之一。在Go語言開發中,由於其自動垃圾回收機制的存在,記憶體洩漏問題相對其他語言可能較少。然而,當我們面對大型複雜的應用程式時,仍然可能會出現記憶體洩漏的情況。本文將介紹一些在Go語言開發中定位和解決記憶體洩漏問題的常用方法。首先,我們需要了解什麼是記憶體洩漏。簡單來說,記憶體洩漏指的是程式中

高德地圖怎麼定位對方手機位置_高德地圖定位對方手機位置方法 高德地圖怎麼定位對方手機位置_高德地圖定位對方手機位置方法 Apr 01, 2024 pm 02:11 PM

1.點選進入自己手機的高德地圖軟體。 2、再點選右下角的我的。 3.點擊進入家人地圖。 4、點擊建立我的家人地圖。 5.創建成功後,會出現邀請碼,分享給另外一台手機。

他趣怎麼改定位位置資訊 修改所在地址的方法 他趣怎麼改定位位置資訊 修改所在地址的方法 Mar 12, 2024 pm 09:52 PM

我們大家都是非常清楚的知道他趣APP是一款非常可靠的聊天社交的平台,現在都能夠讓大家好好的進行線上網絡交友,這裡的一些交友的形式,主要都是讓大家進行位置交友的哦,就是這麼的簡單直接,畢竟這裡都能夠自動的為你們定位當前的位置信息,更好的為你們匹配到一些距離相近的同城好友,讓大家都能更加聊得來,都感到特別的開心,那麼很多的一些時候,大家為了想要認識更多一些別的地方的朋友們,都是產生了想要進行地址修改的想法,但是大家不知道該如何修改自己的定位位置的信息,十分困擾,所以本站小編也是收集出來了一些具體

華為手機遺失後如何快速找到手機位置? 華為手機遺失後如何快速找到手機位置? Mar 24, 2024 am 08:48 AM

在現今社會,手機已經成為我們生活中不可或缺的一部分。華為手機作為知名的智慧型手機品牌,深受廣大用戶的喜愛。然而,隨著手機的普及和使用頻率的增加,手機遺失的情況也屢有發生。一旦手機遺失,我們往往會感到焦慮和困惑。那麼,如果不幸遺失了華為手機,該如何快速找回手機位置?第一步:使用手機定位功能華為手機內建了強大的定位功能,用戶可以透過手機設定中的「安全」選項進

See all articles