VUE는 UI 개발을 위한 자바스크립트 프레임워크이다. HTML, CSS, JS를 기반으로 단순하거나 복잡한 UI를 효율적으로 개발하는 데에 도움을 준다.
컴포넌트란, UI(HTML, CSS, JS)를 재사용할 수 있도록 정의한 것을 말한다. 이렇게 컴포넌트 단위로 UI 개발을 하면 코드를 깔끔하게 유지할 수 있으며 불필요한 코드 중복을 줄일 수 있다.
1 Step. 컴포넌트 정의 => 2 Step. 컴포넌트 등록 => 3 Step. 컴포넌트 사용
컴포넌트 정의는 두가지 방법으로 할 수 있다 '문자열 템플릿 방식'과 'SFC(Single File Component) 방식'
export default {
data() {
return {
name: '홍길동'
}
},
template: `
<article class='box'>
<div class='name'>{{ name }}</div>
</article>
`
}
SFC는 template, script, style로 크게 세가지로 구성되어 있다.
<template>
<article class='box'>
<div class='name'>{{ name }}</div>
</article>
</template>
<script>
export default {
data() {
return {
name: '홍길동'
}
}
}
</script>
<style>
</style>
실무에서는 문자열 템플릿방식보다는 SFC 방식을 주로 사용한다.
컴포넌트 등록도 어디에서 사용하냐에 따라 두가지 등록 방식이 있다.
const app = createApp({...});
app.component('MyName', MyName);
Vue 인스턴스의 components 속성 안에 정의하자. 그러면 지역 등록이 된다.
const app = createApp({
components: {
MyName: MyName
}
})
PascalCase로 등록된 컴포넌트는 PascalCase, kebab-case 둘다 사용이 가능하다.
kebab-case로 등록된 컴포넌트는 kebab-case로만 사용 가능하다.