Atualizado: 21/06/2025

Este conteúdo é original e não foi gerado por inteligência artificial.

Interação entre módulos em Angular

Em artigos anteriores, exploramos a interação entre um componente autônomo e outro. No entanto, quando aplicamos não apenas componentes autônomos, mas uma abordagem modular, como descrito no tema sobre Módulos, surge a questão de como ocorre a interação entre diferentes módulos. Em uma aplicação grande, é lógico dividir o sistema em módulos que executam diferentes tarefas. No entanto, pode ser necessário conectar e utilizar um módulo dentro de outro.

Por exemplo, vamos definir um projeto com a seguinte estrutura:

helloapp/
├── src/
│   ├── app/
│   │   ├── data/
│   │   │   ├── data.component.ts
│   │   │   ├── data.module.ts
│   │   ├── app.component.ts
│   │   ├── app.module.ts
│   ├── main.ts
│   ├── index.html
├── angular.json
├── package-lock.json
├── package.json
└── tsconfig.json

Na pasta src/app/data, criaremos dois arquivos, data.module.ts e data.component.ts, que representarão a funcionalidade de um novo módulo.

No arquivo data.component.ts, definimos o componente DataComponent:

import { Component } from "@angular/core";

@Component({
  selector: "data-comp",
  template: "<div><h3>{{message}}</h3></div>",
})
export class DataComponent {
  message: string = "DataModule";
}

Já no arquivo data.module.ts, definimos a classe do módulo DataModule:

import { NgModule } from "@angular/core";
import { BrowserModule } from "@angular/platform-browser";
import { FormsModule } from "@angular/forms";
import { DataComponent } from "./data.component";

@NgModule({
  imports: [BrowserModule, FormsModule],
  declarations: [DataComponent],
  exports: [DataComponent], // exporta o componente
})
export class DataModule {}

Neste módulo, podemos incluir outros módulos que serão usados no contexto deste módulo e em seus componentes e diretivas.

Na seção declarations, adicionamos o componente DataComponent, que será parte deste módulo. Para que esse componente possa ser utilizado em outros módulos, DataComponent também é adicionado na seção exports.

Agora, vamos utilizar a funcionalidade do DataModule no módulo principal AppModule, no arquivo app.module.ts:

import { NgModule } from "@angular/core";
import { BrowserModule } from "@angular/platform-browser";
import { AppComponent } from "./app.component";
import { DataModule } from "./data/data.module";

@NgModule({
  imports: [BrowserModule, DataModule],
  declarations: [AppComponent],
  bootstrap: [AppComponent],
})
export class AppModule {}

Os módulos que criamos são importados da mesma forma que os demais módulos, na seção imports.

Após isso, poderemos utilizar a funcionalidade do DataModule nos componentes pertencentes ao AppModule. Por exemplo, podemos usar o DataComponent dentro do componente AppComponent, no arquivo app.component.ts:

import { Component } from "@angular/core";

@Component({
  selector: "my-app",
  template: `<div>
    <h1>AppModule</h1>
    <data-comp></data-comp>
  </div>`,
})
export class AppComponent {}

No arquivo main.ts, carregamos o módulo AppModule:

import { platformBrowserDynamic } from "@angular/platform-browser-dynamic";
import { AppModule } from "./app/app.module";

const platform = platformBrowserDynamic();
platform.bootstrapModule(AppModule);

Resultado:

Interação entre módulos em Angular

Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com