如何快速引入Angular Material以实现材料设计

概述

使用Angular CLI,在Angular Web应用程序中快速引入Material Design的备忘录,使用名为”Angular Material”的设计包专门为Angular开发设计。

设定/条件

这是截至2019年1月1日的信息。此外,以下是基于以下环境的假设。

    • Angular CLI: 7.0.6

 

    • Node.js: 10.15.0

 

    npm: 6.4.1

引入

可以使用以下的Angular CLI命令安装软件包。
暂时,在应用的根目录下执行即可。

ng add @angular/material

在安装过程中,由于可以进行交互式的引导,所以大家可以根据自己的选择进行安装。顺便提一下,我自己的回答如下所示。

    • カラーテーマは?: Indigo/Pink 選択

 

    • HammerJS 入れる?: Yes (入れる)

 

    ブラウザアニメーション入れる?: Yes (入れる)

这样一来,angular.json 文件中的导入描述等等应该会被自动处理。

组件修复

首先,我们要把主页设计得更像是”非常符合材质设计”的感觉。

修正Appシェル(可省略)

如果您已经在Universal中使用AppShell,按照以下步骤修改每个文件。如果您没有使用(或者对此一无所知的人),请跳过此步骤。

因为在First Contentful Paint状态下,将屏幕设置为随便旋转的加载界面。

<div class="app-shell">
  <mat-spinner></mat-spinner>
</div>
.app-shell {
  display: flex;
  justify-content: center;
  align-items: center;
}
import { NgModule } from '@angular/core';
import { ServerModule } from '@angular/platform-server';
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; // 追加

import { AppModule } from './app.module';
import { AppComponent } from './app.component';
import { Routes, RouterModule } from '@angular/router';
import { AppShellComponent } from './app-shell/app-shell.component';

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

@NgModule({
  imports: [
    AppModule,
    ServerModule,
    RouterModule.forRoot(routes),
    MatProgressSpinnerModule // 追加
  ],
  bootstrap: [AppComponent],
  declarations: [AppShellComponent],
})
export class AppServerModule {}

修改顶层组件

修正以下内容:
对于顶层组件的每个文件进行修改。
本次仅创建了标题栏,并注入了Material Design风格。

在中文中,主要内容的部分由来表示,因此在这里不需要设计。

<header>
  <mat-toolbar color="primary">
    <span>Demo App</span>
    <span class="spacer"></span>
    <mat-icon>home</mat-icon>
  </mat-toolbar>
</header>
<main>
  <h1>Welcome to {{ title }}!</h1>
  <router-outlet></router-outlet>
</main>
<footer></footer>
.spacer { flex: 1 1 auto }

.icon {
  display: flex;
  padding: 4px;
}
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; // Angular Material 導入時に回答次第で自動追加
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { ServiceWorkerModule } from '@angular/service-worker'; // PWA 対応(無くても良い)
import { MatToolbarModule } from '@angular/material/toolbar'; // 追加
import { MatIconModule } from '@angular/material/icon'; // 追加

import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { environment } from '../environments/environment'; // PWA 対応(無くても良い)

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule.withServerTransition({ appId: 'serverApp' }),
    BrowserAnimationsModule,
    RouterModule,
    ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production }), // PWA 対応(無くても良い)
    MatToolbarModule, // 追加
    MatIconModule, // 追加
    AppRoutingModule,
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

到此为止,Material Design 的简单介绍就完成了。

确认

打开应用程序,尝试在网络浏览器中访问,结果如下所示。

スクリーンショット 2019-01-23 1.22.35.png

只需要根据官方文档,在每个组件中导入所需的模块,然后继续创建主要内容。

以上,材料设计的引入已经完成。

广告
将在 10 秒后关闭
bannerAds