Angular專案目錄結構詳解
在上一篇部落格中我們已經通過Angular CLI
命令列工具建立出來一個全新的Angular
專案,要想寫專案,首先我們要先搞清楚專案的目錄結構是怎樣的,每個檔案又有什麼意義,檔案中的程式碼又起到什麼作用。
首先看一下整體的目錄結構:
可以看到,命令列工具自動生成了很多檔案和目錄,我們來說說這些目錄是幹什麼的
首層目錄:
node_modules
第三方依賴包存放目錄
e2e
端到端的測試目錄 用來做自動測試的
src
應用原始碼目錄
.angular-cli.json
Angular命令列工具的配置檔案。後期可能會去修改它,引一些其他的第三方的包 比如jquery
等
karma.conf.js
karma
是單元測試的執行器,karma.conf.js
是karma
的配置檔案
package.json
這是一個標準的npm
工具的配置檔案,這個檔案裡面列出了該應用程式所使用的第三方依賴包。實際上我們在新建專案的時候,等了半天就是在下載第三方依賴包。下載完成後會放在node_modules
這個目錄中,後期我們可能會修改這個檔案。
protractor.conf.js
也是一個做自動化測試的配置檔案
README.md
說明檔案
tslint.json
是tslint
的配置檔案,用來定義TypeScript
程式碼質量檢查的規則,不用管它
src
目錄:
app
目錄 包含應用的元件和模組,我們要寫的程式碼都在這個目錄
assets
目錄 資源目錄,儲存靜態資源的 比如圖片
environments
目錄 環境配置。Angular
是支援多環境開發的,我們可以在不同的環境下(開發環境,測試環境,生產環境)共用一套程式碼,主要用來配置環境的
index.html
整個應用的根html
,程式啟動就是訪問這個頁面
main.ts
整個專案的入口點,Angular
通過這個檔案來啟動專案
polyfills.ts
主要是用來匯入一些必要庫,為了讓Angular
能正常執行在老版本下
styles.css
主要是放一些全域性的樣式
tsconfig.app.json
TypeScript
編譯器的配置,新增第三方依賴的時候會修改這個檔案
tsconfig.spec.json
不用管
test.ts
也是自動化測試用的
typings.d.ts
不用管
app
目錄(重點)
app
目錄是我們要編寫的程式碼目錄。我們寫的程式碼都是放在這個目錄。
一個Angular程式至少需要一個模組和一個元件。在我們新建專案的時候命令列已經預設生成出來了。
app.component.ts
:這個檔案表示元件,元件是Angular應用的基本構建模組,可以理解為一段帶有業務邏輯和資料的Html
我們來看看app.component.ts
中的程式碼,並解釋下程式碼的意義
下圖是原始碼,我只是把title
的值給改了下
來看看每行程式碼的意義,有點亂,可以複製到編輯器上去看。
/*這裡是從Angular核心模組裡面引入了component裝飾器*/
import {Component} from '@angular/core';
/*用裝飾器定義了一個元件以及元件的後設資料 所有的元件都必須使用這個裝飾器來註解*/
@Component({
/*元件後設資料 Angular會通過這裡面的屬性來渲染元件並執行邏輯
* selector就是css選擇器,表示這個元件可以通過app-root來呼叫,index.html中有個<app-root>Loading...</app-root>標籤,這個標籤用來展示該元件的內容
*templateUrl 元件的模板,定義了元件的佈局和內容
*styleUrls 該模板引用那個css樣式
* */
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
/*AppComponent本來就是一個普通的typescript類,但是上面的元件後設資料裝飾器告訴Angular,AppComponent是一個元件,需要把一些後設資料附加到這個類上,Angular就會把AppComponent當元件來處理*/
export class AppComponent {
/*這個類實際上就是該元件的控制器,我們的業務邏輯就是在這個類中編寫*/
title = '學習Angular';
}
元件相關的概念:
1.元件後設資料裝飾器(@Component
)
簡稱元件裝飾器,用來告知Angular框架如何處理一個TypeScript
類.
Component
裝飾器包含多個屬性,這些屬性的值叫做後設資料,Angular會根據這些後設資料的值來渲染元件並執行元件的邏輯
2.模板(Template
)
我們可以通過元件自帶的模板來定義元件的外觀,模板以html的形式存在,告訴Angular如何來渲染元件,一般來說,模板看起來很像html
,但是我們可以在模板中使用Angular
的資料繫結語法,來呈現控制器中的資料。
3.控制器(controller
)
控制器就是一個普通的typescript
類,他會被@Component
來裝飾,控制器會包含元件所有的屬性和方法,絕大多數的業務邏輯都是寫在控制器裡的。控制器通過資料繫結與模板來通訊,模板展現控制器的資料,控制器處理模板上發生的事件。
裝飾器,模板和控制器是元件的必備要素。還有一些可選的元素,比如:
輸入屬性(@inputs
):是用來接收外部傳入的資料的,Angular的程式結構就是一個元件樹,輸入屬性允許在元件樹種傳遞資料
提供器(providers
):這個是用來做依賴注入的
生命週期鉤子(LifeCycle Hooks
):一個元件從建立到銷燬的過程中會有多個鉤子會被觸發,類似於Android中的Activity的生命週期
樣式表:元件可以關聯一些樣式表
動畫(Animations
): Angular提供了一個動畫包來幫助我們方便的建立一些跟元件相關的動畫效果,比如淡入淡出等
輸出屬性(@Outputs
):用來定義一些其他元件可能需要的事件或者用來在元件之間共享資料
簡單來說,元件的中關係就如下圖所示
下面我們來看看模組檔案
app.module.ts
:這個檔案表示模組
與AppComponent
類似,模組也需要裝飾器來裝飾。
好了,新專案的目錄結構就是這樣!
相關文章
- ionic3 angular專案目錄結構解析Angular
- vue專案目錄結構Vue
- Angular4學習(初始檔案目錄結構解讀)Angular
- C++ 專案目錄結構C++
- Android Studio專案目錄結構簡介Android
- DedeCMS模板目錄的檔案目錄結構
- 分析Angular目錄結構Angular
- 檔案的邏輯結構、檔案目錄
- linux檔案目錄結構彙總!Linux學習Linux
- 鴻蒙前端開發1-檔案目錄結構鴻蒙前端
- Linux學習之linux檔案目錄結構彙總Linux
- 自動化檔案目錄結構生成工具——filemap.jsJS
- Mac使用tree命令生成檔案目錄結構,超簡單!Mac
- Go基礎學習記錄 – 編寫Web應用程式 – 重新調整專案目錄結構(一)GoWeb
- Geth命令用法-引數詳解 and 以太坊原始碼檔案目錄原始碼
- vue-cli 目錄結構詳細講解Vue
- Nginx目錄結構與配置檔案詳解Nginx
- Angular 4環境準備與Angular cli建立專案詳解Angular
- Angular Directive 詳解Angular
- Angular service 詳解Angular
- RNN 結構詳解RNN
- 檔案目錄(MOOC)
- 檔案目錄配置
- Tomcat結構原理詳解Tomcat
- Redhat:檔案目錄管理Redhat
- Android Studio目錄結構及工程專案結構解析Android
- Linux 目錄結構及詳細操作Linux
- Helm目錄結構講解
- JavaScript --- Map集合結構詳解JavaScript
- MachO 檔案結構詳解Mac
- JavaScript — Map集合結構詳解JavaScript
- 資料結構:棧詳解資料結構
- JavaWeb專案目錄+SpringMVC靜態資源+Tomcat測試htmlJavaWebSpringMVCTomcatHTML
- Flutter 新聞客戶端 - 01 需求分析、使用藍湖標註工具、專案目錄構建Flutter客戶端
- 專案目標管理技巧
- 蘋果Search Ads要點及廣告專案結構詳解蘋果
- 3.10 solidity資料結構詳解Solid資料結構
- 線性表的結構詳解