Angular Material là gì? Cách cài đặt và tạo lập một dự án Angular

Ngày đăng: 03/11/2021   -    Cập nhật: 05/08/2022
Trong bài viết này, mình sẽ hướng dẫn các bạn cách tạo lập một dự án Angular và cách cài  Angular Material với một vài bước đơn giản. Nhưng trước hết chúng ta sẽ tìm hiểu khái quát về Angular Material.



Hãy cùng bắt đầu nào.

Nội dung chính:
  • Angular Material là gì ?
  • Khởi tạo dự án
  • Cài đặt Angular Material
  • Tạo Material Module
  • Tạo Thành phần Layout
  Angular Flex Layout
  • Tạo thành phần Home và sử dụng Material Tabs
  • Các tính năng  Mat-Tab bổ sung
  • Kết luận

Angular Material là gì?

Thành phần UI/UX của Angular được gọi là Angular Material. Việc ứng dụng các framework dựa trên thành phần như React, Angular, và Vue.js đã làm tăng số lượng các thành phần giao diện người dùng (UI). Những tập hợp này đã cung cấp một framework thiết kế đáp ứng và hiệu quả cho các lập trình viên web để lập trình các ứng dụng nhanh hơn.

Trước khi biết về AngularJS Material, chúng ta cần biết về Material Design.

Năm 2014, Google phát minh ra một ngôn ngữ thiết kế được gọi là Material Design. Material Design là một công cụ hỗ trợ phần thiết kế cơ sở về thị giác và tương tác.
Google loại bỏ JavaScript và viết lại code từ đầu, đặt lại tên là Angular vào năm 2016. Cuối cùng, Google dán Material Design vào Angular sử dụng Typescript và gọi nó là Angular Material.

Nó bao gồm một loạt các thành phần UI của Angular như sau:
  • Kiểm soát Form: Input, lựa chọn, các thanh kéo, checkbox, v..v...
  • Các thành phần Layout: lưới, cards, lists, và tabs
Buttons:
  • Các Mẫu Điều hướng - Side-Navy, Menus, và Toolbars
Bảng dữ liệu với phần tiêu đề:
  • Models và Pop-Ups
  • Indicator - spinner và progress bar

Dưới đây là một số tính năng thiết yếu của Angular Materials:

  • CSS có thể tùy biến với một footprint nhỏ
  • Thiết kế có sẵn dễ tiếp thu.
  • Biên dịch với phiên bản mới hơn của các điều khiển UI như checkbox, trường văn bản, và các nút để đáp ứng các nhu cầu thiết kế nội dung.
  • Sử dụng để tạo các thành phần web liên trình duyệt và có thể tái sử dụng.
  • Bao gồm các tính năng đặc trưng và được tăng cường như toolbars, cards, side navy, speed dial,..v..v..
  • Nó có thiết kế đáp ứng
  • Các content class của Angular được thiết kế để trang có thể thích ứng với bất kỳ kích cỡ màn hình nào.
  • Website được phát triển bằng Angular tương thích với Android, máy tính bảng, và PC.
  • Kiểu mẫu đáp ứng.
  • Thiết kế phẳng.
  • Trong Angular Material, Bóng và màu sắc không thay đổi trên nhiều thiết bị và nền tảng.
  • Angular Material hỗ trợ nhiều màu sắc và đổ bóng.

Khởi tạo dự án Angular Material

Chúng ta sẽ sử dụng Angular CLI trong toàn bộ dự án (và bạn cũng nên làm như vậy).Hãy mở cửa sổ Command Prompt tạo dự án Angular của chúng ta với lệnh sau:

ng new ang-material-owneraccount

Chúng ta sẽ không muốn Angular tạo tuyến và sẽ phải chọn CSS cho định dạng stylesheet.

Khi đã khởi tạo xong, khởi động trình biên tập Visual Studio Code và mở dự án của chúng ta.

Cài đặt Angular Material

Chúng ta sử dụng lệnh ng add để cài đặt các package cần thiết. Ngoài việc cài Angular Material, chúng ta cũng cần phải có CDK và Animations nữa.

Vậy hãy mở cửa sổ Terminal trong VS Code và thực thi lệnh sau:

ng add @angular/material

Để tiếp tục, chọn một chủ đề có sẵn cho for Angular Material. Chủ đề là bắt buộc và chúng ta phải chọn từ các chủ đề có sẵn sau:
  • deeppurple-amber.css
  • indigo-pink.css
  • pink-blugrey.css
  • purple-green.css
Chọn Indigo/Pink. Thêm nữa, chúng ta sẽ không sử dụng kiểu typography phổ thông của AngularMaterial mà sẽ dùng Angular Material Animations.

Sau khi đã hoàn tất cài đặt thì kết quả sẽ như sau:


Giờ đây, chúng ta có thể kiểm tra tệp app.module.ts và xác nhận rằng BrowserAnimationsModule đã được import vào đó:


import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import {BrowserAnimationsModulefrom '@angular/platform-browser/animations';
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
BrowserAnimationsModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }

Bước tiếp theo đó là cài đặt thư viện hammerjs để hỗ trợ cử chỉ (gestures).Để có được tính năng đầy đủ của một số thành phần thì sẽ phải cài đặt nó:

npm install --save hammerjs



Sau khi hoàn tất, import nó như dòng đầu tiên của tệp maint.ts:


import 'hammerjs';

Chúng ta sẽ sử dụng Material Icons trong dự án và có thể kiển tra tệp index.html để xác nhận xem nó đã được import trong quá trình cài đặt hay chưa:

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>AngMaterialOwnerAccount</title>
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
</head>
<body>
<app-root></app-root>
</body>
</html>
 

Tạo Material Module

Mặc dù chúng ta có thể import tất cả các thành phần cần thiết vào tệp app.module.ts, mình sẽ không khuyến khích các bạn làm vậy. Một giải pháp tốt hơn đó là tạo một module riêng với tất cả các tư liệu được import và sau đó import module đó vào tệp app.module.ts. Hãy cùng thử làm nào:

ng g module material --module app

Lệnh này sẽ tạo một thư mục mới với tệp material.module.ts bên trong. Nhưng tệp này thiếu một thứ đó là mảng exports. Vì vậy hãy thêm nó vào:
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
@NgModule({
imports: [
CommonModule
],
exports: [
],
declarations: []
})
export class MaterialModule { }

Cuối cùng, chúng ta có thể kiểm tra xem module đã được imported vào tệp app.module.ts:

Vậy đó. Chúng ta đã chuẩn bị xong tất cả những gì cần thiết để sử dụng các thành phần Material. Không chần chừ gì nữa, hãy bắt đầu sử dụng chúng nào.


import { MaterialModule } from './material/material.module';
imports: [
BrowserModule,
BrowserAnimationsModule,
MaterialModule
],

Tạo thành phần Layout

Thành phần này sẽ là điểm khởi đầu cho toàn bộ ứng dụng, vậy hãy tạo nó và import selector của nó vào trong tệp app.component.ts:
ng g component layout --skipTests

Lệnh này sẽ tạo các tệp thành phần và import chúng vào tệp app.module.ts.
 

Angular Flex Layout

Trước khi chỉnh sửa tệp thành phần HTML, chúng ta cần cài đặt thêm một thư viện nữa: @angular/flex-layout. Thư viện này sẽ giúp chúng ta tạo ra một ứng dụng đáp ứng. Các bạn sẽ chạy lệnh sau:
npm install @angular/flex-layout --save


Và sẽ phải ghi nó vào tệp app.module.ts file:

import {FlexLayoutModulefrom '@angular/flex-layout';
imports: [
BrowserModule,
BrowserAnimationsModule,
MaterialModule,
FlexLayoutModule
],

Bây giờ chúng ta đã có thể chỉnh sửa tệp layout.component.html:
<div fxLayout="row wrap" fxLayoutAlign="center center" class="layout-wrapper">
<div fxFlex="80%" fxFlex.lt-md="100%" class="flex-wrapper">
<ng-content></ng-content>
</div>
</div>

Như bạn có thể thấy, chúng ta sử dụng một số chỉ thị angular/flex để tạo một hàm wrapper đáp ứng bao quanh nội dung của chúng ta. Với phần tử fxLayout element, ta có thể định nghĩa flow order của phần tử con bên trong container. The fxLayoutAlign đặt vị trí phần tử còn theo cả trục ngang và trục dọc.

Phần tử fxFlex chỉnh kích cỡ của phần tử con về 80% so với phần tử cha của nó, và nếu màn hình xuống dưới mức trung bình thì phần tử con sẽ là 100% so với phần tử cha của nó

Với phần tử <ng-content> , sử dụng angular content projection.

Chúng ta sẽ có 2 class nữa: layout-wrapper và flex-wrapper, hãy thiết lập chúng trong tệp layout.component.css:


.layout-wrapper{
    height100%;
    }
    .flex-wrapper{
    height100%;
    }

Tuyệt vời!

Tất cả những gì phải làm bây giờ đó là loại bỏ tất cả nội dung trong tệp app.component.html và giới thiệu thành phần này bằng cách sử dụng selector của nó:

<app-layout>
Application works.
</app-layout>

Có thể khởi động ứng dụng bằng cách gõ ng serve và xem ứng dụng có hoạt động hay không.
 

Tạo Thành phần Home và sử dụng Material Tabs

Hãy tạo cấu trúc tệp thành phần Home trước:

ng g component home --skipTests
 
Sau đó, chỉnh sửa tệp home.component.html:

<section fxLayout="column" fxFlexAlign="stretch">
<div fxFlexAlign="center">
<p>Welcome to the Material Angular OwnerAccount Application</p>
</div>
<p>In this application we are going to work with:</p>
</section>

Chỉnh sửa tệp app.component.html file:

<app-layout>
<app-home></app-home>
</app-layout>

Chúng ta cũng cần phải chỉnh sửa cả tệp home.component.css:
section div p{
    color: #3f51b5;
    font-size: 30px;
    text-shadow: 2px 3px 5px grey;
    margin: 30px 0;
    }
    section div + p{
    color: #3f51b5;
    font-weightbold;
    font-size: 20px;
    padding-bottom: 20px;
    }

Để sử dụng thành phần material đầu tiên là thành phần mat-tab, thì cần phải ghi nó vào tệp material.module.ts:
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { MatTabsModule } from '@angular/material/tabs';
@NgModule({
imports: [
CommonModule,
MatTabsModule
],
exports: [
MatTabsModule
],
declarations: []
})
export class MaterialModule { }

Và sau đó chỉnh sửa tệp home.component.html:
<section fxLayout="column" fxFlexAlign="stretch">
<div fxFlexAlign="center">
<p>Welcome to the Material Angular OwnerAccount Application</p>
</div>
<p>In this application we are going to work with:</p>
<mat-tab-group>
<mat-tab label="Material Components">
<p>We are going to use different material components to create nice looking angular app.</p>
</mat-tab>
<mat-tab label="Consume .NET Core Web API">
<p>We will consume our .NET Core applicationBasicallywe will create complete CRUD client app.</p>
</mat-tab>
<mat-tab label="Fully responsive navigation menu">
<p>By using material componentswe are going to create fully responsive navigation menuwith its side-bar as well.</p>
</mat-tab>
</mat-tab-group>
</section>

Và giờ thì hãy cùng kiểm tra kết quả:
 

Các tính năng Mat-Tab bổ sung

Trước hết, hãy tạo kiểu cho nội dung tab của chúng ta thêm một chút, để căn chữ vào chính giữa trong mỗi tab:

mat-tab-group {
    text-aligncenter;
    }
    mat-tab-group p {
    padding-top: 20px;
    }



Điều khiển này sẽ có sự kiện riêng cuả nó. Sự kiện selectedTabChange được đưa ra khi tab hoạt động được thay đổi. Sự kiện focusChange được đưa ra khi người dùng điều hướng qua các tab bằng bàn phím.

Vậy, hãy sử dụng sự kiện selectedTabChange:

<mat-tab-group (selectedTabChange)="executeSelectedChange($event)">
 sẽ cần phải chỉnh sửa tệp home.component.ts như sau:
public executeSelectedChange = (event=> {
console.log(event);
}

Bây giờ, ngay khi chuyển tab, chúng ta sẽ thấy đối tượng sự kiện được ghi lại trên cửa sổ bảng lệnh:

 
Kết luận

Ok, tất cả mọi thứ đều rất tuyệt.chúng ta có thành phần material đầu tiên của mình và cũng được làm việc với một số thành phần material khác.
Qua bài viết này, bạn đã học được những kiến thức:
  • Cách chuẩn bị dự án Angular,
  • Cách cài đặt Angular Material, CDK, và Animations
  • Cách cài đặt và sử dụng thư viện @angular/flex-layout
  • Cách làm việc với các thành phần Tab Material

Bình luận Facebook
Mục lục
Đăng ký tư vấn
Nhân viên gọi điện tư vấn miễn phí sau khi đăng ký
Được cập nhật các ưu đãi sớm nhất
Hotline: 0383180086
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Hãy đăng ký để nhận những thông tin mới nhất về học bổng mới nhất tại NIIT - ICT Hà Nội
top
Đóng lại Đăng ký học tại NIIT - ICT Hà Nội
6260+ học viên đã theo học tại NIIT - ICT Hà Nội và có việc làm tốt trong ngành lập trình. Nắm lấy cơ hội ngay hôm nay!
Chọn khóa học
  • KHÓA HỌC LẬP TRÌNH FRONT END VỚI REACT.JS
  • KHÓA HỌC LẬP TRÌNH PHP WEB
  • Khóa học PHP Full stack [2023] cho người mới bắt đầu
  • Khóa học BIG DATA với Hadoop và Spark
  • Khóa học Lập trình Android tại Hà Nội
  • [Tuyển sinh 2023] Lập trình viên Quốc tế DigiNxt
  • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại Hà Nội
  • LẬP TRÌNH GAME
    • Khóa học Lập trình Game Unity
  • LẬP TRÌNH WEB FRONT END
    • KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG
    • KHÓA HỌC ANGULAR & TYPESCRIPT (FRONT END)
  • LẬP TRÌNH WEB BACK END
    • LẬP TRÌNH JAVA WEB VỚI FRAME WORK
    • Lập trình Web với Django
    • Lập trình PHP với Laravel Framework
  • CHƯƠNG TRÌNH ĐÀO TẠO ỨNG DỤNG CÔNG NGHỆ
    • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại TP HCM
  • LẬP TRÌNH WEB FULL STACK
    • Khóa học Java Full stack (IJFD)
  • LẬP TRÌNH MOBILE
    • FRONT-END VỚI REACTJS VÀ REACT NATIVE
    • Lập trình Android Nâng cao
  • ĐÀO TẠO CHO DOANH NGHIỆP
    • KHÓA HỌC BUSINESS ANALYSIC TỪ CƠ BẢN ĐẾN NÂNG CAO 2023
    • Khóa học Magento: Làm chủ CMS TMĐT lớn nhất
    • Khóa học IOT: Xây dựng Sản phẩm IOT với Raspberry Pi
    • Khóa học Automation Testing Chuyên nghiệp
  • KHÓA HỌC DỰ ÁN
    • Học sử dụng bộ Office: Word, Excel, Power Point, Mail chuyên nghiệp
  • KHÓA HỌC KHÁC
    • VBA Excel Toàn Tập (Cơ Bản - Nâng Cao)
    • VBA Excel Nâng cao
    • Khóa học JMeter: Performance Testing
    • Khóa học Tester đạt chuẩn Quốc tế ISTQB Foundation Level
    • Khoá Học Tester đạt chuẩn quốc tế ISTQB Advanced Level
Bạn chưa chọn khóa học cần đăng ký
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Đăng ký học thành công!
Cảm ơn bạn đã đăng ký học tại NIIT - ICT HÀ NỘI!