Angular Material 7 – 环境设置

Angular Material 7 – 环境设置

Angular Material是一个UI组件库,它为我们提供了丰富、美观、易用的界面组件和动画效果,可以在Angular项目中快速搭建漂亮的用户界面。本文将介绍如何在Angular项目中引入Angular Material,并搭建相应的环境。

安装Angular Material

引入Angular Material需要先安装相应的包。我们可以使用npm来安装,方法如下:

# 使用npm安装Angular Material
npm install --save @angular/material @angular/cdk @angular/animations

安装完成后,我们需要在项目模块中导入对应的模块:

// app.module.ts

import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpClientModule } from '@angular/common/http';
import { BrowserModule } from '@angular/platform-browser';
import {MatButtonModule} from '@angular/material/button';
import {MatCardModule} from '@angular/material/card';
import {MatIconModule} from '@angular/material/icon';

import { AppComponent } from './app.component';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    BrowserAnimationsModule,
    FormsModule,
    HttpClientModule,
    MatButtonModule,
    MatCardModule,
    MatIconModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

在上述代码中,我们引入了常用的几个组件模块,如mat-button、mat-card、mat-icon等等。

搭建Angular Material主题

默认情况下,Angular Material的组件是使用它自己的主题来渲染的。我们可以根据自己的需求来搭建自己的主题。搭建主题需要使用Angular Material的样式处理工具SCSS。

在项目根目录下建立一个scss文件夹,文件夹中的styles.scss文件是用来设置主题的。我们可以修改颜色、字体等相关样式属性来定制自己的主题。示例代码如下:

// src/scss/styles.scss

// 引入默认主题
@import '~@angular/material/theming';

// 定义自己的主题
primary: mat-palette(mat-indigo);
accent: mat-palette(mat-pink, A200, A100, A400);
warn: mat-palette(mat-red);
dark-theme: mat-dark-theme(primary, accent,warn);

// 应用主题到根元素上
@include mat-core();
@include angular-material-theme($dark-theme);

// 重置自己定义的样式
body {
  margin: 0;
  font-family: Roboto, sans-serif;
}

通过以上代码,我们定义了一个名为$dark-theme的主题,并将它应用到根元素上。

为了让Angular应用加载这个scss文件,我们需要在angular.json文件中添加以下配置:

// angular.json

{
  "projects": {
    "project-name": {
      "architect": {
        "build": {
          "options": {
            "styles": [
              "src/scss/styles.scss"
            ]
          }
        }
      }
    }
  }
}

每次修改主题会使得构建时间增长,我们可以使用以下命令把样式抽离成单独的文件,以减小构建时间:

ng build --extract-css

顺利构建出打包文件后就可以看到运用自己的主题了。

部署Material字体图标

前面在模块文件中已经导入了MatIconModule,但这只是导入了UI组件库的图标封装形式,还需要把字体图标也应用到项目中。

可以在src/index.html的head标签内引用Material字体图标:

<!-- src/index.html -->
<head>
  ...
  <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap" rel="stylesheet">
  <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
  ...
  <title>AngularMaterial7 </title>
  <base href="/">
  ...
</head>

完整的代码解释如下:

  • Font:国外一流google的字体库fonts.googleapis.com
  • Font-family:加载谷歌的Roboto字体
  • Material+Icons:加载Material UI库的图标字体

在组件中使用

组件中使用Material UI库的组件很简单。下面我们来实现一个简单的登录表单:

<!-- app.component.html -->
<div class="form">
  <mat-card>
    <mat-card-header>
      <mat-card-title>登录</mat-card-title>
    </mat-card-header>

    <form (ngSubmit)="onSubmit()" #loginForm="ngForm">
      <mat-form-field appearance="outline">
        <input matInput type="email" name="email" placeholder="Email" [(ngModel)]="user.email" required>
      </mat-form-field>

      <mat-form-field appearance="outline">
        <input matInput type="password" name="password" placeholder="Password" [(ngModel)]="user.password" required>
      </mat-form-field>

      <button mat-raised-button color="primary" type="submit">登录</button>
    </form>
  </mat-card>
</div>

其中,mat-card是Angular Material中的一个卡片组件。mat-card-header、mat-card-title、mat-form-field等都是Angular Material中的UI组件。

结论

本文详细介绍了如何在Angular项目中引入Angular Material,并搭建自己的主题。通过学习,我们可以使用Angular Material为我们提供的丰富的UI组件,快速搭建美观、高效的用户界面。如果觉得本文对您有所帮助,欢迎点赞、分享。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程