<Do it! Vue.js ์ ๋ฌธ>์ ๊ธฐ๋ณธ์ผ๋ก ๋ฐฐ์ด ๋ด์ฉ์ ๋๋ค.
์ฐธ๊ณ ํ๋ฉด ์ข์ ๊ฒ์๋ฌผ
kr.vuejs.org/v2/guide/components.html
<๋ทฐ ํ๋ก์ ํธ ๊ตฌ์ฑ>
1. Single File Components ์ฒด๊ณ
.vue ํ์ผ๋ก ํ๋ก์ ํธ ๊ตฌ์กฐ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ์ (.vue ํ์ผ 1๊ฐ = ์ปดํฌ๋ํธ 1๊ฐ)
1) .vue ํ์ผ์ ๊ธฐ๋ณธ ๊ตฌ์กฐ
<template>
<!-- HTML ํ๊ทธ ๋ด์ฉ -->
</template>
<script>
export default{
//์๋ฐ์คํฌ๋ฆฝํธ ๋ด์ฉ
}
</script>
<style>
<!-- CSS ์คํ์ผ ๋ด์ฉ -->
</style>
ex) "์ปดํฌ๋ํธ๋ช .vue" ํ์ผ
<template>
<div>
<span>
<button>{{message}}</button>
</span>
</div>
</template>
<script>
export default{
data:{
message: 'click this button'
}
}
</script>
<style>
span{
font-size: 1.2em;
}
</style>
2. ์ปดํฌ๋ํธ ์์ฑํ๊ณ ๋ฑ๋กํ๊ธฐ
1) ์ปดํฌ๋ํธ ์์ฑ

- ํ๋ก์ ํธ ํด๋์ srcํด๋ ๋ฐ์ componentsํด๋ ์์ฑ
- componentsํด๋ ์์ "์ปดํฌ๋ํธ๋ช .vue"ํ์ผ๋ค์ ์ปดํฌ๋ํธ๋ณ๋ก ์์ฑํด์ค๋ค.
- .vueํ์ผ ์์ ์ฝ๋๋ ์๋์ ๊ฐ์ด ๋ชจ๋ ์์ฑํด์ค๋ค.
<template>
<div>header</div>
</template>
<script>
export default {
components: {}
};
</script>
<style></style>
2) ์ปดํฌ๋ํธ ๋ฑ๋ก
- ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉํ ์ปดํฌ๋ํธ๋ค์ ๋ชจ๋ ์ต์์ ์ปดํฌ๋ํธ์ธ App.vue์ ๋ฑ๋กํด์ผํ๋ค.
- src/App.vueํ์ผ์ ๊ธฐ์กด ์ฝ๋ ๋ด์ฉ์ ๋ชจ๋ ์ง์ฐ๊ณ ์๋์ ๊ฐ์ด ๋ฑ๋กํด์ฃผ๋ฉด ๋๋ค.
<template>
<div id="app">
<TodoHeader></TodoHeader>
<TodoInput></TodoInput>
<TodoList></TodoList>
<TodoFooter></TodoFooter>
</div>
</template>
<script>
//ํน์ ์ปดํฌ๋ํธ์์ ๋ค๋ฅธ ์์น์ ์๋ ์ปดํฌ๋ํธ์ ๋ด์ฉ ๋ถ๋ฌ์ค๊ธฐ
import TodoHeader from "./components/TodoHeader.vue";
import TodoInput from "./components/TodoInput.vue";
import TodoList from "./components/TodoList.vue";
import TodoFooter from "./components/TodoFooter.vue";
//์ง์ญ ์ปดํฌ๋ํธ ๋ฑ๋ก
export default {
components: {
TodoHeader: TodoHeader,
TodoInput: TodoInput,
TodoList: TodoList,
TodoFooter: TodoFooter
}
};
</script>
<style></style>
'๐ปWEB FrontEnd > ํ๋ ์์ํฌ Vue' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
vue์ ๋ฐ์์ฑ reactivity (0) | 2021.02.07 |
---|---|
Vuex (0) | 2021.02.06 |
Vue์ template์์ฑ (0) | 2020.07.04 |
๋ทฐ HTTP ํต์ (0) | 2020.07.02 |
Vue Router (0) | 2020.07.02 |