Vamos falar da estrutura mais básica de um projeto Angular, considerando o mínimo que você precisa saber para entender como o projeto funciona logo após ser criado com ng new. Vou simplificar ao máximo para te dar uma visão clara de como as partes essenciais se conectam.
Após rodar o comando ng new my-app --standalone=false, uma estrutura é gerada e algumas pastas e arquivos são especialmente importantes para o funcionamento da aplicação. Vamos focar nos elementos essenciais para entender o que acontece "nos bastidores" e como a aplicação é inicializada e exibida no navegador.
Aqui está uma visão simplificada dos principais diretórios e arquivos:
my-app/
│
├── src/
│ ├── app/
│ │ ├── app.component.ts # Lógica do componente principal da aplicação
│ │ ├── app.component.html # Template HTML do componente principal
│ │ ├── app.component.css # Estilo do componente principal
│ │ ├── app.module.ts # Módulo principal da aplicação
│ ├── index.html # Arquivo HTML principal
│ ├── main.ts # Ponto de entrada da aplicação
Vamos explorar esses elementos básicos um por um.
O index.html é o ponto de partida do lado do navegador para a aplicação Angular. Este arquivo é um HTML simples que contém uma tag especial <app-root> que será substituída pela interface do aplicativo Angular.
Exemplo de index.html:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>MyApp</title>
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<app-root></app-root> <!-- Este é o ponto onde a aplicação Angular será injetada -->
</body>
</html>
O main.ts é o ponto de entrada do TypeScript que diz ao Angular para começar a inicializar a aplicação. Ele é responsável por "dar o start" no módulo principal (AppModule).
Exemplo de main.ts:
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module';
platformBrowserDynamic().bootstrapModule(AppModule)
.catch(err => console.error(err));
O app.module.ts é o arquivo que define o módulo principal da aplicação — o AppModule. O Angular precisa de pelo menos um módulo raiz para poder começar.
Exemplo de app.module.ts:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent // Aqui estamos declarando que o AppComponent faz parte do AppModule
],
imports: [
BrowserModule // O BrowserModule é necessário para rodar no navegador
],
providers: [], // Aqui podemos registrar serviços globais
bootstrap: [AppComponent] // O AppComponent é o ponto de partida da aplicação
})
export class AppModule { }
O app.component.ts é o componente principal da aplicação. Ele é um componente Angular e representa o conteúdo principal que é exibido na tela.
Exemplo de app.component.ts:
import { Component } from '@angular/core';
@Component({
selector: 'app-root', // Esta tag é usada no HTML (index.html) para representar este componente
templateUrl: './app.component.html', // HTML associado a este componente
styleUrls: ['./app.component.css'] // CSS associado a este componente
})
export class AppComponent {
title = 'my-app'; // Variável que pode ser usada no template para exibir informações dinâmicas
}
Este é o arquivo que contém a estrutura HTML do componente principal.
Exemplo de app.component.html:
<div style="text-align:center">
<h1>Welcome to {{ title }}!</h1>
</div>
Este arquivo contém os estilos CSS para o AppComponent. Você pode definir os estilos que deseja aplicar a este componente em particular.
Exemplo de app.component.css:
h1 {
color: darkblue;
}
A estrutura é organizada para facilitar o desenvolvimento de uma aplicação escalável e modular, e o Angular gerencia tudo isso de forma a manter o projeto bem separado e fácil de gerenciar. Compreender essa estrutura básica é fundamental para seguir em frente e começar a adicionar mais funcionalidades ao seu projeto!