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

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

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

Vue獲取this.$refs為undefined

最近在修改bug的時(shí)候,需要獲取到dom元素進(jìn)行操作

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

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

控制臺(tái)打印的時(shí)候?yàn)閡ndefined

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

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

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

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

因?yàn)閐om還沒有被渲染出來,而在mounted方法里是可以拿到的

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

項(xiàng)目場(chǎng)景

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

問題描述

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

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

報(bào)錯(cuò):

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

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

原因分析

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

解決方案

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

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

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

 

拿到輸出結(jié)果:

總結(jié)

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

相關(guān)文章

最新評(píng)論

和硕县| 鄂伦春自治旗| 玉林市| 延吉市| 上栗县| 葵青区| 永平县| 漳浦县| 永平县| 江油市| 自贡市| 辉南县| 宾川县| 壤塘县| 常州市| 通山县| 横峰县| 隆尧县| 太和县| 彰化县| 林甸县| 阳新县| 曲周县| 大庆市| 清镇市| 微博| 玉龙| 顺平县| 红桥区| 普定县| 连云港市| 内江市| 曲水县| 深泽县| 章丘市| 朝阳区| 仁布县| 壤塘县| 闸北区| 大方县| 阿城市|