vue在同一個(gè)頁面重復(fù)引用相同組件如何區(qū)分二者
同一個(gè)頁面重復(fù)引用相同組件如何區(qū)分二者
1.使用情境
我在同一個(gè)vue中引用了同樣的一個(gè)圖層選擇的組件,需要區(qū)分二者的選擇的radio值,如果不做區(qū)分,這二者選擇的radio值看上去將會一樣
2.解決方法
先說原理,這個(gè)重復(fù)引用的組件雖然一樣,但是二者在被創(chuàng)建的時(shí)候各自走了一遍生命周期,所以變量之間不沖突。
首先在引用組件中新增一個(gè)props,這里命名為spareId,用來區(qū)分二者。
然后父組件傳值:
然后在子組件raido中引入這個(gè)spareId:
這樣就能區(qū)分二者選擇的不同值。
原理是這樣,也可根據(jù)實(shí)際情況靈活使用。
在同一個(gè)頁面重復(fù)引用相同組件時(shí)的干擾處理
如標(biāo)題所說,我們在使用vue.js組件時(shí),會出現(xiàn)在同一個(gè)頁面會多次使用相同的組件,更特別的是,組件相同,但數(shù)據(jù)呈現(xiàn)上是完全不同的,有增或有減,但dom交互的處理是一樣的,在這樣的背景下,有可能引起組件數(shù)據(jù)跟需求不一致,交互無法運(yùn)行等問題,這兩個(gè)問題是比較常見的,由 于組件在初始化時(shí),是共用的作用域,因此,變量數(shù)據(jù)是一致的,另外一個(gè)問題是因此,大部份的情況下,交互編寫可能都會考慮到dom元素的選取問題,如果組件中出現(xiàn)多個(gè)相同的id,那交互上會出問題,也不足為奇了。
為了解決如上的問題,我們編寫組件的時(shí)候,需要考慮組件作用域的隔離,dom元素的獨(dú)立性,一般處理方法是,引用時(shí),采用不同的別名引入多個(gè)相同的組件作為父頁面的實(shí)例,另外一個(gè)思路,是通過父元素傳遞不同的dom來實(shí)現(xiàn)交互隔離。至于數(shù)據(jù)不同,那就可以考慮props來處理了。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue實(shí)現(xiàn)push數(shù)組并刪除的例子
今天小編就為大家分享一篇Vue實(shí)現(xiàn)push數(shù)組并刪除的例子,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11基于vue實(shí)現(xiàn)一個(gè)禪道主頁拖拽效果
最近在做一個(gè)基于vue的后臺管理項(xiàng)目。接下來通過本文給大家分析一款基于vue做一個(gè)禪道主頁拖拽效果,需要的朋友可以參考下2019-05-05vue中的事件加判斷條件如何進(jìn)行選擇性點(diǎn)擊
這篇文章主要介紹了vue中的事件加判斷條件如何進(jìn)行選擇性點(diǎn)擊方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03