Angular 컴포넌트는 W3C 표준인 웹 컴포넌트 기술을 기반으로 함. 이 웹 컴포넌트는 HTML, CS, JS를 하나의 단위로 묶어주는 기술.
웹 컴포넌트의 요소
HTML 템플릿
컴포넌트의 UI를 표현하는 영역. 재사용 가능하다는 특징.
템플릿 호출
링크 엘리먼트를 이용해 호출
<link rel="import" href="template.html">
쉐도우 DOM
쉐도우 DOM은 문서 DOM 외부에 존재하기 때문에 문서 DOM에서 정의한 스타일이나 이벤트가 적용되지 않고 캡슐화됌.
1
2
3
4
5
6
7
8
9
10// 쉐도우 DOM으로 <some-component> 와 같이 상세내용은 캡슐화되어 보이지않음.
({
selector: 'some-component',
template: `
<h1>I am Shadow DOM!</h1>
<h2>Nice to meet you :)</h2>
<ng-content></ng-content>
`;
})
class SomeComponent { /* ... */ }1
2
3
4
5
6
7
8
9
10
11
12// DOM으로 캡슐화되지 않아, 사용자가 볼 수 있음.
({
selector: 'another-component',
directives: [SomeComponent],
template: `
<some-component>
<h1>Hi! I am Light DOM!</h1>
<h2>So happy to see you!</h2>
</some-component>
`
})
class AnotherComponent { /* ... */ }커스텀 엘리먼트
이름을 임의로 정의해서 만든 엘리먼트
<hello-button></hello-button>
앵귤러2에서는 웹 컴포넌트를 활용하여 html의
컴포넌트(Component) 생성
1 | import { Component } from '@angular/core'; |
- 정의
@Component 장식자를 이용해 정의.
- 지시자
selector 속성에 컴포넌트를 등록하면 html파일이나, 다른 컴포넌트에
형식으로 사용할 수 있다.
- 템플릿속성, 스타일 속성
template, templateUrl : 내부, 외부 파일에 HTML과 템플릿 문법을 이용해 템플릿 정의.
style, styleUrls : 내부, 외부 CSS 파일에 템플릿 스타일 적용.
Reference
쉽고 빠르게 배우는 Angular2 프로그래밍 - 정진욱