git clone https://github.com/jerryhsieh/ngrx-demo.git
跟著下列步驟一起做
第一步:如果您還沒安裝過 angular-cli,請先安裝
npm install -g @angular/cli
當然前提是您已經安裝了 Node.js, 如果還沒安裝過的話,請依照這個官方文件安裝
第二步:接著用 angular-cli 產生新的專案,這個可以參考這篇官方文章
ng new ngrx-demo --routing
等待系統下載完所以必須的檔案,您就可以用
cd ngrx-demo
npm start
來產生專案,在瀏覽器打入 http://localhost:4200 可以即時看到程式修改的結果。
我們預計會用到 @angular/materail 及 @angular/flex-layout,詳細安裝解說請看官方文件
第一步:安裝套件
npm install --save @angular/material @angular/cdk @angular/flex-layout
第二步:Animations
加入 BrowerAnimationsModule 到 src/app/app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
@NgModule({
    declarations: [
        AppComponent
    ],
    imports: [
        BrowserModule,
        AppRoutingModule,
        BrowserAnimationsModule
    ],
    providers: [],
    bootstrap: [AppComponent]
})
第三步:加入 Share Module,將所有用到的 Material 集中放在一個 module, 這樣就不用到處 import
ng generate module share
修改 src/app/share/share.module.ts
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { MatButtonModule } from '@angular/material';
@NgModule({
    imports: [
        CommonModule,
        MatButtonModule
    ],
    exports: [
        MatButtonModule
    ],
    declarations: []
})
記得在 app.module.ts 做 import,以後的 Module 也會共用到這個模組
import { ShareModule } from './share/share.module';
// ...
@ngModule({
    // ...
    imports: [
        //...
        ShareModule
    ]
})
第四步:加入佈景主題
將以下這一行加入 src/styles.css
@import "~@angular/material/prebuilt-themes/indigo-pink.css";
第五步:加入手勢
npm install --save hammerjs
修改 src/main.ts, 加入這一行
import 'hammerjs';
第六步: 使用 Materail Icon, 將這一行加入 src/index.html
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
根據前面的需求及規劃,我們預計產生兩個主要模組(modules), user 跟 member
ng generate module user --routing
ng generate module member --routing
我們之後再來處理這兩個模組。
我們先建立最上層用到的元件, 在 src/app 底下
ng generate component home
ng generate component navbar
第一步:將 app.componenet.ts import navbar 如下
import { Component } from '@angular/core';
import { NavbarComponent } from './navbar/navbar.component';
@Component({
    selector: 'app-root',
    templateUrl: './app.component.html',
    styleUrls: ['./app.component.css']
})
export class AppComponent {
    title = 'app';
}
第二步:將 app.components.html 修改如下
<app-navbar></app-navbar>
<router-outlet></router-outlet>
第三步:修改 src/app-routing.module.ts 如下
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { HomeComponent } from './home/home.component';
const routes: Routes = [{
    path: '', children: [
        { path: 'home', component: HomeComponent },
        { path: '', redirectTo: '/home', pathMatch: 'full' }
    ]
}];
@NgModule({
    imports: [RouterModule.forRoot(routes)],
    exports: [RouterModule]
})
export class AppRoutingModule { }
好了,我們把最基本的架構先留下來,接著就要一個一個填空,這時首頁會產生
我們接下來就要先做這個首頁