App.vue
App.vue
이 문서에서는 Vue application에서 메인 페이지를 담당하는 App.vue
파일에 대해서 살펴본다.
vue 파일의 구조
.vue
확장자를 가지는 파일들은 다음 구조를 가진다.
template : 구현될 화면의 HTML
script : 구현될 화면에서 사용할 Vue component instance
style : 구현될 화면에서 사용할 style
template 생성 시 주의사항
template을 생성할 때에는 template 안에 반드시 한 개 이상의 태그가 존재해야 한다. 즉, template 영역은 비어있으면 오류로 감지된다.
script 생성 시 주의사항
script를 생성할 때에는 반드시 export default 항목을 정의해야 한다. 또한 eslint에서 사용하지 않는 변수의 선언 등을 오류로 간주하므로 이것이 싫다면 eslint 설정을 변경해야 한다. 해당 파일에서만 사용할 요소가 있다면 import 또는 require를 이용하여 불러올 수 있다.
style 생성 시 주의사항
style 생성 시 scoped를 추가하면 자동으로 고유번호가 data로 부여되어 현재 템플릿에만 적용되는 스타일이 생성된다. 하지만 scoped를 추가하지 않으면 전체에 영향을 미치는 스타일이 생성되므로 이용에 주의해야 한다.
기본 템플릿은 다음과 같다.
template
App.vue
파일의 템플릿 영역은 다음과 같이 작성되어 있다.
image
img 태그를 통해 /src/assets/
안에 있는 logo.png
를 불러와서 출력하는 코드이다.
jsconfig.json
파일에서 src에 대한 경로를 지정했기 때문에 다음과 같이 작성할 수 있다.
component
HelloWorld라는 Component를 사용하여 화면을 정의하고 있다.
이 태그는 HTML 표준 태그가 아니며, 내부에 정의된 Component이므로 script 영역에서 불러와서 사용하도록 설정이 되어 있어야 한다. script 영역 설명에서 다룬다.
script
App.vue
의 스크립트 영역은 다음과 같이 작성되어 있다.
import
이 문서에서 사용할 도구들을 불러온다. 현재 파일에서는 HelloWorld.vue
를 컴포넌트로 사용하기 위해 불러오도록 코드가 작성되어 있다.
HelloWorld.vue
에 작성된 export default 항목을 불러와 HelloWorld 이름으로 사용한다. 이후 생성될 Vue 컴포넌트 모듈에서 하위 컴포넌트로 등록한다.
instance
Vue component는 export를 통해 instance를 반환하도록 설정해야 한다.
코드에서 사용된 속성들은 다음과 같다.
name - Vue에 등록될 컴포넌트의 이름. Vue Devtools 등에서 확인할 수 있다.
components - 현재 컴포넌트에서 사용할 하위 컴포넌트를 등록하기 위한 공간
style
App.vue에는 scoped 스타일이 정의되어 있지 않고 전역 스타일로 #app 영역에 대한 스타일만 정의되어 있다. 따라서 모든 애플리케이션 화면에서 적용된다.
실행 후 개발자 도구를 확인해보면 전역 스타일로 설정된 것을 확인할 수 있다.
만약 style에 scoped 키워드를 추가하여 구현한다면 data-v 접두사가 현재 컴포넌트의 화면과 스타일에 추가되어 다른 컴포넌트 화면과 구분된다.
Last updated