Giter VIP home page Giter VIP logo

curso-angular2's Introduction

Treinamento de Angular 2+

Ambiente de Desenvolvimento

Requisitos

    $ npm install -g @angular/cli
    $ npm install -g typescript

Componentes

Encapsula :

  • Template
  • Dados a ser mostrado na tela
  • Comportamento da VIEW

Serviço

Responsável pela comunicação dos componentes com o backend e injeção de classes.

Roteamento

Responsável pela navegação.

Diretiva

São uma form de passar instruções para o template.

  • *ngIf : Mesmo comportamento do if, mas para o template. Não recomentado para mostrar e esconder muitos blocos, utilizar hidden nestes casos.
  • ngSwitch e *ngSwitchCase : Funciona como um bloco de switch dentro do template.
  • *ngFor : Laço de repetição no template para iterar um array.
  • ngClass : Mesmo comportamento de class bind. Deixando mais legivel quando tem várias classes.
  • ngStyle : Mesmo comportamento de stle bind. Deixando mais legivel quando tem várias styles.
  • ng-content: Serve para renderizar um conteúdo passado no template para o outro.

Módulos

Ajuda a organizar a aplicação e a modularizar.

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
  • declarations : Todos os componentes, diretivas, factory ou pipe do meu módulo.
  • imports : Módulos importados para ser usado no meu módulos atual ou dentro de algum outro component.
  • providers : Serviços disponiveis para serem utilizados nos componentes declarados no módulo.
  • bootstrap : Encontrado somente no módulo raiz do projeto, indica qual componente deve ser instânciado ao ser executada a aplicação (container).
  • exports : Define quais componenetes do módulos vão ficar visível para outros módulos.

Templates

Contém os códigos html para ser utilizados nos componentes.

  • No template pode ser definido variáveis, basta colocar dentro da sua tag #nomeVar, exemplo :
    <input type="text" #valorInpur>

Data Binding

É a forma de associar informações do component para o template e vice-versa.

  • Interpolation : {{ valor }} onde valor é um objeto do componente.
  • Property binding : [propriedade]="valor".
  • Two Way Data Binding : Valor do template e do componente atualizados ao mesmo tempo. [(ngModel)]=propriedade, para utilizar precisa importar o FormsModule.
  • Class e Style Binding : Uma forma de Property Binding para css.
  • Event Binding : Binding de eventos, para fazer o binding se usa os parenteses : (evento).
  • Input/Output : Serve para passar um valor para o compinente. Para Declarar que a variável se trata de um Input/Output basta coloca @Input ou @Output na sua declaração.
  • Acessando DOM : Se utilizada o decorator @ViewChild('') em uma variável do tipo HTMLElement. Dentro do ViewChild deve se passar como parâmetroo nome da variável declarada no template : @ViewChild('minhaVar').

Comandos do Angular CLI

    $ ng lint

Escaneia o proejeto verificando as boas práticas do Angular.

    $ ng test

Executa os teste unitários com Jasmine.

    $ ng e2e

Executa os testes de integração/carregamento de dados com e2e do Protractor.

Criando projeto com o CLI

    $ ng new nome-projeto

Assim o CLI vai criar o projeto e baixar todas as depedências do npm. Para rodar o projeto no navegador, va ate a pasta do seu projeto e execute :

    $ ng serve

Criar componentes com o CLI

    $ ng g component meu-component

ou

    $ ng g c meu-component

Criar módulos com o CLI

    $ ng g module meu-modulo

ou

    $ ng g m meu-modulo

Criar serviços com o CLI

    $ ng g service meu-servico

ou

    $ ng g s meu-servico

Criar diretivas com o CLI

    $ ng g diretive minha-diretiva

ou

    $ ng g d minha-diretiva

Fazendo o Build do projeto

Build de desenvolvimento

É gerado o build dentro da pasta /dist/. Serve para tester a aplicação e debugar.

    $ ng build

ou

    $ ng build --dev

Build de produção

É gerado o build dentro da pasta /dist/. Arquivos minificados e ofuscados.

    $ ng build --prod

Usando libs externas

Exemplo Bootstrap:

    $ npm install --save bootstrap@next

Adicionar os arquivos necessários no .angular-cli.json, conforme exemplo :

    "styles": [
        "../node_modules/bootstrap/dist/css/bootstrap.css",
        "styles.css"
      ],
      "scripts": [
        "../node_modules/jquery/dist/jquery.js",
        "../node_modules/bootstrap/dist/js/bootstrap.js"
      ],

Apenas arquivos de fonte que são importados diretamente no arquivo index.html.

curso-angular2's People

Contributors

andretimm avatar douglassteuernagel avatar

Stargazers

Eduardo Gabriel avatar

Watchers

James Cloos avatar  avatar Eduardo Gabriel avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.