vue3中emits選項


今天在使用vue3中將一個組件渲染為了代碼片段且定義了一個自定義事件,報了一個警告

[Vue warn]: Extraneous non-emits event listeners (change) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option. 

 

 

 大致意思是如果在代碼片段中使用了自定義事件,需要在emits選項中進行聲明


兩種解決方案:

1.把代碼片段放到根元素中

2.在emits選項中聲明自定義事件

emits: ['eventName'],

結論
1.在擁有跟元素的組件中,觸發自定義事件,有沒有emits選項不影響
2.如果組件渲染為代碼片段,vue3.0需要在emits中聲明所觸發的自定義事件
3.提倡:觸發自定義事件都應在emits選項中聲明
 
注意最后一點:無論是否在根元素中觸發自定義事件,只要有自定義事件都應在emits選項中聲明,這樣可以方便后期維護以及在其他地方使用自定義事件時一眼就能看出該組件創建了哪些自定義事件

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM