Introdução ao Angular - Do básico ao Hand-On

nortoncg1 22 views 61 slides Sep 08, 2025
Slide 1
Slide 1 of 61
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61

About This Presentation

Slide utilizado no curso Tecnologias em Sistemas para Internet - Programação para Front-End WeB


Slide Content

Angular
Visão Geral
Prof. Norton Guimarães

Introdução
O Angular é uma plataforma e framework para construção de single-page
application (SPA) usando HTML e TypeScript.
É desenvolvida e mantida pela GOOGLE.
Sendo considerado um dos mais usados frameworks para desenvolvimento
web.
Abrange desde soluções básicas até ferramentas e bibliotecas de construção,
teste e gerenciamento da aplicação web.
Versão vigente Angular 20 (28 de Maio de 2025).

Versões do Angular

Vantagens
★Customização e reutilização de componentes
★Produtividade e consistência de código
★Suporte a Cross Plataforma
★Melhora a velocidade e performance
★Suporte ao teste unitário
★Suporte a Interface do Usuário
★Open Source

Requisitos mínimos
Suporta os Sistemas Operacionais Windows, Linux e Mac
Node.js v22 ou superior
IDE que suporte JavaScript e HTML

Ambiente de Trabalho
Será necessário preparar o ambiente de desenvolvimento. Serão necessários:
1.Instalar o NodeJS e NPM
2.Instalar o Angular CLI via NPM
3.Instalar o Visual Studio Code ou Similar
4.Criar um novo projeto usando Angular CLI
5.Abrir a pasta do projeto no Visual Studio Code
6.Iniciar o servidor usando NodeJS

Instalando NodeJS e NPM

Instalando o Angular CLI via NPM
➢Para instalar a última versão:
○npm install -g @angular/cli
➢Para instalar uma versão específica
○npm install -g @angular/cli@18
➢Para desinstalar
○npm uninstall -g @angular/cli
➢Verificar se está instalado
○ng version

Comandos do Angular CLI
Ação Comando
Criar um aplicação ng new application nome_app
Criar um componente ng g c nome_componente
Criar um módulo ng g m nome_modulo
Criar um serviço ng g s nome_serviço
Criar um Guard ng g g nome_guard

Projeto Padrão (Project Template)
Módulo baseado em Padrão
Incluído a partir da versão 16
Standalone Template
Incluído na versão 17 (app.module)
Comando:
ng new <nome_projeto> --no--standalone

Material UI
Material UI é um conjunto de
componentes prontos para
uso que segue as diretrizes do
Material Design, uma
abordagem de design criada
pelo Google.
Comando:
ng add @angular/material

Componentes
Os componentes são o
núcleo do bloco de
construção da aplicação
angular.
Ele representa a parte da
interface do usuário e
encapsula a lógica.

Cada componente consiste em 3 partes:
Classe TypeScript, HTML e CSS

Interpolação
Interpolação é uma sintaxe especial que permite mesclar expressões com o
HTML.
Torna dinâmico a inserção de valores em tempo real.
A sintaxe da interpolação segue o duplo chave {{ }}.

Interpolação
Property Binding

Pipes
Os pipes são recursos de transformação de dados.
São funções de conversão.
Temos disponíveis:
Date Pipe
UpperCase Pipe
LowerCase Pipe
Currency Pipe
Decimal Pipe
Percentage Pipe
Json Pipe
Slice Pipe
Title Case Pipe

Property Binding
É a técnica de colocar valores das propriedades do html dinamicamente na
página.
A sintaxe usa os colchetes
[propriedade_html] = “nome_atributo_componente”

Property Binding
Property Binding

Property Binding

Two way binding
Permite a sincronização dos dados entre o modelo e visão
Utiliza a diretiva [{ngModel}]
Combina propriedades e eventos

Event Binding
Permite disparar os eventos com a interação do usuário, tais como teclado,
mouse e outros.
Eventos utiliza a sintaxe dos parênteses ( ).

Modulos
É o lugar onde podemos agrupar os componentes, diretivas, pipes e serviços.

Rotas
Rotas são, praticamente, parte do alicerce que forma uma single-page
application (SPA).
Criando uma aplicação com o Angular CLI, é criado um array de rotas (vazio)
no arquivo app.routes.ts, em src/app. O CLI configura estas rotas no arquivo
app.config.ts, na função provideRouter() que faz o roteamento.

Guardião
É uma interface do Angular que faz o meio de campo antes de chamar a rota
de fato, seja navegando entre os componentes ou saindo de algum deles.
Existem alguns tipos para rota de guarda:
●CanActivate – Verifica se o usuário pode acessar a rota;
●CanActivateChild – Verifica se o usuário pode visitar uma rota filha;
●CanDeactivate – Verifica se o usuário pode sair da rota;
●CanLoad – Verifica se o usuário pode utilizar lazy loaded.

Lazy Loading
O lazy loading (algo como "carregamento lento", em português) é o processo
de carregamento de componentes, módulos ou outros ativos de um site,
conforme necessário.

Hooks
Os hooks são métodos programados para serem executados em determinado
momento.
●ngOnInit: é executado uma vez quando o componente é inicializado;
ngOnChanges: executado uma vez na criação do componente e quando sofrer alguma
mudança;
●ngDoCheck: executado a cada mudança que o ngOnChange não detecta;
●ngOnDestroy: executado na destruição do componente.
Além desses existem outros quatros hooks dentro do ngDoCheck:
●ngAfterContentInit: conteúdo vindo de uma fonte externa do componente;
●ngAfterContentChecked: quando o conteúdo externo é verificado;
●ngAfterViewInit: executado após os dados dos filhos/próprio componente ser inicializado;
●ngAfterViewChecked: sempre que é detectado uma alteração do conteúdo.

Diretivas
Colocando em simples palavras, são instruções no DOM.
As diretivas também usam um decorator para eles “@Directive” e temos três tipos:.
●Component Directives, são os usados na classe principal do componente. Eles
contém as informações de como o componente será processado, instanciado e
usado.
●Attribute Directives, são usados para mudar o estilo e comportamento dos
elementos do DOM. Temos algumas pré-construídas como “ngClass” e
“ngStyle”.
●Structural Directives, aqui é onde mudamos e manipulamos as estruturas dos
elementos do DOM. São usados o operador “*” e também temos algumas
pré-construídas como o “*ngIf” e “*ngFor”.

Diretivas

Formulários
Os formulários são as partes de construção da interação da aplicação web.
Podem ser de dois tipos:
●Template-driven forms
●Reactive forms

Template Driven Form
É um simples caminho para criar formulários usando diretivas
É utilizado quando queremos construir formulários rapidamente e o mínimo
de validação necessária ou carregamentos complexos.
Basicamente, interação do Angular no HTML.

Reactive Forms
Reactive forms é uma abordagem orientada a modelos para construção de
formulários no Angular. Desta forma o modelo é criado na classe do
componente é mostrado no HTML com um markup especial para ele.
Ele consiste em alguns blocos:
●FormGroup;
●FormArray;
●FormControl.

Serviços
Os serviços nos auxiliam a separar do componente algumas informações
importantes e também o modo como vamos obtê-las, lógica de negócios,
além de dados de requisições ao servidor.
Eles são úteis porque o código contido neles pode ser utilizado por toda a
aplicação e não será repetido em vários locais diferentes, visto que essas
funcionalidades podem ser compartilhadas entre os componentes.

HTTP interceptor
É essencialmente uma classe que implementa a interface HttpInterceptor.
Esta interface permite a interceptação de requisições e respostas HTTP,
possibilitando que modifiquem, adicionem ou removam informações dessas
requisições ou respostas antes de serem enviadas ou recebidas.
Sendo útil para tarefas como:
●Autenticar usuários;
●Adaptar informações;
●E tratar erros do servidor.

Controles de fluxo
Refere-se a habilidade condicional dos elementos HTML ou aplicar lógica em
certas condições.
Os controles de fluxo pode ser:
●@if
●@for
●@switch

Deferrable View
Visualizações adiáveis podem ser usadas em modelos de componentes para
adiar o carregamento de dependências selecionadas dentro desse modelo.
Essas dependências incluem componentes, diretivas, pipes e qualquer CSS
associado. Para usar esse recurso, você pode encapsular declarativamente
uma seção do seu modelo em um @deferbloco que especifica as condições
de carregamento.
Suportam uma série de triggers, prefetching e vários sub-blocos
usados para placeholder, loading e estado de erro.

Para mais detalhes
Visite o site do Angular
https://v17.angular.io/docs
Alura
https://www.alura.com.br/cursos-online-front-end/angular
Udemy
https://www.udemy.com/pt/topic/angular/

Hands on Angular CLI

Passo-a-passo de como instalar o Angular

Instalar o Angular

Angular CLI - Instalado

Pasta do Projeto

Pasta do Projeto no VSCode

Criando meu Primeiro Projeto

Criando meu Primeiro Projeto

Criando meu Primeiro Projeto

Criando meu Primeiro Projeto

Subir o Servidor

Servidor ON

Hello, my-app

Estrutura do Angular

Detalhes do Angular - Projeto
Arquivos Gerais - Sem alterações para Iniciantes
●editorconfig - configurações
●gitgnore - restrições no GIT
●angular.json - configuração geral
●package-lock.json - dependências
○package.json
●serve.ts - configurações Express
●tsconfig.app.json - Configurações TypeScript
○tsconfig.json
○tsconfi.spec.json

Source Angular
Arquivos src - Globais
●index.html - página principal SPA
●main.server.ts - servidor principal
●main.ts - TypeScript Principal
●style.css - CSS padrão

App Angular
Componentes principais
app.component.
●css
●html
●spec.ts - Teste Unitário
●ts
app.config.
●serve.ts
●ts
app.routes.ts

Angular Language Service - Extensão

Criando Componentes

Criar um componente simples

Novo Componente

Vínculo do novo componente no App.Component

Vínculo do Componente no App.Component.HTML

Pratique
Crie 5 componentes simples e vincule no HTML
●Menu
●Rodapé
●Galeria
●Lista de Produtos
●Notícias
Customize o HTML com base na função de cada componente.

Desafio
1.Em cada componente criado
a.Inclua uma variável
b.Inclua uma função que retorne valores
c.Incluir caixa de texto
d.Demonstre os valores por Interpolação e Property Binding
e.Explore os eventos