vue在同一個頁面重復引用相同組件如何區(qū)分二者
同一個頁面重復引用相同組件如何區(qū)分二者
1.使用情境
我在同一個vue中引用了同樣的一個圖層選擇的組件,需要區(qū)分二者的選擇的radio值,如果不做區(qū)分,這二者選擇的radio值看上去將會一樣
2.解決方法
先說原理,這個重復引用的組件雖然一樣,但是二者在被創(chuàng)建的時候各自走了一遍生命周期,所以變量之間不沖突。
首先在引用組件中新增一個props,這里命名為spareId,用來區(qū)分二者。
然后父組件傳值:
然后在子組件raido中引入這個spareId:
這樣就能區(qū)分二者選擇的不同值。
原理是這樣,也可根據(jù)實際情況靈活使用。
在同一個頁面重復引用相同組件時的干擾處理
如標題所說,我們在使用vue.js組件時,會出現(xiàn)在同一個頁面會多次使用相同的組件,更特別的是,組件相同,但數(shù)據(jù)呈現(xiàn)上是完全不同的,有增或有減,但dom交互的處理是一樣的,在這樣的背景下,有可能引起組件數(shù)據(jù)跟需求不一致,交互無法運行等問題,這兩個問題是比較常見的,由 于組件在初始化時,是共用的作用域,因此,變量數(shù)據(jù)是一致的,另外一個問題是因此,大部份的情況下,交互編寫可能都會考慮到dom元素的選取問題,如果組件中出現(xiàn)多個相同的id,那交互上會出問題,也不足為奇了。
為了解決如上的問題,我們編寫組件的時候,需要考慮組件作用域的隔離,dom元素的獨立性,一般處理方法是,引用時,采用不同的別名引入多個相同的組件作為父頁面的實例,另外一個思路,是通過父元素傳遞不同的dom來實現(xiàn)交互隔離。至于數(shù)據(jù)不同,那就可以考慮props來處理了。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。