vue在同一個頁面重復引用相同組件如何區分二者
同一個頁面重復引用相同組件如何區分二者
1.使用情境
我在同一個vue中引用瞭同樣的一個圖層選擇的組件,需要區分二者的選擇的radio值,如果不做區分,這二者選擇的radio值看上去將會一樣
2.解決方法
先說原理,這個重復引用的組件雖然一樣,但是二者在被創建的時候各自走瞭一遍生命周期,所以變量之間不沖突。
首先在引用組件中新增一個props,這裡命名為spareId,用來區分二者。
然後父組件傳值:
然後在子組件raido中引入這個spareId:
這樣就能區分二者選擇的不同值。
原理是這樣,也可根據實際情況靈活使用。
在同一個頁面重復引用相同組件時的幹擾處理
如標題所說,我們在使用vue.js組件時,會出現在同一個頁面會多次使用相同的組件,更特別的是,組件相同,但數據呈現上是完全不同的,有增或有減,但dom交互的處理是一樣的,在這樣的背景下,有可能引起組件數據跟需求不一致,交互無法運行等問題,這兩個問題是比較常見的,由 於組件在初始化時,是共用的作用域,因此,變量數據是一致的,另外一個問題是因此,大部份的情況下,交互編寫可能都會考慮到dom元素的選取問題,如果組件中出現多個相同的id,那交互上會出問題,也不足為奇瞭。
為瞭解決如上的問題,我們編寫組件的時候,需要考慮組件作用域的隔離,dom元素的獨立性,一般處理方法是,引用時,采用不同的別名引入多個相同的組件作為父頁面的實例,另外一個思路,是通過父元素傳遞不同的dom來實現交互隔離。至於數據不同,那就可以考慮props來處理瞭。
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- 解決Element-ui radio單選框label佈爾/數值的一個坑
- 詳細聊聊vue中組件的props屬性
- R語言數據框合並(merge)的幾種方式小結
- 分享9個Vue的巧妙冷技巧
- 詳解Vue返回值動態生成表單及提交數據的辦法