@zlodiak

Как быстро подключить angular material?

Я обычно подключаю angular material так:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
//import { HttpModule } from '@angular/http';
import { HttpClientModule } from '@angular/common/http';
import { FormsModule } from '@angular/forms'; 
import { AgmCoreModule } from '@agm/core';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import {  MatButtonModule,
          MatInputModule,
          MatCardModule,
          MatCheckboxModule,
          MatDialogModule,
          MatSidenavModule } from '@angular/material';

..........
.........
  imports: [
    MatSidenavModule,
    MatDialogModule,
    MatCheckboxModule,
    MatCardModule,
    MatInputModule,
    FormsModule,
    MatButtonModule,
    BrowserAnimationsModule,
    HttpClientModule,
    BrowserModule,
    AppRoutingModule,
.............
............
.........


То есть как только мне становится нужен определённый компонент, то я его прописываю в app.module.ts в блоках импорта. Но компонентов много и получается, что в каждом новом проекте я подключаю их по одному. Это неудобно. Нельзя ли подключать их все одним действием и дальше только использовать, не возвращаясь к подключению?

Сильно ли это повлияет на производительность? Всё таки я не все компоненты библиотеки материал использую в проекте.

Вариант копипастить не предлагайте. Должен существовать штатный способ, просто я его не знаю.
  • Вопрос задан
  • 1799 просмотров
Решения вопроса 1
StivinKing
@StivinKing
Делайте всё структурировано, к примеру, для подключения material в директории app/shared у нас директория material с 2-мя файлами:
material.module.ts
import { NgModule } from '@angular/core';
import {  
MatButtonModule,
MatInputModule,
MatCardModule,
MatCheckboxModule,
// ...
} from '@angular/material';

@NgModule({
  exports: [
    MatButtonModule,
    MatInputModule,
    MatCardModule,
    MatCheckboxModule,
    // ...
  ]
})
export class MaterialModule { }

index.ts (для удобного последующего импорта)
export { MaterialModule } from './material.module';


В shared.module.ts экспортируем данный модуль:
// ...imports
import { MaterialModule } from './material';

@NgModule({
  exports: [
    // ...exports
    MaterialModule,
  ]
})
export class SharedModule { }

Легко манипулировать - добавлять нужное, убирать не нужное

Сильно ли это повлияет на производительность? Всё таки я не все компоненты библиотеки материал использую в проекте.

То что не используется но импортируется в вашем модулей, так же будет собрано при сборке приложения, а значит будут просто лежать ненужным грузом занимая n-времени на загрузку приложения.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы