Angular - Estrutura Básica do projeto
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.
Estrutura Mais Básica de um Projeto Angular
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.
Visão Geral da Estrutura Básica
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.
1. index.html: A Base HTML
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>
2. main.ts: Ponto de Entrada
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));
3. app.module.ts: O Módulo Principal
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 { }
4. app.component.ts: O Componente Raiz
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
}
5. app.component.html: HTML do Componente Raiz
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>
6. app.component.css: Estilos do Componente
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;
}
Fluxo Resumido do Carregamento
Resumindo o Básico do Básico
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!