이 질문에는 이미 답변이 있습니다.
나는 프레임 워크에서이 두 개념의 차이점을 이해하기 위해 애 쓰고있다.
AngularJS 1.x의 지시문이 무엇인지 잘 알고 있으며 Angular 2의 구성 요소와 지시문은 모두이 개념과 매우 유사합니다.
모든 구성 요소를보기가있는 지시문으로 생각할 수 있습니다.
구성 요소에만보기가 있다는 사실에 따라 다음과 같은 몇 가지 결과가 있습니다.
directives
구성 요소 자체 및 루트 인 전체 하위 트리에서 사용됩니다.pipes
구성 요소와 전체 서브 트리의 루트에 사용됩니다.viewEncapsulation
그들은 지시어와 달리 관점을 가질 수 있기 때문에ElementInjector
지정된 구성 요소의 경우Host
주사기.각도 2에서 구성 요소를 정의하는 고전적인 방법은 다음과 같습니다.
@Component({
selector: '...',
// ...
})
@View({
template: '...'
})
class ComponentCtrl {...}
그만큼@View
데코레이터는 주어진 컴포넌트에 대한 뷰 정의를 도와줍니다. 앵귤러 팀은 하나의 구성 요소가 여러 뷰 정의 (구성 요소가 작동 할 각 플랫폼마다 하나씩)를 가질 수 있기 때문에 초기에 별도의 데코레이터로 외부화되었습니다 (위 예제와 마찬가지로).
최근이 데코레이터가 삭제되었으므로 현재 다음을 사용하여 구성 요소를 정의 할 수 있습니다.
@Component({
selector: '...',
template: '...',
//...
})
class ComponentCtrl {...}
이 방법을 사용하면 동일한 결과를 얻을 수 있지만 타이핑 횟수는 적습니다. 내부적으로 Angular 2는 사용자가 설정 한 속성을 기반으로 적절한보기 메타 데이터를 추가합니다.@Component
장식 자.