🖥Frontend/Vue.js
vue.js 프로젝트 소개 및 컴포넌트 설계 방법
반응형
vue.js todo app
vue 프로젝트 src 내부 안에 components 라는 폴더를 하나 만들어둔다.
- VS code 에서 Vetur 플러그인을 사용하면 편안하게 vue 코딩이 가능하다.
TodoHeader.vue
파일 생성
<template>
<!-- HTML -->
<div>
header
</div>
</template>
<script>
export default {
name: "TodoHeader.vue"
// js script
}
</script>
<style scoped>
/* css */
</style>
TodoInput.vue
<template>
<div>
input
</div>
</template>
<script>
export default {
name: "TodoInput"
}
</script>
<style scoped>
</style>
두 개의 컴포넌트를 만들었다. 두 차이는 간단한 text 차이밖에 없고, 컴포넌트는 항상 템플릿 안에 HTML 태그는 하나만 있어야한다.
컴포넌트 등록방법은 일단 기본 프로젝트 생성이 구성된 App.vue 내부의 코드를 정리한다.
App.vue
<template>
<div id="app">
</div>
</template>
<script>
export default {
}
</script>
<style lang="scss">
</style>
컴포넌트 등록방법
<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'
// <script> 태그 바로 안쪽에 import 하면된다. 형식은
// import Component이름(컴포넌트 태그명) from '컴포넌트 경로'
export default{
}
</script>
<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>
컴포넌트 태그명은 import 하면서 지정한 이름이 컴포넌트 태그명이다.
components에서 컴포넌트 등록할 때 파스칼 기법(TodoHeader 단어의 첫 글자는 대문자)으로 권장하지만,
template태그에서 컴포넌트를 사용할 때는 케밥 기법(todo-header)으로 권장하고 있다.
하지만 개인 선호에 따라 스타일 가이드가 있어서 파스칼 기법으로 해도 문제가 발생하지 않는다.
npm run serve
또는 npm run dev
를 통해 서버를 실행한 뒤 개발자 모드로 잘 표현되는지와 컴포넌트가 잘 등록이 됐는지 확인한다.
반응형
'🖥Frontend > Vue.js' 카테고리의 다른 글
Vue2 - 더 이상 믹스인을 사용하면 안됩니다. (0) | 2022.07.19 |
---|---|
Vue.js 3.6 렌더링 / 3.7 이벤트 핸들링 (0) | 2021.07.26 |
Vue.js 파비콘, 아이콘, 폰트, 반응형 태그 설정 / 컴포넌트 구현하기 (0) | 2021.07.26 |
1. Vue.js - book - 기초 (0) | 2021.07.23 |
Vue.js (0) | 2021.07.22 |
댓글