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

Vue中獲取this.$refs為undefined的問題

 更新時間:2023年05月19日 09:07:03   作者:在南沒有北  
這篇文章主要介紹了Vue中獲取this.$refs為undefined的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Vue獲取this.$refs為undefined

最近在修改bug的時候,需要獲取到dom元素進行操作

條件是通過屏幕寬度來改變獲取到dom元素的定位位置,我選擇通過JS的方式去改變

  • HTML代碼
<div ref = "mydiv"></div>
  • JS
created(){?
?? ?console.log(this.$refs.mydiv)
}

控制臺打印的時候為undefined

然后開始檢查字母和用法,發(fā)現(xiàn)都沒有問題,就只有在 methods 函數(shù)里面也打印一下,這個時候發(fā)現(xiàn)打印就完全沒問題,也得到我想得到的了,那問題應(yīng)該就出在生命周期函數(shù) created 上了,去查閱資料,果不其然

這個時候就需要說一下兩個生命周期函數(shù)了:

  • created (實例創(chuàng)建成功,此時 data 中的數(shù)據(jù)顯示出來了,dom還未生成)
  • mounted(dom生成,data數(shù)據(jù)在模板中顯示出來)

如果在created方法里this.$refs[dom]去獲取dom節(jié)點是獲取不到的

因為dom還沒有被渲染出來,而在mounted方法里是可以拿到的

Vuejs this.$refs 調(diào)用報undefined的處理

項目場景

Vue 2.6.10版本中,父組件獲取子組件問題。

問題描述

父組件調(diào)子組件方法報undefined找不到

父組件中使用子組件代碼  <UploadFile ref="refupload" ></UploadFile>

報錯:

先console.log(this.$refs);發(fā)現(xiàn)外面沒有refupload,里面有對象,不是undefined。

然后直接通過console.log(this.$refs.refupload);輸出,結(jié)果undefined報錯。

原因分析

外層有v-if包裹,導(dǎo)致未渲染報錯。

解決方案

初步錯誤的嘗試:僅使用this.$nextTick方法,結(jié)果還是獲取undefined

有效方案1:使用this.$nextTick,但需要注意v-if條件中參數(shù)的賦值需要和this.$nextTick在同一個方法體中!

有效方案2:v-show 替換掉v-if

 

拿到輸出結(jié)果:

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

高台县| 蓬莱市| 青州市| 都昌县| 青海省| 延寿县| 扎囊县| 齐齐哈尔市| 会昌县| 平顶山市| 伽师县| 彰化县| 沛县| 铜山县| 松原市| 玉环县| 遂昌县| 海城市| 乳源| 潼南县| 三门峡市| 营口市| 新蔡县| 萝北县| 西青区| 黔江区| 乌兰察布市| 万盛区| 鹿泉市| 库车县| 涡阳县| 壶关县| 石城县| 罗江县| 贵德县| 临朐县| 尼木县| 陵川县| 溆浦县| 沅陵县| 甘南县|