iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 15
1
Modern Web

從零開始的點餐系統,Google好棒棒系列 第 15

[Day15] Angular 主要概念 - 模組介紹篇

大概介紹完了 Angular 的建置與開發後,我們來看看 Angular 的世界包含了哪些角色,在今天先向大家介紹模組。

Modules

在日漸複雜的前端領域,模組化的設計概念是非常重要的,簡單的說,被封裝在模組裡面的程式不會污染其他模組或全域,是透過公開的介面給外界引用。Angular 的程式也是模組化概念的,一個 angular module 可能包含了某種功能(像是商家管理)或整個程式會重複使用的邏輯。以下介紹本專案開發時會使用的三類模組:

功能模組(feature modules)

如同其名,是依功能自成一個模組,這類模組可能會有自己的 Routing Module (管理路由的模組),可以匯入 App Module(根模組)。我們的專案中會有商家、商品、活動與 Layout 模組,其中前三的都會有各自的商業邏輯與畫面邏輯,而 Layout 模組比較不一樣,他的目的僅僅是提供畫面的 component 給 App Module 使用,所以不需要路由的配置。

核心模組 (core module)

包含一些單例的(singleton) services,通常是整個專案通用的 services ( LoggingService, ErrorService, DataService),或是 Auth Interceptors,在我們的專案裡面有一個用來深拷貝物件的 service。注意:core module 不可以匯入至除了跟模組以外的地方,避免在 @NgModule() 配置的 services 變得不是單例的。
補充:Angular 的官網文件有特別提供防止多次引用 module 的寫法,你說有哪家可以把文件寫得那麼仔細的啊,一定要推一下!

共享模組 (shared module)

包含一些可能是會重複使用的 components, pipes, directives (calendarComponent, AutoCompleteComponent),或是一些第三方的套件。本次專案要貫徹 Google 好棒棒的原則,用了很多Angular material 套件來實作,這些套件將匯到 shared module 裡,之後需要用到的其他 modules 再匯入 shared module 即可。

結語

今天講了一下模組的概念,以及我們的專案大概會怎麼樣切分模組,各個模組都會有對應的職責,明天在真的實作一遍,來感受一下今天所說明的部分。


上一篇
[Day14] 後台前端開發環境建置 - Angular
下一篇
[Day16] Angular 主要概念 - 模組實作篇
系列文
從零開始的點餐系統,Google好棒棒30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言