組件特征:單一職責,可重用性
組件設計步驟:
-
識別組件關注點:混合型組件可能有多個關注點;
組件關注點一般有:
- 狀態管理 (State management)
- 用戶頁面展示 (UI presentation)
- 業務邏輯 (Business logic)
- 數據獲取 (Data fetching)
- 用戶行為交互 (User interaction)
當混合型組件規模越來越大時,需要考慮將組件分為表現型和容器型;
將組件分為表現型組件(Presentational)和容器型組件(Container):
-
盡量減少容器型組件的使用:
- 可重用性
- 可維護性
- 優化性:多使用表現型組件可極大提升性能優化
兩種組件類型:
- 表現型組件:只接受父組件的輸入數據Input,類似純函數:輸出只與輸入相關,數據有可預測性,不在內部使用業務邏輯。
- 一般不要更改Input:若Input屬性是引用類型,在父組件改變不會觸發表現層組件同步更新;
- 不要用side-effect:(what is side effect?)如果需要交互數據,使用@output觸發輸出事件
- 不要使用業務service注入:剝離業務邏輯
- 容器型組件:在組件內部有業務邏輯,可使用內部生成的數據,數據不可預測。