簡體   English   中英

如何在角度組件之間共享功能?

[英]How to share functions between components in angular?

我有 3 種類型的組件來處理表單。 他們是:

  • EntityFormEditComponent //To Edit
  • EntityFormViewComponent // To Visualize
  • EntityFormCreateComponent // To Create

它們有一個共同的父對象,即EntityFormComponent ,它們在它們之間共享基本邏輯。

當我創建一個新實體時,該實體從基本表單組件擴展而來,如下所示:

  • UserFormEditComponent extends from EntityFormEditComponent
  • UserFormViewComponent extends from EntityFormViewComponent
  • UserFormCreateComponent extends from EntityFormCreateComponent

這種組織我的項目的方式會產生一個問題:

我如何在這 3 個組件之間共享通用方法?

我認為該服務將是一種解決方案,但不值得推薦,因為它們不用於處理組件邏輯。

我認為該服務將是一種解決方案,但不值得推薦,因為它們不用於處理組件邏輯。?

Angular 將組件與服務區分開來,以增加模塊化和可重用性。 將復雜的組件邏輯委托給服務是一種很好的做法

來自Angular 風格指南
將組件中的邏輯限制為視圖所需的邏輯。 所有其他邏輯都應該委托給服務。

務必將可重用邏輯移至服務並保持組件簡單並專注於其預期目的。

為什么? 當邏輯被放置在一個服務中並通過一個函數公開時,它可以被多個組件重用。

為什么? 在單元測試中可以更容易地隔離服務中的邏輯,而可以輕松模擬組件中的調用邏輯。

為什么? 從組件中刪除依賴項並隱藏實現細節。

為什么? 使組件保持纖薄、修剪和集中。

在 Angular 中使用服務還確保您不會違反軟件開發的DRYSRP原則,對於您的場景,最佳解決方案是使用服務

獎勵: what, why and when to use services?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM