Escolar Documentos
Profissional Documentos
Cultura Documentos
Eager Loading
Os módulos de recursos em Eager Loading seriam carregados antes
de módulo.
Lazy Loading
Os módulos de recursos em Lazy Loading seriam carregados sob
mais rápido.
Pre-Loading
Módulos de recursos em PreLoading seriam carregados
em sequência.
um valor.
______________________________________________
1.
O que é Angular?
Esconder resposta
Esconder resposta
Esconder resposta
Os dois são semelhantes. Ambos são frameworks front-end mantidos pela Google.
No entanto, também tem suas diferenças já que o Angular 2 não é apenas uma
versão atualizada do AngularJS. O Angular 2 é um novo framework escrito do zero.
Portanto, se alguém estiver procurando atualizar ou mudar para o Angular 2 a partir
do AngularJS, será necessário reescrever todo o código.
Nesta ou em outras perguntas de entrevista sobre o Angular 2, se você puder usar
exemplos práticos ou experiências pessoais para responder à pergunta, isso será
vantajoso e fará você se diferenciar da concorrência.
4.
Nomeie os módulos que você deve importar para usar [(ngModel)] e formulários
reactive.
Esconder resposta
Esconder resposta
Esconder resposta
Esse tipo de pergunta em entrevistas Angular avalia sua sagacidade e garante que
você conhece abordagens alternativas para diferentes cenários.
7.
Esconder resposta
Esconder resposta
O mecanismo de detecção de mudanças do Angular é responsável por rastrear
alterações em propriedades de componentes e atualizar a visualização (view)
correspondente. O Angular usa um fluxo unidirecional de dados, mesmo quando a
diretiva ngModel é usada para implementar o binding bidirecional.
Quando você for responder a uma pergunta como essa em uma entrevista de
trabalho Angular, é melhor incluir alguma experiência prévia para expandi-la e
mostrar que já lidou com situações que envolvem esse mecanismo..
9.
visualização?
Esconder resposta
componentes;
10.
Esconder resposta
Esconder resposta
Esconder resposta
Para todos os módulos, componentes, etc. que não precisam ocorrer em uma única
cópia para o aplicativo, mas devem ser importados em diferentes módulos, existe
um módulo genérico chamado módulo Shared. Para armazenar serviços que
precisam ocorrer em uma única cópia em todo o aplicativo, é usado um módulo
Core. Por exemplo, quando a autorização do usuário para armazenamento de
dados é necessária, a autorização do usuário aparece como um módulo core
(central).
13.
Esconder resposta
Esconder resposta
Seu uso permite que os desenvolvedores Angular criem interfaces de usuário ricas
e dinâmicas, com lógica e interações complexas, de forma mais fácil e eficiente do
que em outras abordagens de desenvolvimento de interfaces.
15.
Esconder resposta
Esconder resposta
componente.
● Decorators, por outro lado, são funções que são usadas para modificar o
específicos.
17.
Esconder resposta
Esconder resposta
19.
Esconder resposta
alterado.
necessidades do aplicativo.
20.
Esconder resposta
21.
Esconder resposta
Além disso, em Angular os filtros são funções JavaScript que podem ser definidas
globalmente ou localmente. Eles são aplicados aos dados usando a sintaxe de pipe
(|) e podem ser encadeados para criar efeitos mais complexos.
22.
O que é MVVM?
Esconder resposta
Esconder resposta
Esconder resposta
Componentes (components), módulos e serviços (services) são todos elementos
fundamentais do Angular e usados na construção de aplicações web modulares e
escalares.
25.
Esconder resposta
Reactive Forms em Angular é uma técnica para trabalhar com formulários reativos.
Com Reactive Forms, o estado do formulário é armazenado em um objeto
model-driven, que é atualizado continuamente à medida que o usuário interage com
o formulário. Em vez de responder a eventos do usuário, o Reactive Forms reage a
mudanças do estado do formulário, permitindo validação, formatação e envio de
dados em tempo real.
26.
Esconder resposta
just-in-time (JIT).
diretiva :is, que torna mais fácil escrever consultas de estilo CSS e a
diretiva :focus-visible, que torna mais fácil lidar com eventos de foco em
27.
Esconder resposta
Esconder resposta
web.
baseado em seletores.
em JavaScript.
29.
Esconder resposta
Um provider é uma classe que fornece um valor ou uma instância de um objeto para
a aplicação. Ele pode ser usado para injetar objetos em outros componentes ou
serviços, e é a maneira mais comum de fornecer um objeto ou serviço para a
aplicação.
Esconder resposta
Esconder resposta
As expressões JavaScript, por outro lado, são escritas em JavaScript puro e são
avaliadas pelo navegador. Elas são usadas para manipular o DOM e para realizar
operações mais avançadas que as expressões angulares não podem realizar. Por
exemplo, você pode usar expressões JavaScript para acessar o DOM e adicionar ou
remover elementos da página.
32.
Esconder resposta
service() e factory() são dois tipos de provedores de serviços que podem ser usados
para criar objetos reutilizáveis em um aplicativo.
A principal diferença entre service() e factory() é que service() cria uma instância do
objeto usando um construtor, enquanto factory() retorna um objeto criado
manualmente.
O método service() requer uma função construtora, que é usada para criar um novo
objeto de serviço. A função construtora é chamada usando o operador new e é
instanciada como um objeto. O objeto é então retornado por meio do provedor de
serviço. Este objeto pode ser usado em outras partes do aplicativo, pois é uma
instância compartilhada.
Por outro lado, factory() retorna diretamente um objeto que pode ser usado em
outras partes do aplicativo. A função factory é chamada apenas uma vez e retorna
um objeto literal que é injetado no aplicativo.
33.
Esconder resposta
Esconder resposta
O termo "scope" refere-se a um objeto que atua como uma ligação entre o
controlador (controller) e a visão (view). O escopo pode ser definido como uma
coleção de objetos que contêm as propriedades, funções e outras informações que
precisam ser compartilhadas entre a visão e o controlador. A hierarquia de escopos
(scope hierarchy) é uma estrutura de árvore que representa a relação entre os
escopos em uma aplicação AngularJS.
Cada aplicação AngularJS tem um escopo raiz (root scope), que é o escopo pai de
todos os outros escopos na hierarquia. Cada vez que um novo controlador é criado,
ele recebe um novo escopo filho (child scope) que é filho do escopo pai (parent
scope) do controlador.
35.
Esconder resposta
Os filtros de array são usados para filtrar um array de objetos com base em uma
determinada condição e retornam um novo array filtrado. Os filtros de formato são
usados para formatar valores em uma determinada maneira e retornar o valor
formatado.
Os filtros de formato em Angular são implementados como funções e são
adicionados a um módulo usando o método filter. Eles podem ser usados em uma
expressão Angular, que é avaliada em tempo de execução pelo Angular.
36.
Esconder resposta
Esconder resposta
Para components:
● ngOnChanges: Este hook é executado sempre que o valor de uma entrada
valores.
de dados do componente.
um componente é verificada.
Para directives:
Esconder resposta
BOM (Browser Object Model) e DOM (Document Object Model) são duas coisas
diferentes no contexto da web.
O BOM é a interface do navegador com o mundo exterior. Ele fornece objetos como
window, navigator e location, que permitem que o JavaScript interaja com o
navegador e a janela do navegador.
Esconder resposta
Esconder resposta
Esconder resposta
Existem várias ferramentas para testar aplicações Angular, mas algumas das
principais são:
e relata os resultados.
rápida e oferece uma experiência de teste mais intuitiva, pois você pode
● Angular Test Bed: É uma ferramenta fornecida pelo Angular para testar
usados para testar outras partes do aplicativo. Eles são usados para
43.
Esconder resposta
Esconder resposta
3. Use o método get() ou post() do HttpClient para fazer uma chamada HTTP
4. Use a resposta da sua API REST para atualizar o estado da sua aplicação;
5. Se necessário, você também pode enviar dados para a sua API REST
45.
Esconder resposta
Esconder resposta
Esconder resposta
Você pode usar o serviço CookieService fornecido por bibliotecas de terceiros, como
ngx-cookie-service, para definir, obter e limpar cookies. Para usá-lo, siga as etapas
abaixo:
npm;
Esconder resposta
Esconder resposta
Esconder resposta
Esconder resposta
O Async Pipe é uma diretiva em Angular que serve para trabalhar com dados
assíncronos, como por exemplo, observables. Ele é responsável por inscrever-se no
observable, receber seus valores e propagá-los para o template HTML. Além disso,
o Async Pipe é capaz de lidar com a finalização do subscribe no observable quando
o componente é destruído, evitando vazamento de memória.
52.
Esconder resposta
(AOT)?
Esconder resposta
Esconder resposta
Tanto as Promises quanto os Observables são usados para lidar com chamadas
assíncronas, mas existem algumas diferenças importantes entre elas.
Uma Promise é usada para uma única operação assíncrona e pode ter apenas um
valor retornado (resolve) ou um erro (reject). A Promise será executada uma vez e
retornará um valor ou um erro, e depois será encerrada. As Promises são tratadas
pelo método .then() para lidar com sucesso e .catch() para lidar com falhas.
Já um Observable é usado para transmitir múltiplos valores de uma fonte, com o
tempo. Ele permite que você possa enviar um fluxo contínuo de dados e pode ser
inscrito várias vezes. O Observable é composto de três estados: next, error e
complete.
55.
Esconder resposta
Já o Subject é uma classe que implementa a interface Observable e pode ser usada
para criar um fluxo de dados que pode ser observado por outros componentes ou
serviços. Ele é um tipo de Observable que permite a emissão manual de eventos
por meio do método next(). O Subject também possui recursos avançados de
gerenciamento de assinaturas, como unsubscribe() para cancelar a inscrição em
eventos.
56.
Esconder resposta
Esconder resposta
1. Crie uma nova pasta com o nome do seu componente dentro da pasta app
2. Dentro da pasta que você acabou de criar, crie um novo arquivo .ts com o
do componente.
5. Crie o arquivo CSS do componente com o nome definido no parâmetro
componente.
58.
Esconder resposta
Usando o routing, é possível criar aplicativos com várias visualizações que são
carregadas em diferentes URLs, permitindo que os usuários naveguem pelo
aplicativo e mudem de página sem a necessidade de recarregar a página inteira.
Além disso, ele permite que os desenvolvedores criem links que apontem para
páginas específicas, facilitando a navegação para os usuários.
O routing também é útil para permitir que diferentes partes do aplicativo sejam
carregadas de forma assíncrona, melhorando a velocidade de carregamento do
aplicativo.
59.
Esconder resposta
Esconder resposta
Esconder resposta
Esconder resposta
Esconder resposta
Existem vários erros comuns em aplicativos Angular, alguns dos quais são:
propriedade ou método.
desnecessariamente.
64.
Esconder resposta
Para criar animações em Angular, você pode usar a biblioteca Angular Animation.
Esta biblioteca fornece uma maneira fácil e flexível de criar animações que podem
ser aplicadas a elementos HTML e componentes Angular.
Esconder resposta
Esconder resposta
O Pipe é usado para compor esses operadores, permitindo que você encadeie
vários operadores em uma única chamada de função. Isso torna o código mais
legível e mais fácil de manter, especialmente quando você está lidando com fluxos
de dados complexos.
67.
Angular uses the two-way binding. Any changes made to the user interface are
reflected in the corresponding model state. Conversely, any changes in the model
state are reflected in the UI state. This allows the framework to connect the DOM to
the Model data via the controller. However, this approach affects performance since
every change in the DOM has to be tracked.
1. Class Decorators
2. Property Decorators
3. Method Decorators
4. Parameter Decorators
NGCC Feature - Addition of NGCC features with a program based entry point finder.
1. Component Directives
2. Structural Directives
3. Attribute Directives
1. Faster rendering
2. Fewer asynchronous requests
3. Smaller Angular framework download size
4. Quick detection of template errors
5. Better security
Components are the basic building blocks of the user interface in an Angular
application. Every component is associated with a template and is a subset of
directives. An Angular application typically consists of a root component, which is
the AppComponent, that then branches out into other components creating a
hierarchy.
14. What are Pipes in Angular?
Pipes are simple functions designed to accept an input value, process, and return as
an output, a transformed value in a more technical understanding. Angular supports
several built-in pipes. However, you can also create custom pipes that cater to your
needs.
name: 'demopipe'
})
return null;
By default, all pipes are pure. However, you can specify impure pipes using the pure
property, as shown below.
@Pipe({
name: 'demopipe',
pure : true/false
})
For example,
The template here is deleteHero. The method is called when the user clicks on the
button.
The image above shows an App component - a pure TypeScript class decorated with
the “@Component” decorator. The metadata object that gets accepted by the
decorator provides properties like templateUrl, selector, and others, where the
templateUrL property points to an HTML file defining what you see on the
application.
Promises - They emit a single value at a time. They execute immediately after
creation and are not cancellable. They are Push errors to the child promises.
Observables - They are only executed when subscribed to them using the subscribe()
method. They emit multiple values over a period of time. They help perform
operations like forEach, filter, and retry, among others. They deliver errors to the
subscribers. When the unsubscribe() method is called, the listener stops receiving
further values.
constructor() { }
ngOnInit(): void {
//....
Lesson 13 of 13
By Chinmayee Deshpande
16
1096209
Previous
Table of Contents
Angular is a robust front-end JavaScript framework that is widely used for app
development. With the increased popularity, there is a high demand for Angular
developers. This article on Angular Interview Questions will present some commonly
asked questions and how to answer them. The questions are bifurcated into two
levels, beginner and advanced.
To brush up your basics, check out our videos on YouTube. You could also refer to
our articles for better clarity. Now, without further ado, let's begin with the top
Angular interview questions and answers you must be prepared for.
1. O que é Angular? Por que foi introduzido?
Angular foi introduzido para criar aplicativos de página única. Essa estrutura traz
estrutura e consistência para aplicativos da Web e fornece excelente escalabilidade
e capacidade de manutenção.
2. O que é TypeScript?
TypeScript é um superconjunto de JavaScript que oferece excelente consistência. É
altamente recomendado, pois fornece um pouco de açúcar sintático e torna a base
de código mais confortável de entender e manter. Por fim, o código TypeScript é
compilado em JavaScript que pode ser executado com eficiência em qualquer
ambiente.
1. Arquitetura MVC - Angular é uma estrutura MVC completa. Ele fornece uma
opinião firme sobre como o aplicativo deve ser estruturado. Ele também
oferece fluxo de dados bidirecional e atualiza o DOM real.
2. Módulos: Angular consiste em diferentes padrões de design, como
componentes, diretivas, pipes e serviços, que ajudam na criação suave de
aplicativos.
3. Injeção de dependência : Componentes dependentes de outros
componentes podem ser facilmente contornados usando esse recurso.
4. Outras vantagens genéricas incluem código limpo e sustentável, teste de
unidade, componentes reutilizáveis, vinculação de dados e excelente
experiência responsiva.
ng new --strict
1. Diretivas de componentes
2. Diretivas Estruturais
3. Diretivas de atributo
@Pipe({
name: 'demopipe'
})
return null;
Por padrão, todos os pipes são puros. No entanto, você pode especificar pipes
impuros usando a propriedade pure, conforme mostrado abaixo.
@Pipe({
name: 'demopipe',
pure : true/false
})
{{ dados }}
Por exemplo,
<button (click)="deleteHero()">Excluir herói</button>
Promessas - Emitem um único valor por vez. Eles são executados imediatamente
após a criação e não podem ser cancelados. Eles são erros de push para as
promessas de criança.
Observables - Eles são executados apenas quando inscritos neles usando o método
Subscribe(). Eles emitem vários valores durante um período de tempo. Eles ajudam
a executar operações como forEach, filter e retry, entre outras. Eles entregam erros
aos assinantes. Quando o método unsubscribe() é chamado, o ouvinte para de
receber outros valores.
construtor() { }
ngOnInit(): void {
//....
<ul>
</ul>
1. “Deixar item” cria uma variável local que estará disponível no template
2. “Of items” indica que estamos iterando sobre os itens iteráveis.
3. O * antes de ngFor cria um modelo pai.
Angular usa o DOM regular. Isso atualiza toda a estrutura em árvore das tags HTML
até atingir os dados a serem atualizados. No entanto, para garantir que a velocidade
e o desempenho não sejam afetados, o Angular implementa a detecção de
alterações.
Os aplicativos angulares também são muito escaláveis, pois podem ser divididos
em pequenos módulos que podem ser carregados independentemente uns dos
outros. Isso significa que um aplicativo Angular pode ser facilmente estendido com
novas funcionalidades sem a necessidade de reescrever todo o aplicativo.
"construir": {
"builder": "@angular-devkit/build-angular:browser",
"opções": {
"outputPath": "dist/angular-starter",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.app.json",
"aot": falso,
"ativos": [
"src/favicon.ico",
"origem/ativos"
],
"estilos": [
"./node_modules/@angular/material/prebuilt-themes/deeppurple-amber.css",
"src/estilo.css"
}
38. Explicar componentes, módulos e serviços em
Angular.
Componentes, módulos e serviços são os três blocos de construção fundamentais
no Angular. Os componentes são as menores unidades independentes em um
aplicativo Angular. Eles são normalmente usados para representar uma exibição ou
elemento de interface do usuário, como um botão ou um campo de entrada de
formulário.
Exemplo de código:
@Componente({
seletor: 'app-test',
templateUrl: './test.component.html',
styleUrls: ['./test.component.css']
})
construtor() {}
ngOnInit() {
}
Módulos são unidades maiores que agrupam um ou mais componentes
relacionados. Os serviços são objetos singleton que fornecem funcionalidade
específica em um aplicativo Angular, como acesso a dados ou registro.
Exemplo de código:
@NgModule({
declarações: [
AppComponent,
TestComponent
],
importações: [
BrowserModule
],
provedores: [],
bootstrap: [AppComponent]
})
Cada componente em Angular tem seu próprio escopo isolado. Isso significa que as
dependências de um componente (serviços, outros componentes etc.) não são
acessíveis a nenhum outro componente fora de seu próprio escopo. Esse
isolamento é importante para garantir modularidade e flexibilidade em um aplicativo
Angular.
Já os serviços não são isolados e podem ser injetados em qualquer outra unidade
de uma aplicação Angular (componente, módulo, serviço, etc.). Isso os torna ideais
para compartilhar dados ou funcionalidades em todo o aplicativo.
Exemplo de código:
@Injetável({
fornecidoIn: 'raiz'
})
construtor() { }
}
Ao projetar um aplicativo Angular, é importante manter esses três blocos de
construção em mente. Os componentes devem ser pequenos e independentes, os
módulos devem agrupar componentes relacionados e os serviços devem fornecer
funcionalidade compartilhada em todo o aplicativo. Seguindo esse princípio de
design, você pode criar um aplicativo Angular que seja modular, flexível e fácil de
manter.
<!DOCTYPE html>
<html lang="en">
<cabeça>
<meta charset="UTF-8">
<title>Teste de JavaScript</title>
</head>
<corpo>
<div id="foo"><div>
</body>
<script>
'use estrito';
document.getElementById('foo').innerHTML = bar.x;
</script>
</html>
@Componente({
seletor: 'aplicativo-novo',
modelo: `
<h4>{{mensagem}}</h4>
`,
styleUrls: ['./new.component.css']
})
mensagem:objeto = {};
construtor() { }
ngOnInit() {
Depois que todas as dependências forem registradas, você poderá injetá-las em seu
código. O processo de injeção irá novamente variar dependendo da biblioteca que
você está usando, mas geralmente é apenas uma questão de fornecer o nome da
dependência. A biblioteca se encarregará de instanciar a dependência e passá-la
para o seu código.
A injeção de dependência pode ser uma ótima maneira de tornar seu código mais
modular e fácil de manter. Também pode facilitar o teste de unidade do seu código,
pois você pode injetar dependências fictícias em vez das reais. Se você estiver
usando uma estrutura que oferece suporte à injeção de dependência, provavelmente
ela já está sendo usada em seu código. Se você não estiver usando uma estrutura,
ainda poderá usar a injeção de dependência escolhendo uma biblioteca e seguindo
as etapas descritas acima.
Exemplo de código:
@Injetável({
fornecidoIn: 'raiz'
})
valorimportante:número = 42;
construtor() { }
returnImportantValue(){
return this.importantValue;
@Componente({
seletor: 'app-test',
templateUrl: './test.component.html',
styleUrls: ['./test.component.css']
})
valor:número;
constructor(private testService:TestService) { }
ngOnInit() {
this.value = this.testService.returnImportantValue();
O que é o SDLC?
O ciclo de vida de desenvolvimento de software (SDLC) é o processo econômico e rápido que as
equipes de desenvolvimento usam para projetar e criar software de alta qualidade. O objetivo do
SDLC é minimizar os riscos do projeto por meio do planejamento antecipado, para que o software
atenda às expectativas do cliente durante e depois da produção. Essa metodologia descreve uma
série de etapas que dividem o processo de desenvolvimento de software em tarefas que você pode
atribuir, concluir e avaliar.
Os detalhes dos processos do SDLC variam para diferentes equipes. Porém, destacamos abaixo
algumas fases comuns do SDLC:
Planejamento
Projeto
Implementação
Teste
Implantação
Quando as equipes desenvolvem software, eles criam e testam o código em uma cópia do software
diferente daquela à qual os usuários têm acesso. O software usado pelo cliente é considerado em
produção, enquanto outras cópias são consideradas como o ambiente de compilação ou ambiente
de teste.
Manutenção
Na fase de manutenção, entre outras tarefas, a equipe corrige bugs, soluciona problemas do
cliente e gerencia as alterações do software. Além disso, a equipe monitora a performance geral do
sistema, a segurança e a experiência do usuário para identificar novas formas de melhorar o
software existente.
Cascata
O modelo cascata organiza todas as fases sequencialmente, de forma que cada fase nova
dependa do resultado da fase anterior. Conceitualmente, o design flui de uma fase para a outra,
como uma cascata.
Prós e contras
Iterativo
O processo iterativo sugere que as equipes comecem o desenvolvimento de software com um
pequeno subconjunto de requisitos. Com o passar do tempo, eles aprimoram as versões
iterativamente até que o software completo esteja pronto para produção. A equipe produz uma
nova versão do software ao final de cada iteração.
Prós e contras
A identificação e o gerenciamento de riscos são fáceis, uma vez que os requisitos podem ser
alterados entre as iterações. Porém, a repetição de ciclos pode levar à alteração do escopo e a
subestimação de recursos.
Espiral
O modelo espiral combina os pequenos ciclos repetidos do modelo iterativo com o fluxo sequencial
linear do modelo cascata, a fim de priorizar a análise de riscos. O modelo espiral pode ser usado
para garantir o lançamento e o aprimoramento gradual do software, com a criação de protótipos em
cada fase.
Prós e contras
O modelo espiral é adequado para projetos grandes e complexos, que exigem alterações
frequentes. Porém, ele pode ter um custo alto para projetos menores com escopo limitado.
Ágil
O modelo ágil organiza as fases do SDLC em vários ciclos de desenvolvimento. A equipe itera as
fases rapidamente, fazendo apenas alterações pequenas e incrementais ao software em cada
ciclo. Eles avaliam continuamente os requisitos, planos e resultados para que possam responder
rapidamente às alterações. O modelo ágil é iterativo e incremental, o que o torna mais eficiente do
que outros modelos de processo.
Prós e contras
Os ciclos de desenvolvimento rápidos ajudam as equipes a identificar e resolver questões
antecipadamente em projetos complexos, antes que elas se tornem problemas significativos. Eles
também podem envolver clientes e outras partes interessadas para obter feedback em todo o ciclo
de vida do projeto. Porém, a dependência exagerada do feedback de clientes pode levar a
alterações excessivas no escopo ou ao encerramento prematuro do projeto.
Hoje, a maioria das equipes reconhece que a segurança é uma parte integral do ciclo de vida do
desenvolvimento de software. Você pode administrar a segurança no SDLC adotando as práticas
de DevSecOps e conduzindo avaliações de segurança durante todo o processo do SDLC.
DevSecOps