Angular

#03 Tutorial (Multiple Components)

코딩하는 Jay 2019. 12. 9. 03:00
반응형

 Naming Convention
 Component 파일은 '.component'로 파일이름이 끝나야한다. 그리고 소문자와 dash('-')로 구성된 이름을 사용한다.
ex) 

hero-detail.component.ts

 

- component 파일의 구성은 다음과 같다.

import { Component, Input } from '@angular/core';

@Component({
  selector: 'my-hero-detail',
  template: `
    <div *ngIf="hero">
      <h2>{{hero.name}} details!</h2>
      <div><label>id: </label>{{hero.id}}</div>
      <div>
        <label>name: </label>
        <input [(ngModel)]="hero.name" placeholder="name"/>
      </div>
    </div>
  `
})
export class HeroDetailComponent {
}

 

1. Component와 Input을 import한다.
2. @Component 키워드를 사용해서 Component의 element를 나타내는 selector 이름을 명시한다.
3. template을 정의한다.
4. 다른 Component들이 용할 수 있게 class를 export 한다.


- import
hero.ts 파일에서 Hero를 import한다.

import { Hero } from './hero';

 

- input 선언

  @Input()
  hero: Hero;

 

- target은 []로 감싸고 = 왼편에 둔다. hero가 input으로 선언되어 있을 때만 가능하다. 그렇지 않으면, 에러를 발생시킨다.
- selectedHero가 설정되기 전까지 그려지지 않는다.

<my-hero-detail [hero]="selectedHero"></my-hero-detail>

 

- AppModule의 declarations에 모든 컴포넌트들을 배열로 선언한다.

@NgModule({
  imports: [
    BrowserModule,
    FormsModule
  ],
  declarations: [
    AppComponent,
    HeroDetailComponent
  ],
  bootstrap: [ AppComponent ]
})
export class AppModule { }

 

- 우리가 선언한 컴포넌트를 selector에 사용한 이름으로 사용하면 된다.

<my-hero-detail></my-hero-detail>

 

반응형

'Angular' 카테고리의 다른 글

#02 Tutorial (ngIf, ngFor)  (0) 2019.12.08
#01 Tutorial (ngModel)  (0) 2019.12.07
[Study AngularJS] 앵귤러 아키텍처  (0) 2017.08.25