欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

vue動態(tài)設(shè)置ref

Vue動態(tài)設(shè)置ref是一種在組件內(nèi)動態(tài)設(shè)置ref引用的方法。通過設(shè)置ref,我們可以輕松訪問Vue組件中的DOM元素、組件實例或子組件。然而,我們通常會在組件中通過靜態(tài)方式(@ref="xxx")來分配一個name給ref,以便在組件中獲取到需要引用的DOM節(jié)點。但是,有時候我們需要動態(tài)地創(chuàng)建這個name,比如在循環(huán)組件中。這時候Vue提供了一種動態(tài)設(shè)置ref的方法。

export default { 
name: 'HelloWorld', 
data() { 
return { 
itemCount: 3, 
itemList: [] 
} 
}, 
methods: { 
add() { 
let refName = 'item' + this.itemCount 
// 創(chuàng)建一個新的字段,并且賦值給ref 
this.$refs[refName] = document.createElement('div') 
// 固定延遲300毫秒。這里是為了等待DOM更新 
setTimeout(() =>{ 
this.itemList.push(refName) 
}, 300) 
this.itemCount++ 
} 
} 
}

這是一個組件的樣例,其中包含了一個列表展示。我們可以動態(tài)添加一些項目到列表當(dāng)中。每個項目都會自動分配一個新的ref name,在列表up的時候,這些name將會被添加到`refs`對象中,通過`refs`對象可輕松找到對應(yīng)的DOM實例

<template> 
<div> 
<div>count:{{itemCount}}</div> 
<button @click="add">Add</button> 
<br> 
<div v-for="(item, index) in itemList" :key="index"> 
<div :ref="item">{{index}}</div> 
</div> 
</div> 
</template>

上面代碼是我們的模板,列表以`v-for`方式展示。通過數(shù)組`itemList`來維護(hù)DOM元素的動態(tài)添加,在每一個元素都被添加完成后,`itemList`也會一個個顯示出來

以上這個組件在計數(shù)`itemCount`中有一個動態(tài)數(shù)組初始長度。`add`方法動態(tài)創(chuàng)建div,創(chuàng)建一個新的ref name,并且賦值給ref,隨后固定延遲300毫秒。這里是為了等待DOM更新。在延遲過后,`itemList`數(shù)組會新增插入一項`refName`,這時候的`refName`是和對應(yīng)的DOM節(jié)點一一對應(yīng)的。剩下的特別之處就是在模板中指定了這個ref的名字。這樣我們就能在其他方法中訪問這個DOM節(jié)點。所以說這樣實現(xiàn)的效果是可以動態(tài)的為每一個元素添加單獨的ref name,從而能夠在組件內(nèi)再通過ref name名稱獲取到相應(yīng)的DOM節(jié)點。