AngularJS 1.x是Angular的上一代框架阵漏,
Angular團隊做了規(guī)范,老框架為AngularJS 1.x翻具,新框架統(tǒng)稱為Angular履怯,
Angular使用了TypeScript進行開發(fā),與AngularJS 1.x不兼容呛占,而且采用了語義化的版本號,以后是向下兼容的懦趋。
1. 安裝Angular
(1)全局安裝Angular CLI
npm install -g @angular/cli
(2)創(chuàng)建樣板工程
ng new my-app
(3)打開服務(wù)
cd my-app
ng serve --open
ng serve
會打開服務(wù)晾虑,監(jiān)控文件的變更,并自動重新構(gòu)建仅叫,
--open
選項(或簡寫為-o
)帜篇,會自動打開瀏覽器,并訪問http://localhost:4200/
诫咱。
注:
執(zhí)行ng serve --open
的時候可能會報錯笙隙,
getaddrinfo ENOTFOUND localhost
Error: getaddrinfo ENOTFOUND localhost
at errnoException (dns.js:50:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26)
可以通過iHosts綁定域名localhost
到本機IP來解決,
127.0.0.1 localhost
2. 應(yīng)用目錄
2.1 構(gòu)建產(chǎn)品代碼
Angular應(yīng)用位于src
文件夾中坎缭,我們可以使用如下命令進行構(gòu)建竟痰,
ng build --env=prod
它將生成產(chǎn)品代碼到./dist
目錄中,訪問http://localhost:4200/dist/index.html
可以進行查看掏呼。
2.2 目錄結(jié)構(gòu)
src
├── app
│ ├── app.component.css
│ ├── app.component.html
│ ├── app.component.spec.ts
│ ├── app.component.ts
│ └── app.module.ts
├── assets
├── environments
│ ├── environment.prod.ts
│ └── environment.ts
├── favicon.ico
├── index.html
├── main.ts
├── polyfills.ts
├── styles.css
├── test.ts
├── tsconfig.app.json
├── tsconfig.spec.json
└── typings.d.ts
2.3 文件介紹
(1)index.html
index.html
是首頁坏快,CLI工具會自動添加js和css文件進去,
所以并沒有包含<script>
和<link>
標(biāo)簽憎夷,而是直接包含了一個html5自定義標(biāo)簽<app-root></app-root>
莽鸿。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>MyApp</title>
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
<app-root></app-root>
</body>
</html>
(2)main.ts
main.ts
是應(yīng)用的入口,
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module';
import { environment } from './environments/environment';
if (environment.production) {
enableProdMode();
}
platformBrowserDynamic().bootstrapModule(AppModule);
它根據(jù)environments/environment.ts
中的配置拾给,來切換開發(fā)環(huán)境和生產(chǎn)環(huán)境祥得,
AppModule
是當(dāng)前的應(yīng)用模塊,由app/app.module.ts
中導(dǎo)出蒋得。
(3)app/app.module.ts
app/app.module.ts
文件中使用AppComponent
注冊了AppModule
模塊级及,
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
其中,AppComponent
由app/app.component.ts
導(dǎo)出额衙,
@NgModule
是AppModule
類的裝飾器创千。
(4)app/app.component.ts
app/app.component.ts
創(chuàng)建了<app-root>
組件缰雇,指定了它的模板和樣式,
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'app';
}
其中追驴,@Component
是AppComponent
類的裝飾器械哟。
參考
Angular - QuickStart
build modulesError: getaddrinfo ENOTFOUND localhost