初探Angular6.x---主從組件
阿新 • • 發佈:2018-09-05
htm 安裝 註入 比較 操作 mar () color .html 在上一篇博文《Angular6.x---用戶列表與詳情展示》中,我們用ngFor=”let object of list”實現了用戶列表的展示,並通過(click)=”onSelect(obj)”語法實現了列表單擊時將單擊的對象傳到後臺的功能,最後為了防止初次加載對象為空導致的錯誤,我們又使用了ngIf語法來對要展示的詳情對象進行判空操作.但隨著後續模塊的增多,以及業務的交叉,我們發現這樣的代碼組織形式不利於復用,並且當我們修改用戶詳情的時候,可能還會導致列表出現錯誤,所以我們今天來說明一下在angular6.x中,如何將詳情與列表展示分開.
在前幾次分享中,因為代碼比較簡單,量也不多,所以我們使用命令行和vi進行編輯,從這次開始,我們使用vs code來編寫我們的代碼,此處略過vs code的安裝過程.
第一步,我們使用 ng generate component user-detail命令來生成一個詳情模塊.在vs code 中我們用Ctrl+Shift+P 打開命令窗口,選ng generate,之後選component,最後輸入我們組建的名稱user-detail ![](http://i2.51cto.com/images/blog/201809/05/917172460010eb304bfe8bdb7de24b21.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)![](http://i2.51cto.com/images/blog/201809/05/5a86c51f01ab9489749384375cf42657.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
我們現在將我們用戶詳情信息轉移到user-detail目錄下的user-detail.component.html裏(左圖),並且在user-detail.component.ts裏聲明user的屬性(右圖),這裏有點小小的改動,就是將原來的selectUser改為了userVO,以便於之後用戶詳情模塊的復用.並且因為再這個模塊裏,所要展示的用戶是從外面傳過來的,所以我們要給userVO這個屬性加上@Input()這個修飾符.
br/> ![](http://i2.51cto.com/images/blog/201809/05/917172460010eb304bfe8bdb7de24b21.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)![](http://i2.51cto.com/images/blog/201809/05/5a86c51f01ab9489749384375cf42657.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
我們現在將我們用戶詳情信息轉移到user-detail目錄下的user-detail.component.html裏(左圖),並且在user-detail.component.ts裏聲明user的屬性(右圖),這裏有點小小的改動,就是將原來的selectUser改為了userVO,以便於之後用戶詳情模塊的復用.並且因為再這個模塊裏,所要展示的用戶是從外面傳過來的,所以我們要給userVO這個屬性加上@Input()這個修飾符.
詳情模塊我們已經準備好了,我們現在在列表頁引入我們的詳情模塊,並註入userVO對象.首先是引入app-user-detail標簽,並在提示中選userVO,最終效果如右圖所示,給組件註入對象,我們使用的是[對象名]=”對象”,這樣的語法格式,使用ide的最大好處就在於提示,其次就是糾錯.
和上次一樣,我們仍然以最後的運行結果來結束我們本次的分享.
後續,我們已經考慮到了視圖的重用,那麽對於數據接口也是可以重用的,並且往往我們的數據都不是寫死的,所以我們更應該將我們的數據接口給抽離出來,下一次,我們分享用戶數據接口的抽離.
在前幾次分享中,因為代碼比較簡單,量也不多,所以我們使用命令行和vi進行編輯,從這次開始,我們使用vs code來編寫我們的代碼,此處略過vs code的安裝過程.
第一步,我們使用 ng generate component user-detail命令來生成一個詳情模塊.在vs code 中我們用Ctrl+Shift+P 打開命令窗口,選ng generate,之後選component,最後輸入我們組建的名稱user-detail ![](http://i2.51cto.com/images/blog/201809/05/917172460010eb304bfe8bdb7de24b21.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)![](http://i2.51cto.com/images/blog/201809/05/5a86c51f01ab9489749384375cf42657.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
br/> ![](http://i2.51cto.com/images/blog/201809/05/917172460010eb304bfe8bdb7de24b21.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)![](http://i2.51cto.com/images/blog/201809/05/5a86c51f01ab9489749384375cf42657.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
詳情模塊我們已經準備好了,我們現在在列表頁引入我們的詳情模塊,並註入userVO對象.首先是引入app-user-detail標簽,並在提示中選userVO,最終效果如右圖所示,給組件註入對象,我們使用的是[對象名]=”對象”,這樣的語法格式,使用ide的最大好處就在於提示,其次就是糾錯.
和上次一樣,我們仍然以最後的運行結果來結束我們本次的分享.
後續,我們已經考慮到了視圖的重用,那麽對於數據接口也是可以重用的,並且往往我們的數據都不是寫死的,所以我們更應該將我們的數據接口給抽離出來,下一次,我們分享用戶數據接口的抽離.
初探Angular6.x---主從組件