最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue中使用refs定位dom出現(xiàn)undefined的解決方法

 更新時(shí)間:2017年12月21日 11:23:33   作者:Lighter_Studio  
本篇文章主要介紹了vue中使用refs定位dom出現(xiàn)undefined的解決方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

之前在公司做項(xiàng)目,一直感覺用ref來定位dom節(jié)點(diǎn)挺方便的。但是期間遇到了一個(gè)問題,就是在mounted(){}鉤子里面使用this.$refs.xxx,打印出來的卻是undefined?

于是我就對比了一下之前使用ref定位的.vue文件,發(fā)現(xiàn)了他們之間的區(qū)別。

我們要想知道為什么會定位不到某個(gè)DOM節(jié)點(diǎn),我們首先要理解mounted(){}這個(gè)鉤子函數(shù)是用來做什么的。

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

 

原來,mounted階段,DOM結(jié)構(gòu)準(zhǔn)備就緒,但是這里的準(zhǔn)備就緒需要特別說明一下:

DOM結(jié)構(gòu)已經(jīng)出來了,但是如果在DOM結(jié)構(gòu)中的某個(gè)DOM節(jié)點(diǎn)使用了v-if、v-show或者v-for(即根據(jù)獲得的后臺數(shù)據(jù)來動(dòng)態(tài)操作DOM,即響應(yīng)式),那么這些DOM是不會再mounted階段找到的。

此時(shí)的mounted階段,一般是用于發(fā)起后端請求,拿回?cái)?shù)據(jù),配合路由鉤子做一些事情,簡單來說就是在mounted鉤子中加載數(shù)據(jù)而已,加載回來的數(shù)據(jù)是不會再這個(gè)階段更新的DOM中的

所以如果在mounted鉤子中使用$refs,如果ref是定位在有v-if、v-for、v-show中的DOM節(jié)點(diǎn),返回來的只能是undefined,因?yàn)樵趍ounted階段他們根本不存在?。?/p>

經(jīng)過檢驗(yàn),上面端文字是錯(cuò)誤的,$refs定位不到的主要原因是因?yàn)関-if、v-for、v-show這些語句如果依賴父組件傳來的參數(shù)的話,該該參數(shù)是在mounted()階段子還沒獲取得到~~~~!?。?!

如果想要真正地在DOM加載完成后拿到數(shù)據(jù),就需要調(diào)用VUE的全局api : this.$nextTick(() => {})

如果說mounted階段是加載階段,那么updated階段則是完成了數(shù)據(jù)更新到DOM的階段(對加載回來的數(shù)據(jù)進(jìn)行處理),此時(shí),ref、數(shù)據(jù)等等全部都掛載到DOM結(jié)構(gòu)上去,在update階段使用this.$refs.xxx,就100%能找到該DOM節(jié)點(diǎn)。

updated與mounted不同的是,在每一次的DOM結(jié)構(gòu)更新,vue都會調(diào)用一次updated(){}鉤子函數(shù)!而mounted僅僅只執(zhí)行一次而已

簡單來說,只要在調(diào)試的時(shí)候,能看到元素的存在,在updated階段都可以使用this.$refs.xxx找到對應(yīng)的DOM節(jié)點(diǎn)!

關(guān)于$refs的使用,官方文檔特別給出了以下提示:

 

使用的時(shí)候就注意咯- -

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 深入了解Vue3中props的原理與使用

    深入了解Vue3中props的原理與使用

    props指父組件往子組件中傳入?yún)?shù),這篇文章主要為大家介紹了vue3中props的原理與使用,文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2023-05-05
  • el-select與el-tree結(jié)合使用實(shí)現(xiàn)樹形結(jié)構(gòu)多選框

    el-select與el-tree結(jié)合使用實(shí)現(xiàn)樹形結(jié)構(gòu)多選框

    我們在實(shí)際開發(fā)中需要用到下拉樹,elementUI是沒有這個(gè)組件的,我們就要自己去寫了,下面這篇文章主要給大家介紹了關(guān)于el-select與el-tree結(jié)合使用實(shí)現(xiàn)樹形結(jié)構(gòu)多選框的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • vue虛擬化列表封裝的實(shí)現(xiàn)

    vue虛擬化列表封裝的實(shí)現(xiàn)

    這篇文章主要介紹了vue實(shí)現(xiàn)虛擬化列表封裝方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Vue過濾器filters的用法及時(shí)間戳轉(zhuǎn)換問題

    Vue過濾器filters的用法及時(shí)間戳轉(zhuǎn)換問題

    Vue的filters過濾器是比較常見的一個(gè)知識點(diǎn),下面我將結(jié)合時(shí)間戳轉(zhuǎn)換的例子帶你快速了解filters的用法,感興趣的朋友一起看看吧
    2021-09-09
  • vue中通過iframe方式加載本地的vue頁面的解決方法

    vue中通過iframe方式加載本地的vue頁面的解決方法

    這篇文章主要給大家介紹了在vue中如何通過iframe方式加載本地的vue頁面的解決方法,文中有詳細(xì)的解決流程,需要的朋友可以參考下
    2023-06-06
  • 解決修改el-pagination顯示文字的問題

    解決修改el-pagination顯示文字的問題

    這篇文章主要介紹了解決修改el-pagination顯示文字的問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • vue3+vite項(xiàng)目H5配置適配步驟詳解

    vue3+vite項(xiàng)目H5配置適配步驟詳解

    這篇文章主要為大家介紹了vue3+vite項(xiàng)目H5配置適配步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • vue項(xiàng)目中常見問題及解決方案(推薦)

    vue項(xiàng)目中常見問題及解決方案(推薦)

    這篇文章主要介紹了vue項(xiàng)目中常見問題及解決方案,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • elementUI el-form 數(shù)據(jù)無法賦值且不報(bào)錯(cuò)解決方法

    elementUI el-form 數(shù)據(jù)無法賦值且不報(bào)錯(cuò)解決方法

    本文主要介紹了elementUI el-form 數(shù)據(jù)無法賦值且不報(bào)錯(cuò)解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-12-12
  • Vue使用epubjs電子書的教程詳解

    Vue使用epubjs電子書的教程詳解

    EPUB.js是一個(gè)基于JavaScript的庫,用于從電子書中提取內(nèi)容,這篇文章主要為大家詳細(xì)介紹了vue如何使用epubjs實(shí)現(xiàn)電子書的功能,感興趣的小伙伴可以學(xué)習(xí)一下
    2023-11-11

最新評論

霍林郭勒市| 如皋市| 蛟河市| 凭祥市| 湖南省| 突泉县| 贵南县| 自贡市| 光山县| 抚松县| 东兰县| 西贡区| 松滋市| 阆中市| 沿河| 新干县| 仁怀市| 正蓝旗| 桓台县| 凤翔县| 遂昌县| 孝感市| 景洪市| 吴桥县| 泽州县| 宿迁市| 汨罗市| 获嘉县| 九江县| 临沭县| 开封市| 齐河县| 湖州市| 达孜县| 蓬溪县| 平舆县| 垦利县| 睢宁县| 苗栗市| 唐河县| 宁晋县|