2026-04-29 10:33:45
Angular Material 是 Angular 官方提供的 UI 组件库,基于 Material Design 规范,帮助开发者快速构建美观且响应式的应用界面。以下是关键内容总结和扩展说明:
核心功能与组件基础组件
导航栏:<mat-toolbar> 提供顶部导航栏,支持颜色主题(如 color="primary")。
按钮:mat-raised-button 等样式按钮,支持点击事件(如 (click)="openDialog()")。
对话框:通过 MatDialog 服务动态加载组件(需在 entryComponents 中声明)。
表单控件
输入框:<mat-form-field> 包裹 <input matInput>,支持标签、占位符和错误提示(<mat-error>)。
下拉选择:<mat-select> 结合 <mat-option> 实现多选或单选。
滑动开关:<mat-slide-toggle> 双向绑定布尔值([(ngModel)])。
布局与导航
侧边栏:<mat-sidenav-container> 包裹 <mat-sidenav> 和内容区域,支持 push/over 模式。
卡片:<mat-card> 包含标题、图片、内容和操作按钮,适合内容展示。
数据展示
数据表:<table mat-table> 通过 dataSource 绑定数据,动态生成列(matColumnDef)。
步骤器:<mat-horizontal-stepper> 分步引导用户操作,支持表单验证(stepControl)。
反馈组件
进度条:<mat-progress-spinner> 显示加载状态(mode="indeterminate")。
通知栏:MatSnackBar 弹出短暂消息,可自定义持续时间(duration)。
环境准备
npm install -g @angular/cling new my-appcd my-appng add @angular/material # 自动安装 Material 和 CDK模块导入在 app.module.ts 中按需导入模块(如 MatButtonModule、MatDialogModule),并声明对话框组件:
@NgModule({ declarations: [AppComponent, DialogComponent], imports: [BrowserAnimationsModule, MatButtonModule, MatDialogModule], entryComponents: [DialogComponent] // 动态加载需声明})对话框逻辑
主组件:通过 MatDialog 服务打开对话框,传递配置(如宽度)。
对话框组件:需单独创建,使用 mat-dialog-actions 定义按钮行为(如 mat-dialog-close)。
样式与主题
在 styles.scss 中引入预定义主题(如 @import "~@angular/material/prebuilt-themes/indigo-pink.css";)。
自定义主题:通过 $theme 变量覆盖默认颜色和字体。
表单验证
<mat-form-field> <input matInput placeholder="Email" required> <mat-error *ngIf="email.invalid">Invalid email</mat-error></mat-form-field>动态数据表
dataSource = new MatTableDataSource([{position: 1, name: 'Item 1', weight: 10}]);displayedColumns: string[] = ['position', 'name', 'weight'];侧边栏控制
<mat-sidenav #sidenav mode="side" opened> <button mat-button (click)="sidenav.toggle()">Toggle</button></mat-sidenav>通过以上组件和步骤,开发者可以高效构建符合 Material Design 的应用界面。更多组件参考