讓我們開始 Angular 4
Angular 4 現已推出! 實際上 Angular 使用自 Angular 2 之後的 semver,這需要在引入破壞更改時增加主要數字。Angular 團隊推遲了導致重大變化的功能,這些功能將隨 Angular 4 釋出 .Angular 3 被跳過以便能夠對齊核心模組的版本號,因為路由器已經有版本 3。
根據 Angular 團隊的說法,Angular 4 應用程式將比以前更少佔用空間並且更快。他們將動畫包與 @ angular / core 包分開。如果有人沒有使用動畫包,那麼額外的程式碼空間將不會在生產中結束。模板繫結語法現在支援 if / else 樣式語法。Angular 4 現在與最新版本的 Typescript 2.1 和 2.2 相容。因此,Angular 4 將更加令人興奮。
現在我將向你展示如何在專案中設定 Angular 4。
讓我們用三種不同的方式開始 Angular 設定:
你可以使用 Angular-CLI(命令列介面),它將為你安裝所有依賴項。
-
你可以從 Angular 2 遷移到 Angular 4。
-
你可以使用 github 並克隆 Angular4 樣板。 (這是最簡單的一個 .😉)
-
使用 Angular-CLI 進行角度設定(命令列介面)。
在開始使用 Angular-CLI 之前,請確保你的計算機中已安裝節點。在這裡,我使用的是節點 v7.8.0。現在,開啟終端併為 Angular-CLI 鍵入以下命令。
npm install -g @angular/cli
要麼
yarn global add @angular/cli
取決於你使用的包管理器。
我們使用 Angular-CLI 安裝 Angular 4。
ng new Angular4-boilerplate
cd Angular4-boilerplate 我們都為 Angular 4 設定了它。它非常簡單直接的方法
通過從 Angular 2 遷移到 Angular 4 進行角度設定
現在讓我們看看第二種方法。我將向你展示如何將 Angular 2 遷移到 Angular 4.為此你需要克隆任何 Angular 2 專案並使用 package.json 中的 Angular 4 Dependency 更新 Angular 2 依賴項,如下所示:
"dependencies": {
"@angular/animations": "^4.1.0",
"@angular/common": "4.0.2",
"@angular/compiler": "4.0.2",
"@angular/core": "^4.0.1",
"@angular/forms": "4.0.2",
"@angular/http": "4.0.2",
"@angular/material": "^2.0.0-beta.3",
"@angular/platform-browser": "4.0.2",
"@angular/platform-browser-dynamic": "4.0.2",
"@angular/router": "4.0.2",
"typescript": "2.2.2"
}
這些是 Angular 4 的主要依賴項。現在你可以 npm install 然後 npm 開始執行應用程式。作為參考我的 package.json。
來自 github 專案的角度設定
在開始此步驟之前,請確保已在計算機中安裝了 git。開啟終端並使用以下命令克隆 angular4-boilerplate:
git@github.com:CypherTree/angular4-boilerplate.git
然後安裝所有依賴項並執行它。
npm install
npm start
你完成了 Angular 4 的設定。所有步驟都非常簡單,因此你可以選擇其中任何一個。
angular4-boilerplate 的目錄結構
Angular4-boilerplate
-karma
-node_modules
-src
-mocks
-models
-loginform.ts
-index.ts
-modules
-app
-app.component.ts
-app.component.html
-login
-login.component.ts
-login.component.html
-login.component.css
-widget
-widget.component.ts
-widget.component.html
-widget.component.css
........
-services
-login.service.ts
-rest.service.ts
-app.routing.module.ts
-app.module.ts
-bootstrap.ts
-index.html
-vendor.ts
-typings
-webpack
-package.json
-tsconfig.json
-tslint.json
-typings.json
對目錄結構的基本瞭解:
所有程式碼都駐留在 src 資料夾中。
mocks 資料夾用於測試目的中使用的模擬資料。
model 資料夾包含元件中使用的類和介面。
modules 資料夾包含元件列表,如 app,login,widget 等。所有元件都包含 typescript,html 和 css 檔案。index.ts 用於匯出所有類。
services 資料夾包含應用程式中使用的服務列表。我已經分開了休息服務和不同的元件服務。在休息服務中包含不同的 http 方法。登入服務用作登入元件和休息服務之間的中介。
app.routing.ts 檔案描述了應用程式的所有可能路由。
app.module.ts 將 app 模組描述為根元件。
bootstrap.ts 將執行整個應用程式。
webpack 資料夾包含 webpack 配置檔案。
package.json 檔案適用於所有依賴項列表。
業力包含單元測試的業力配置。
node_modules 包含包繫結包的列表。
讓我們從 Login 元件開始。在 login.component.html 中
<form>Dreamfactory - Addressbook 2.0
<label>Email</label> <input id="email" form="" name="email" type="email" />
<label>Password</label> <input id="password" form="" name="password"
type="password" />
<button form="">Login</button>
</form>
在 login.component.ts 中
import { Component } from '@angular/core';
import { Router } from '@angular/router';
import { Form, FormGroup } from '@angular/forms';
import { LoginForm } from '../../models';
import { LoginService } from '../../services/login.service';
@Component({
selector: 'login',
template: require('./login.component.html'),
styles: [require('./login.component.css')]
})
export class LoginComponent {
constructor(private loginService: LoginService, private router: Router, form: LoginForm) { }
getLogin(form: LoginForm): void {
let username = form.email;
let password = form.password;
this.loginService.getAuthenticate(form).subscribe(() => {
this.router.navigate(['/calender']);
});
}
}
我們需要將此元件匯出到 index.ts 中。
export * from './login/login.component';
我們需要在 app.routes.ts 中設定登入路由
const appRoutes: Routes = [
{
path: 'login',
component: LoginComponent
},
........
{
path: '',
pathMatch: 'full',
redirectTo: '/login'
}
];
在根元件 app.module.ts 檔案中,你只需要匯入該元件。
.....
import { LoginComponent } from './modules';
......
@NgModule({
bootstrap: [AppComponent],
declarations: [
LoginComponent
.....
.....
]
.....
})
export class AppModule { }
然後在那個 npm install 和 npm start 之後。幹得好! 你可以在本地主機中檢視登入螢幕。如有任何困難,你可以參考 angular4-boilerplate。
基本上我可以使用 Angular 4 應用程式感覺更少的構建包和更快的響應,雖然我在編碼中發現與 Angular 2 完全相似。