欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關于vue中ref的使用(this.$refs獲取為undefined)

 更新時間:2022年03月25日 15:11:23   作者:蕾蕾是個程序員  
這篇文章主要介紹了關于vue中ref的使用(this.$refs獲取為undefined),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

vue的ref(this.$refs獲取為undefined)

如果你獲取到的總是空的,你注意一下:

1.你在哪里調用,和你調用的對象

試試在mounted()里面調用有效果沒有

調用的對象是本來就存在的,還是需要數據渲染之后才會出現的,同理,在mounted()里面調用看看

2.調用對象是不是數組列表

我一開始設置ref在v-for列表上,直接獲取this.$refs.name.style,永遠是空的,

后來才發(fā)現,this.$refs.name是一個數組,無法通過 .style 獲取樣式,

只能遍歷這個this.$refs.name數組,在this.$refs.name[index]上設置樣式

// 6.14 更新,這個說法有點問題

但是像高度寬度,可以通過offsetHeight,等來獲取。

3.調用對象是否和v-if結合使用

ref不是響應式的,所有的動態(tài)加載的模板更新它都無法相應的變化。

解決方案:

通過

setTimeout(() => {

    }, 0)

來得到數據

vue的$refs屬性幾個注意點

1.在vue中獲取dom推薦使用$refs來獲取

可是有時會出現 this.$refs.xxx 為undefined的情況。

場景1:在created()里使用

在這個生命周期中進行數據觀測 ,屬性和方法的運算,watch 事件回調。但是頁面還沒有掛載上去,沒有e l 屬 性 , t h i s . el 屬性,this.el屬性,this.refs無法調用dom。

解決辦法:換成在mounted()里使用

場景2:父元素或當前元素使用了v-if或v-show

因為$refs不是響應式的,只在組件渲染完成后才會生效,在初始渲染的時候是不存在的。

因為是非響應式的,所有動態(tài)加載的模板更新它都無法相應的變化。

解決辦法:可以通過setTimeout(()=>{…}, 0)來實現。

2.如果使用v-for

遍歷加ref時可以使用 :,即 :ref ="variable" ,這樣得到的是不同的ref。

<div v-for="(item,index) in arr" :key="index">
? <child ?:ref="`refName${index}`"/>
</div>
//this.$refs[`refName${index}`]每一項都是一個僅包含一個元素的數組
this.$refs[`refName${index}`][0].fun();//調用第一個組件內的方法

但是也可以不使用 :,這時得到的 ref 將會是一個包含了對應數據源的這些子組件的數組。

<div v-for="(item,index) in arr" :key="index">
? <child ?ref="refName"/>
</div>
//this.$refs.refName是一個包含了對應數據源的這些子組件的數組
this.$refs.refName[0].fun();//調用第一個組件內的方法

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

相關文章

  • Vue側滑菜單組件——DrawerLayout

    Vue側滑菜單組件——DrawerLayout

    本文介紹一個簡單的DrawerLayout(類似Android的DrawerLayout)布局組件的實現,基于Vue.js側滑菜單組件的實現代碼大家通過本文一起學習吧
    2017-12-12
  • vue里面父組件修改子組件樣式的方法

    vue里面父組件修改子組件樣式的方法

    下面小編就為大家分享一篇vue里面父組件修改子組件樣式的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • Vue報錯:Injection?"xxxx"?not?found的解決辦法

    Vue報錯:Injection?"xxxx"?not?found的解決辦法

    這篇文章主要給大家介紹了關于Vue報錯:Injection?"xxxx"?not?found的解決辦法,文中通過圖文將解決的辦法介紹的非常詳細,對大家的學習具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • vue寫h5頁面的方法總結

    vue寫h5頁面的方法總結

    在本篇內容里小編給大家整理了關于vue寫h5頁面的方法以及注意點分析,有需要的朋友們跟著學習下吧。
    2019-02-02
  • 在Vue中實現添加全局store

    在Vue中實現添加全局store

    這篇文章主要介紹了在Vue中實現添加全局store方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • vue.js樹形組件之刪除雙擊增加分支實例代碼

    vue.js樹形組件之刪除雙擊增加分支實例代碼

    本文通過實例代碼給大家講解vue.js樹形組件之刪除雙擊增加分支功能,非常不錯,具有參考借鑒價值,需要的的朋友參考下
    2017-02-02
  • Vue.js中v-for指令的用法介紹

    Vue.js中v-for指令的用法介紹

    這篇文章介紹了Vue.js中v-for指令的用法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • 前端vue項目debugger調試操作詳解

    前端vue項目debugger調試操作詳解

    在vue項目調試的時候,代碼里面標注debugger,這篇文章主要給大家介紹了關于前端vue項目debugger調試操作的相關資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2024-05-05
  • vue實現滾動鼠標滾輪切換頁面

    vue實現滾動鼠標滾輪切換頁面

    這篇文章主要為大家詳細介紹了vue實現滾動鼠標滾輪切換頁面,類似于縱向走馬燈,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • 在Vant的基礎上封裝下拉日期控件的代碼示例

    在Vant的基礎上封裝下拉日期控件的代碼示例

    這篇文章主要介紹了在Vant的基礎上封裝下拉日期控件的代碼示例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12

最新評論