Component
W3C 표준인 웹 컴포넌트 기술을 기반으로 HTML, CS, JS를 하나의 단위로 묶어주는 기술로, 앱을 구성하는 요소나 로직을 말함.
Decorator
Decorator는 주로 클래스, 서비스, 타입, 멤버변수 등을 ‘장식’하는 역할.
- 클래스 앞에
@Component
를 해주면 그 클래스는 컴포넌트가 됌. - 변수 앞에
@Input
를 해주면 외부로 부터 값을 받음 - 변수 앞에
@output
를 해주면 외부로 값을 보냄.
Decorator는 Typescript의 실험적인 구문으로, tsconfig.json
의 experimentalDecorators" : true
를 설정하면 사용할 수 있음(ionic-cli 자동셋팅)
Ionic2에서는 Typescript의 일부 Decorator만 사용 가능, 앵귤러와도 약간 다름.
ex) 앵귤러의 decorations 등을 아이오닉에서는 사용 불가
Ionic의 컴포넌트
@Component 데코레이터
로 장식된 클래스를 컴포넌트라고 통칭함.
메타데이터
메타에디터 : @Component
에는 하나의 객체 파라미터를 전달할 수 있음 이를 메타데이터라고 함.
1 | ({ |
- app.component.ts
앱이 최초 실행되는 위치이다.
1 | import { Component } from '@angular/core'; |
@Component의 메타데이터에, selector
가 없는 대신 디폴트로 ion-app
이 사용된다.
[root]
는 DOM 속성으로, 어떤 페이지가 RootPage 인지 표시.
#은 참조변수의 의미이다. 참조변수가 #content이라고 선언돼 있을때 root 페이지를 참조하려면 과 같이 접근한다.
- home.ts
앱 컴포넌트에서 참조한 HomePage
1 | import { Component } from '@angular/core'; |
- app.module.ts
어떤 페이지, 서비스를 사용하는지, 어떤 컴포넌트가 루트 컴포넌트인지.
1 | ... |
@NgModule을 통해 AppModule을 장식
declarations : 사용할 컴포넌트들 등록
imports: [ IonicModule.forRoot(MyApp) ] : 루트 컴포넌트 등록(MyApp)
entryComponents : 페이지 컴포넌트를 등록.
Reference
https://www.youtube.com/watch?v=zp3goVaR8Vg&list=PLAiXlfcSCXYTA8k8AQX0sdRtvpOGkY7yq&index=9