0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Angular9とFirebaseでブログを作ってみる2(Angular Materialを導入してみる)

Last updated at Posted at 2020-01-25

前回に引き続き、今回は画面を作っていこうかと思います。

使用するフレームワーク

Angular Material

Angular Materialの導入

公式の手順に従って導入していきます。

インストール

以下のコマンドを実行します
※Angular Materialの9系はまだ本リリースされていないため、@nextで9系をインストールします

ng add @angular/material@next

なぜか@angular/cdkが8系だったので、個別にアップデートします

npm install @angular/cdk@9.0.0-rc.8

画面の構築

ヘッダを追加

  • ヘッダモジュールを作成します
    • Angular MaterialのToolbarをインポートします
    • exportsでHeaderComponentを使えるようにします
src/app/shared/header/header.module.ts
import { NgModule } from '@angular/core';
import { HeaderComponent } from './header.component';
import { MatToolbarModule } from '@angular/material/toolbar';

@NgModule({
  declarations: [
    HeaderComponent,
  ],
  imports: [
    MatToolbarModule,
  ],
  exports: [
    HeaderComponent,
  ]
})
export class HeaderModule { }
  • コンポーネントはとりあえずシンプルにしておきます
src/app/shared/header/header.component.ts
import { Component } from '@angular/core';

@Component({
  selector: 'app-header',
  templateUrl: './header.component.html',
  styleUrls: ['./header.component.scss']
})
export class HeaderComponent {}
  • ヘッダのHTMLを書きます
    • とりあえずタイトルだけのシンプルなものにします
src/app/shared/header/header.component.html
<mat-toolbar>
    <span>てらしー ブログ</span>
</mat-toolbar>

※scssファイルは空で置いておきます

TOPページの作成

  • TOPページ用のモジュールを作成します
src/app/top/top.module.ts
import { NgModule } from '@angular/core';
import { TopComponent } from './top.component';

@NgModule({
  declarations: [
    TopComponent
  ],
})
export class TopModule { }
  • コンポーネントはとりあえずシンプルにしておきます
src/app/top/top.component.ts
import { Component } from '@angular/core';

@Component({
  selector: 'app-top',
  templateUrl: './top.component.html',
  styleUrls: ['./top.component.scss']
})
export class TopComponent {
}
  • HTMLもとりあえずシンプルにしておきます
src/app/top/top.component.html
ようこそ

ルーティングの設定

  • AppModuleでHeaderModuleTopModuleをインポートします
    • 方針として、画面や部品単位でモジュール化することでAppModuleを汚さないようにします。
    • ここでいろいろインポートしてしまうと、ビルド後のmain.jsのサイズが大きくなってしまい、初期起動が遅くなります
src/app/app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { HeaderModule } from './shared/header/header.module';
import { TopModule } from './top/top.module';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    AppRoutingModule,
    BrowserAnimationsModule,

    HeaderModule,
    TopModule,
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }
  • ルーティングファイルにルートパスの場合にTopComponentを表示するようにします
src/app/app-routing.module.ts
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { TopComponent } from './top/top.component';


const routes: Routes = [
  { path: '', component: TopComponent },
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }
  • app.component.htmlを修正します
    • app-headerでHeaderComponentを表示します
    • <router-outlet></router-outlet>でルーティングによるコンテンツの出し分けを行います
src/app/app.component.html
<app-header></app-header>
<router-outlet></router-outlet>

画面の確認

以下のような画面が出来上がりました

image.png

まとめ

これで画面を作る準備ができました!
次回はTOPページをそれっぽくしていきます!!

(追記)
Angular9とFirebaseでブログを作ってみる3(AngularからFirebaseを見れるようにして、TOP画面にFirebase Storage上の画像を表示してみる)

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?