{"id":7565,"date":"2021-05-21T10:03:55","date_gmt":"2021-05-21T13:03:55","guid":{"rendered":"https:\/\/geekblogti.wpengine.com\/?p=7565"},"modified":"2024-10-29T11:03:50","modified_gmt":"2024-10-29T14:03:50","slug":"um-overview-sobre-o-framework-angular","status":"publish","type":"post","link":"https:\/\/www.geekhunter.com/pt/blog\/um-overview-sobre-o-framework-angular\/","title":{"rendered":"Um overview sobre o framework Angular"},"content":{"rendered":"\r\n<p class=\"wp-block-paragraph\">E a\u00ed, vamos falar sobre Angular? \ud83e\udd29<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Quando decidimos utilizar uma tecnologia em um novo projeto, \u00e9 natural que uma das primeiras coisa que fa\u00e7amos seja entender o <strong>prop\u00f3sito que essa tecnologia tem a oferecer <\/strong>e como podemos ter um maior aproveitamento de suas funcionalidades e caracter\u00edsticas.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Para adquirir este entendimento \u00e9 necess\u00e1rio ter uma<strong> vis\u00e3o geral <\/strong>da arquitetura dessa tecnologia.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Pensando nisso, vamos demonstrar neste artigo uma vis\u00e3o geral da arquitetura do<strong> Angular<\/strong> e, assim, possibilitar aos leitores a oportunidade de entender melhor como funciona este fant\u00e1stico<strong><a href=\"https:\/\/www.geekhunter.com/pt/blog\/frameworks-javascript-e-bibliotecas-java\/\"><em> framework<\/em><\/a><\/strong>.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">D\u00e1 uma olhada no que voc\u00ea vai ler hoje:<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\" id=\"h-o-que-o-framework-angular\"><strong>O que \u00e9 o framework Angular?<\/strong><\/h2>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"576\" class=\"wp-image-7570\" src=\"https:\/\/geekblogti.wpengine.com\/wp-content\/uploads\/2019\/10\/o-que-e-o-angular-1024x576.jpg\" alt=\"tela roxa com o que e angular escrito logo da angular a direita e da geekhunter embaixo\" srcset=\"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/o-que-e-o-angular-1024x576.jpg 1024w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/o-que-e-o-angular-150x84.jpg 150w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/o-que-e-o-angular-100x56.jpg 100w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/o-que-e-o-angular-600x337.jpg 600w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/o-que-e-o-angular-450x253.jpg 450w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/o-que-e-o-angular-960x540.jpg 960w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/o-que-e-o-angular-300x169.jpg 300w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/o-que-e-o-angular-768x432.jpg 768w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/o-que-e-o-angular.jpg 1366w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong>Angular <\/strong>\u00e9 um<em> framework<\/em> para desenvolver aplica\u00e7\u00f5es em diversas plataformas, mantido e desenvolvido pela <strong>Google<\/strong>.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Voc\u00ea pode reutilizar o c\u00f3digo escrito para web, web mobile, mobile native e desktop native!<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Ele vem com um <strong>conjunto de bibliotecas<\/strong> poderosas que podemos importar, possibilitando construir aplica\u00e7\u00f5es com uma qualidade e produtividade surpreendente.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Al\u00e9m disso, o Angular coloca voc\u00ea no controle da escalabilidade,\u00a0atendendo aos enormes requisitos de dados construindo modelos em RxJS, Immutable.js ou outro push-model.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Ele \u00e9 uma reescritura completa do antigo A<em>ngular<\/em>JS e foi escrito em <strong><a href=\"https:\/\/geekblogti.wpengine.com\/typescript-3-4-as-novidades\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"TypeScript (abre numa nova aba)\">TypeScript<\/a><\/strong>.<\/p>\r\n\r\n\r\n\r\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\r\n<p>Veja quais s\u00e3o os <a href=\"https:\/\/geekblogti.wpengine.com\/frameworks-javascript-e-bibliotecas-java\/\" target=\"_blank\" rel=\"noreferrer noopener\">Frameworks e Bibliotecas de Javascript<\/a> mais importantes!<\/p>\r\n<\/blockquote>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\" id=\"h-qual-a-diferen-a-entre-angular-e-angularjs\">Qual a diferen\u00e7a entre Angular e AngularJS?<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Para in\u00edcio de conversa, <strong>o AngularJS \u00e9 um framework<\/strong> a parte. Lan\u00e7ado em 2009, ele \u00e9 a vers\u00e3o 1.0 do conceito que vemos hoje.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Com o passar dos anos e a evolu\u00e7\u00e3o das tecnologias Web, houve a necessidade de evoluir o AngularJS como era conhecido.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Por n\u00e3o conseguir mais acompanhar com performance as novidades como Javascript 2015, HTML 5, o CSS 3, etc., surgiu a necessidade de reescrever (criar outro) framework por completo.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Em 2016, saiu o Angular V2, um <strong>outro framework<\/strong> totalmente reescrito e adaptado. O Typescript foi escolhido por ser um superset de Javascript, implementando mais possibilidades para a linguagem.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Esse \u00e9 o Angular que estamos falando aqui.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong>As diferen\u00e7as mais not\u00e1veis s\u00e3o:<\/strong><\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>Um \u00e9 baseado na linguagem Javascript e o outro em Typescript;<\/li>\r\n<li>AngularJS n\u00e3o foi constru\u00eddo considerando o suporte mobile, j\u00e1 o Angular \u00e9 totalmente orientado ao mobile.<\/li>\r\n<li>O Angular ficou mais simples que o AngularJS, al\u00e9m da sintaxe que \u00e9 totalmente diferente, agora o ng-for, por exemplo, \u00e9 *ngFor. O padr\u00e3o da sintaxe \u00e9 camelcase.<\/li>\r\n<li>A presen\u00e7a do Angular CLI na nova vers\u00e3o.<\/li>\r\n<li>A velocidade do Angular \u00e9 5x mais alta que o AngularJS, gra\u00e7as ao algoritmo de dados.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.geekhunter.com\/pt\/candidates\/signup?utm_source=blog&amp;utm_medium=banner&amp;utm_campaign=overview_sobre_angular\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" width=\"720\" height=\"200\" class=\"wp-image-11833\" src=\"https:\/\/geekblogti.wpengine.com\/wp-content\/uploads\/2021\/02\/cta3-angular.png\" alt=\"\" srcset=\"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta3-angular.png 720w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta3-angular-150x42.png 150w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta3-angular-100x28.png 100w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta3-angular-600x167.png 600w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta3-angular-450x125.png 450w\" sizes=\"(max-width: 720px) 100vw, 720px\" \/><\/a><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\" id=\"h-a-arquitetura-do-framework-angular\">A arquitetura do framework Angular<\/h2>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1024\" height=\"576\" class=\"wp-image-7571\" src=\"https:\/\/geekblogti.wpengine.com\/wp-content\/uploads\/2019\/10\/arquitetura-do-angular-1024x576.jpg\" alt=\"tela roxa coma arquitetura do angular escrito logo da angular a direita e da geekhunter embaixo\" srcset=\"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/arquitetura-do-angular-1024x576.jpg 1024w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/arquitetura-do-angular-150x84.jpg 150w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/arquitetura-do-angular-100x56.jpg 100w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/arquitetura-do-angular-600x337.jpg 600w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/arquitetura-do-angular-450x253.jpg 450w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/arquitetura-do-angular-960x540.jpg 960w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/arquitetura-do-angular-300x169.jpg 300w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/arquitetura-do-angular-768x432.jpg 768w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/arquitetura-do-angular.jpg 1366w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">A arquitetura do <strong>Angular<\/strong> permite organizar a aplica\u00e7\u00e3o por m\u00f3dulos atrav\u00e9s dos <em>NgModules,<\/em> que fornecem um contexto para os componentes serem compilados.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Uma aplica\u00e7\u00e3o sempre tem ao menos um <strong>m\u00f3dulo raiz<\/strong> que habilita a inicializa\u00e7\u00e3o e, normalmente, possui outros m\u00f3dulos de bibliotecas.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Os componentes deliberam as visualiza\u00e7\u00f5es \u2014 que s\u00e3o conglomerados de elementos e funcionalidades de tela \u2014 que o Angular modifica de acordo com a l\u00f3gica e os dados da aplica\u00e7\u00e3o.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Esses componentes usam servi\u00e7os que fornecem funcionalidades espec\u00edficas e que s\u00e3o indiretamente relacionadas a essas visualiza\u00e7\u00f5es.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Os <strong>provedores de servi\u00e7os<\/strong> podem ser injetados nos componentes como depend\u00eancias, tornando seu c\u00f3digo modular e reutiliz\u00e1vel.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Servi\u00e7os e componentes s\u00e3o simples classes com decoradores, que definem o tipo e fornecem metadados para informar o Angular como us\u00e1-los.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"700\" height=\"356\" class=\"wp-image-7572\" src=\"https:\/\/geekblogti.wpengine.com\/wp-content\/uploads\/2019\/10\/arquitetura-angular.jpg\" alt=\"grafico\" srcset=\"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/arquitetura-angular.jpg 700w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/arquitetura-angular-150x76.jpg 150w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/arquitetura-angular-100x51.jpg 100w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/arquitetura-angular-600x305.jpg 600w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/arquitetura-angular-450x229.jpg 450w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/arquitetura-angular-300x153.jpg 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/figure>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id=\"h-ngmodules\"><strong>NgModules<\/strong><\/h3>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Tem como objetivo declarar e agrupar tudo que criamos no Angular. Existem duas estrutura principais, que s\u00e3o: <em>declarations<\/em> e o <em>providers. <\/em><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong>Declarations<\/strong> \u00e9 onde declaramos os itens que iremos utilizar nesse m\u00f3dulo, como por exemplo componentes e diretivas, j\u00e1 nos <strong>Providers<\/strong> informamos os servi\u00e7os.<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\"> <em>@NgModule({<\/em>\r\n<em>\u00a0\u00a0declarations: [ AppComponent],<\/em>\r\n<em>\u00a0providers: [ AuthClientService\u00a0 ],<\/em>\r\n<em>})<\/em><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Assim como m\u00f3dulos <strong><a href=\"https:\/\/geekblogti.wpengine.com\/linguagem-javascript-um-guia-para-iniciantes\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"JavaScript (abre numa nova aba)\">JavaScript<\/a><\/strong>, o <em>NgModules<\/em> tamb\u00e9m pode importar funcionalidades de outros <em>NgModules<\/em> e permitir que suas pr\u00f3prias funcionalidades tamb\u00e9m sejam exportadas.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Um exemplo claro disso \u00e9 que para usar o servi\u00e7o de roteador no seu <em>app<\/em> basta importar o <em>RouterNgModule<\/em>.<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\"> <em>@NgModule({<\/em>\r\n<em>\u00a0\u00a0declarations: [ AppComponent ],<\/em>\r\n<em>\u00a0\u00a0imports: [ AppRoutingModule ],<\/em>\r\n<em>\u00a0\u00a0})<\/em><\/pre>\r\n\r\n\r\n\r\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\r\n<p><a href=\"https:\/\/geekblogti.wpengine.com\/react-vs-vue-vs-angular-qual-escolher\/\" target=\"_blank\" rel=\"noreferrer noopener\">React vs Vue vs Angular<\/a>: qual escolher?<\/p>\r\n<\/blockquote>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id=\"h-components\"><strong>Components<\/strong><\/h3>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">A maior parte do desenvolvimento quando se utiliza o <em>framework Angular<\/em> \u00e9 feito nos componentes.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong>Cada componente define uma classe<\/strong>, que cont\u00e9m dados e l\u00f3gicas do aplicativo e est\u00e1 sempre associada a um <em>template HTML<\/em>, onde s\u00e3o definidas as visualiza\u00e7\u00f5es deste componente.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">O decorator<em> @Component() <\/em>identifica a classe imediatamente como um componente e oferece o modelo e os metadados espec\u00edficos dele.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Os metadados configuram, por exemplo, como o componente pode ser referenciado no <strong>HTML<\/strong> e tamb\u00e9m quais os servi\u00e7os devem ser utilizados.<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\"> <em>@Component({<\/em>\r\n<em>\u00a0\u00a0selector: 'app-root',<\/em>\r\n<em>\u00a0\u00a0templateUrl: '.\/app.component.html',<\/em>\r\n<em>\u00a0\u00a0styleUrls: ['.\/app.component.css'],<\/em>\r\n<em>\u00a0\u00a0providers: [ HeroService ]<\/em>\r\n<em>})<\/em> <\/pre>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id=\"h-directives\"><strong>Directives<\/strong><\/h3>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">As diretivas s\u00e3o como marcadores no elemento DOM que comunicam ao <strong>Angular<\/strong> para incluir um comportamento espec\u00edfico.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Existem tr\u00eas tipo de diretivas no Angular, que s\u00e3o: Diretivas de atributos, Diretivas estruturais e\u00a0Componentes.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong>Diretivas de atributos<\/strong>: Alteram a apar\u00eancia ou o comportamento de um elemento, componente ou outra diretiva, como por exemplo, <em>NgClass e NgStyle<\/em>.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong>Diretivas estruturais<\/strong>: Modificam o <em>layout<\/em> adicionando ou removendo elementos do DOM, como por exemplo, <em>NgIf <\/em>e<em> NgFor.<\/em><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong>Componentes<\/strong>: S\u00e3o diretivas com um modelo.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.geekhunter.com\/pt\/candidates\/signup?utm_source=blog&amp;utm_medium=banner&amp;utm_campaign=overview_sobre_angular\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"720\" height=\"200\" class=\"wp-image-11832\" src=\"https:\/\/geekblogti.wpengine.com\/wp-content\/uploads\/2021\/02\/cta1-angular.png\" alt=\"\" srcset=\"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta1-angular.png 720w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta1-angular-150x42.png 150w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta1-angular-100x28.png 100w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta1-angular-600x167.png 600w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta1-angular-450x125.png 450w\" sizes=\"(max-width: 720px) 100vw, 720px\" \/><\/a><\/figure>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id=\"h-interpolation\"><strong>Interpolation<\/strong><\/h3>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">A interpola\u00e7\u00e3o \u00e9 usada para exibir uma<strong> propriedade do componente<\/strong> no HTML.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Sua sintaxe s\u00e3o chaves duplas e podemos exibir qualquer tipo de dados, por exemplo, n\u00fameros, datas, <em>arrays<\/em> e etc&#8230;<\/p>\r\n\r\n\r\n\r\n<h4 class=\"wp-block-heading\" id=\"h-componente\"><strong>Componente<\/strong><\/h4>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\"> <em>export class AppComponent {<\/em>\r\n<em>\u00a0\u00a0propriedade = \"Hello!!!\"<\/em>\r\n<em>}<\/em><\/pre>\r\n\r\n\r\n\r\n<h4 class=\"wp-block-heading\" id=\"h-html\"><strong>Html<\/strong><\/h4>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\"> <em>&lt;h1&gt;{{propriedade}}&lt;\/h1&gt;<\/em> <\/pre>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id=\"h-dependency-injection-di\"><strong>Dependency injection (DI)<\/strong><\/h3>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">O DI \u00e9 conectado \u00e0 estrutura <strong>Angular<\/strong> e usado em todos os lugares para fornecer aos componentes os servi\u00e7os (ou outras coisas) que eles precisam.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Componentes consomem servi\u00e7os. Isto \u00e9, voc\u00ea pode <em>injetar<\/em> um servi\u00e7o em um componente, dando acesso ao componente para essa classe de servi\u00e7o.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Para realizar isso, usamos o <em>providedIn<\/em>, que \u00e9 uma propriedade do decorador <em>@Injectable<\/em>.<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\"> <em>@Injetable({<\/em>\r\n<em> providedIn: SomeModule<\/em>\r\n<em>})<\/em>\r\n<\/pre>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\" id=\"h-angular-cli\"><strong>Angular CLI<\/strong><\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">A<strong> <a href=\"https:\/\/angular.io\/cli\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">CLI Angular<\/a><\/strong> \u00e9 uma ferramenta de interface da linha de comandos que voc\u00ea usa para inicializar, desenvolver e manter aplicativos <strong>Angular<\/strong>.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Nesse sentido, ela \u00e9 a forma mais f\u00e1cil, r\u00e1pida e recomendada de se iniciar a sua aplica\u00e7\u00e3o em Angular, al\u00e9m de fazer a manuten\u00e7\u00e3o em projetos que recebe.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Para voc\u00ea ter no\u00e7\u00e3o, alguns exemplos de comandos abaixo deixam claro como o uso de Angular CLI facilita a vida do programador:<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-table\">\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td><strong>ng build<\/strong><\/td>\r\n<td>Compila um aplicativo Angular em um diret\u00f3rio de sa\u00edda.<\/td>\r\n<\/tr>\r\n<tr>\r\n<td><strong>ng serve<\/strong><\/td>\r\n<td>Cria um servidor local HTTP para testar seu aplicativo, reconstruindo as altera\u00e7\u00f5es do arquivo.<\/td>\r\n<\/tr>\r\n<tr>\r\n<td><strong>ng generate<\/strong><\/td>\r\n<td>Gera ou modifica arquivos com base em um esquema.<\/td>\r\n<\/tr>\r\n<tr>\r\n<td><strong>ng test<\/strong><\/td>\r\n<td>Executa testes de unidade em um determinado projeto.<\/td>\r\n<\/tr>\r\n<tr>\r\n<td><strong>ng e2e<\/strong><\/td>\r\n<td>Constr\u00f3i e fornece um aplicativo Angular e, em seguida, executa testes de ponta a ponta.<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<\/figure>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Voc\u00ea pode usar a ferramenta diretamente em um<em> shell<\/em> de comando ou indiretamente por meio de uma interface do usu\u00e1rio interativa, como o <strong>Angular Console<\/strong>.<\/p>\r\n\r\n\r\n\r\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\r\n<p>Um guia para usar <a href=\"https:\/\/geekblogti.wpengine.com\/um-guia-para-usar-react-js\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" React JS (abre numa nova aba)\"><strong>React JS<\/strong><\/a><\/p>\r\n<\/blockquote>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\" id=\"h-angular-spas\">Angular SPAs<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Voc\u00ea sabe o que \u00e9 uma SPA? Uma Single-Page Application \u00e9 aplica\u00e7\u00e3o web que roda em uma \u00fanica p\u00e1gina, se assemelhando a um aplicativo desktop ou um mobile.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Alguns profissionais chamam de \u201cp\u00e1ginas ajax\u201d tamb\u00e9m.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Um bom exemplo \u00e9 o Gmail do Google, porque a navega\u00e7\u00e3o est\u00e1 em uma \u00fanica p\u00e1gina e todo o conte\u00fado \u00e9 carregado de uma vez ou obtido dinamicamente (via requisi\u00e7\u00f5es Ajax).<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">A redu\u00e7\u00e3o dos dados enviados e recebidos a cada solicita\u00e7\u00e3o \u00e9 o principal fator vantajoso das<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Usar Angular para fazer uma SPA \u00e9 uma boa ideia pois possui sistemas de rotas e clientes HTTP para fazer requisi\u00e7\u00f5es a recursos externos (uma API, por exemplo).<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\" id=\"h-considera-es-finais\"><strong>Considera\u00e7\u00f5es<\/strong> Finais<\/h2>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" class=\"wp-image-7573\" src=\"https:\/\/geekblogti.wpengine.com\/wp-content\/uploads\/2019\/10\/consideracoes-finais-1024x576.jpg\" alt=\"tela roxa com consideracoes finais escrito logo da angular a direita e da geekhunter embaixo\" srcset=\"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/consideracoes-finais-1024x576.jpg 1024w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/consideracoes-finais-150x84.jpg 150w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/consideracoes-finais-100x56.jpg 100w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/consideracoes-finais-600x337.jpg 600w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/consideracoes-finais-450x253.jpg 450w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/consideracoes-finais-960x540.jpg 960w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/consideracoes-finais-300x169.jpg 300w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/consideracoes-finais-768x432.jpg 768w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/consideracoes-finais.jpg 1366w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Esse foi o nosso <em>OverView<\/em> sobre este fant\u00e1stico <em>FrameWork<\/em>. \u00c9 claro que, se tratando de uma vis\u00e3o geral, v\u00e1rios temas importante ficaram de fora deste post.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Alguns exemplos s\u00e3o: <em>Lifecycle Hooks, Pipes, Property binding\/Event binding<\/em>\u00a0e muitos outros.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Por esse motivo, vou deixar o link da <a href=\"https:\/\/angular.io\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"><strong>documenta\u00e7\u00e3o oficial do Angular<\/strong><\/a> para voc\u00eas poderem se aprofundar ainda mais nesta ferramenta.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Grande abra\u00e7o e at\u00e9 a pr\u00f3xima.<\/p>\r\n","protected":false},"excerpt":{"rendered":"<p>E a\u00ed, vamos falar sobre Angular? \ud83e\udd29 Quando decidimos utilizar uma tecnologia em um novo projeto, \u00e9 natural que uma das primeiras coisa que fa\u00e7amos seja entender o prop\u00f3sito que essa tecnologia tem a oferecer e como podemos ter um maior aproveitamento de suas funcionalidades e caracter\u00edsticas. Para adquirir este entendimento \u00e9 necess\u00e1rio ter uma [&hellip;]<\/p>\n","protected":false},"author":170,"featured_media":7569,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[18],"tags":[],"class_list":["post-7565","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desenvolvimiento-de-software"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.3 (Yoast SEO v28.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Angular: Uma vis\u00e3o geral sobre o framework - Blog Geekhunter<\/title>\n<meta name=\"description\" content=\"Nesse artigo falamos sobre o famoso framework front-end Angular, abordando as principais caracter\u00edsticas de sua arquitetura!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.geekhunter.com\/pt\/blog\/um-overview-sobre-o-framework-angular\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Um overview sobre o framework Angular\" \/>\n<meta property=\"og:description\" content=\"E a\u00ed, vamos falar sobre Angular? \ud83e\udd29 Quando decidimos utilizar uma tecnologia em um novo projeto, \u00e9 natural que uma das primeiras coisa que fa\u00e7amos seja\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.geekhunter.com\/pt\/blog\/um-overview-sobre-o-framework-angular\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Geekhunter\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/geekhunterbr\/\" \/>\n<meta property=\"article:published_time\" content=\"2021-05-21T13:03:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-10-29T14:03:50+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/Um-overview-sobre-o-framework-Angular.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1366\" \/>\n\t<meta property=\"og:image:height\" content=\"768\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ricardo Calado\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@geekhunterbr\" \/>\n<meta name=\"twitter:site\" content=\"@geekhunterbr\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ricardo Calado\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/um-overview-sobre-o-framework-angular\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/um-overview-sobre-o-framework-angular\\\/\"},\"author\":{\"name\":\"Ricardo Calado\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#\\\/schema\\\/person\\\/14c8c974f81521499b5ca124c0f3edc2\"},\"headline\":\"Um overview sobre o framework Angular\",\"datePublished\":\"2021-05-21T13:03:55+00:00\",\"dateModified\":\"2024-10-29T14:03:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/um-overview-sobre-o-framework-angular\\\/\"},\"wordCount\":1313,\"publisher\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/um-overview-sobre-o-framework-angular\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/wp-content\\\/uploads\\\/2019\\\/10\\\/Um-overview-sobre-o-framework-Angular.jpg\",\"articleSection\":[\"Desenvolvimiento de software\"],\"inLanguage\":\"pt-BR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/um-overview-sobre-o-framework-angular\\\/\",\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/um-overview-sobre-o-framework-angular\\\/\",\"name\":\"Angular: Uma vis\u00e3o geral sobre o framework - Blog Geekhunter\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/um-overview-sobre-o-framework-angular\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/um-overview-sobre-o-framework-angular\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/wp-content\\\/uploads\\\/2019\\\/10\\\/Um-overview-sobre-o-framework-Angular.jpg\",\"datePublished\":\"2021-05-21T13:03:55+00:00\",\"dateModified\":\"2024-10-29T14:03:50+00:00\",\"description\":\"Nesse artigo falamos sobre o famoso framework front-end Angular, abordando as principais caracter\u00edsticas de sua arquitetura!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/um-overview-sobre-o-framework-angular\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/um-overview-sobre-o-framework-angular\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/um-overview-sobre-o-framework-angular\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/10\\\/Um-overview-sobre-o-framework-Angular.jpg\",\"contentUrl\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/wp-content\\\/uploads\\\/2019\\\/10\\\/Um-overview-sobre-o-framework-Angular.jpg\",\"width\":1366,\"height\":768,\"caption\":\"tela roxa com overview sobre angular escrito logo da angular a direita e da geekhunter embaixo\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/um-overview-sobre-o-framework-angular\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mundo TI\",\"item\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/category\\\/mundo-ti\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Desenvolvimiento de software\",\"item\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/category\\\/mundo-ti\\\/desenvolvimiento-de-software\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Um overview sobre o framework Angular\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/\",\"name\":\"Blog de TI\",\"description\":\"Dicas para o RH e profissionais da \u00e1rea TI\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#organization\",\"name\":\"GeekHunter\",\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/icon-1.png\",\"contentUrl\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/icon-1.png\",\"width\":300,\"height\":300,\"caption\":\"GeekHunter\"},\"image\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/geekhunterbr\\\/\",\"https:\\\/\\\/x.com\\\/geekhunterbr\",\"https:\\\/\\\/www.instagram.com\\\/geekhunterbr\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/geekhunter-brasil\\\/\",\"https:\\\/\\\/www.youtube.com\\\/@GeekHunterOfficial\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#\\\/schema\\\/person\\\/14c8c974f81521499b5ca124c0f3edc2\",\"name\":\"Ricardo Calado\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1d2f3d974e10568ea969f4e2fef3796d5cd8badf94dc44659bd74dab1c63068a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1d2f3d974e10568ea969f4e2fef3796d5cd8badf94dc44659bd74dab1c63068a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1d2f3d974e10568ea969f4e2fef3796d5cd8badf94dc44659bd74dab1c63068a?s=96&d=mm&r=g\",\"caption\":\"Ricardo Calado\"},\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/author\\\/ricardo-calado\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Angular: Uma vis\u00e3o geral sobre o framework - Blog Geekhunter","description":"Nesse artigo falamos sobre o famoso framework front-end Angular, abordando as principais caracter\u00edsticas de sua arquitetura!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.geekhunter.com\/pt\/blog\/um-overview-sobre-o-framework-angular\/","og_locale":"pt_BR","og_type":"article","og_title":"Um overview sobre o framework Angular","og_description":"E a\u00ed, vamos falar sobre Angular? \ud83e\udd29 Quando decidimos utilizar uma tecnologia em um novo projeto, \u00e9 natural que uma das primeiras coisa que fa\u00e7amos seja","og_url":"https:\/\/www.geekhunter.com\/pt\/blog\/um-overview-sobre-o-framework-angular\/","og_site_name":"Blog Geekhunter","article_publisher":"https:\/\/www.facebook.com\/geekhunterbr\/","article_published_time":"2021-05-21T13:03:55+00:00","article_modified_time":"2024-10-29T14:03:50+00:00","og_image":[{"width":1366,"height":768,"url":"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/Um-overview-sobre-o-framework-Angular.jpg","type":"image\/jpeg"}],"author":"Ricardo Calado","twitter_card":"summary_large_image","twitter_creator":"@geekhunterbr","twitter_site":"@geekhunterbr","twitter_misc":{"Escrito por":"Ricardo Calado","Est. tempo de leitura":"9 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/um-overview-sobre-o-framework-angular\/#article","isPartOf":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/um-overview-sobre-o-framework-angular\/"},"author":{"name":"Ricardo Calado","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#\/schema\/person\/14c8c974f81521499b5ca124c0f3edc2"},"headline":"Um overview sobre o framework Angular","datePublished":"2021-05-21T13:03:55+00:00","dateModified":"2024-10-29T14:03:50+00:00","mainEntityOfPage":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/um-overview-sobre-o-framework-angular\/"},"wordCount":1313,"publisher":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#organization"},"image":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/um-overview-sobre-o-framework-angular\/#primaryimage"},"thumbnailUrl":"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/Um-overview-sobre-o-framework-Angular.jpg","articleSection":["Desenvolvimiento de software"],"inLanguage":"pt-BR"},{"@type":"WebPage","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/um-overview-sobre-o-framework-angular\/","url":"https:\/\/www.geekhunter.com\/pt\/blog\/um-overview-sobre-o-framework-angular\/","name":"Angular: Uma vis\u00e3o geral sobre o framework - Blog Geekhunter","isPartOf":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/um-overview-sobre-o-framework-angular\/#primaryimage"},"image":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/um-overview-sobre-o-framework-angular\/#primaryimage"},"thumbnailUrl":"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/Um-overview-sobre-o-framework-Angular.jpg","datePublished":"2021-05-21T13:03:55+00:00","dateModified":"2024-10-29T14:03:50+00:00","description":"Nesse artigo falamos sobre o famoso framework front-end Angular, abordando as principais caracter\u00edsticas de sua arquitetura!","breadcrumb":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/um-overview-sobre-o-framework-angular\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.geekhunter.com/pt/blog\/um-overview-sobre-o-framework-angular\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/um-overview-sobre-o-framework-angular\/#primaryimage","url":"https:\/\/www.geekhunter.com\/pt\/blog\/wp-content\/uploads\/2019\/10\/Um-overview-sobre-o-framework-Angular.jpg","contentUrl":"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2019\/10\/Um-overview-sobre-o-framework-Angular.jpg","width":1366,"height":768,"caption":"tela roxa com overview sobre angular escrito logo da angular a direita e da geekhunter embaixo"},{"@type":"BreadcrumbList","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/um-overview-sobre-o-framework-angular\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/www.geekhunter.com/pt/blog\/"},{"@type":"ListItem","position":2,"name":"Mundo TI","item":"https:\/\/www.geekhunter.com/pt/blog\/category\/mundo-ti\/"},{"@type":"ListItem","position":3,"name":"Desenvolvimiento de software","item":"https:\/\/www.geekhunter.com/pt/blog\/category\/mundo-ti\/desenvolvimiento-de-software\/"},{"@type":"ListItem","position":4,"name":"Um overview sobre o framework Angular"}]},{"@type":"WebSite","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#website","url":"https:\/\/www.geekhunter.com\/pt\/blog\/","name":"Blog de TI","description":"Dicas para o RH e profissionais da \u00e1rea TI","publisher":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.geekhunter.com/pt/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#organization","name":"GeekHunter","url":"https:\/\/www.geekhunter.com\/pt\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.geekhunter.com\/pt\/blog\/wp-content\/uploads\/2024\/10\/icon-1.png","contentUrl":"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2024\/10\/icon-1.png","width":300,"height":300,"caption":"GeekHunter"},"image":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/geekhunterbr\/","https:\/\/x.com\/geekhunterbr","https:\/\/www.instagram.com\/geekhunterbr\/","https:\/\/www.linkedin.com\/company\/geekhunter-brasil\/","https:\/\/www.youtube.com\/@GeekHunterOfficial"]},{"@type":"Person","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#\/schema\/person\/14c8c974f81521499b5ca124c0f3edc2","name":"Ricardo Calado","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/1d2f3d974e10568ea969f4e2fef3796d5cd8badf94dc44659bd74dab1c63068a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1d2f3d974e10568ea969f4e2fef3796d5cd8badf94dc44659bd74dab1c63068a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1d2f3d974e10568ea969f4e2fef3796d5cd8badf94dc44659bd74dab1c63068a?s=96&d=mm&r=g","caption":"Ricardo Calado"},"url":"https:\/\/www.geekhunter.com\/pt\/blog\/author\/ricardo-calado\/"}]}},"_links":{"self":[{"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/posts\/7565","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/users\/170"}],"replies":[{"embeddable":true,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/comments?post=7565"}],"version-history":[{"count":0,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/posts\/7565\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/media\/7569"}],"wp:attachment":[{"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/media?parent=7565"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/categories?post=7565"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/tags?post=7565"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}