728x90
반응형
뷰에서는 복잡한 구조를 보다 심플하고 유연하게 제공하기 위해 컴포넌트, 슬롯, 데이터 공유 기술을 제공하고 있다.
유연하고, 모듈화된 구조로 개발하고 관리하기 좋다. 코드의 재사용성과 유지보수성 향상도 가능하다.
컴포넌트(Componet)
- 자바스크립트 기반 프레임워크에서의 애플리케이션을 구성하고 관리하는 방식.
- 특정 기능이나 작업을 독립적으로 수행하기 위한, 논리적으로 구분된 코드 단위.
컴포넌트 기반 아키텍처(CBA, Component-Based Architecture)
- 한 웹 어플리케이션을 여러 컴포넌트로 구분해, 페이지 단위가 아니라 컴포넌트 단위로 설계하는 방식.
- Vue.JS --> 컴포넌트 기반 아키텍처
컴포넌트 기반 아키텍처 설계 방식의 장점
- 재사용성(reusability) : 컴포넌트를 같은 기능이나 작업이 필요한 곳에서 재사용 가능.
- 독립성(independence) : 다른 컴포넌트에 영향을 주지 않고 특정 컴포넌트만 독립적으로 수정 및 교체가 가능.
- 모듈성(modularity) : 웹 어플리케이션을 개별 단위로 구분하기 때문에 복잡성이 줄어듦.
- 확장성(extensible) : 컴포넌트에서 구성 요소를 추가하거나 수정해 새로운 동작이나 기능 제공.
- 캡슐화(encapsulation) : 내부의 복잡성을 숨기고, 단순하게 기능만 사용할 수 있는 인터페이스 제공. 컴포넌트의 내부 로직이나 상태 처리 로직을 알지 못해도 컴포넌트를 이용하여 화면을 구성할 수 있다.
컴포넌트 네이밍 컨벤션
- 두 단어 이상으로 조합하는 파스칼 케이스를 권장
- ex) PaymentList, UserInfo
컴포넌트 1개를 생성했고, 만든 컴포넌트(FristChie.vue)를 뷰에서 사용하려면 컴포넌트 등록이 필요하다.
등록하는 방법 2가지
- 전역등록(global)
- 컴포넌트를 뷰 app의 모든 곳에서 사용할 수 있다.
- src/main.js에서 app.component()로 등록한다.
import { createApp } from 'vue'
import App from './App.vue'
import FirstChild from '@/components/FirstChild.vue'
import SecondChild from './components/SecondChild.vue';
import ThirdChild from './components/ThirdChild.vue';
// createApp(App).mount('#app')
const app = createApp(App);
app.component('FirstChild', FirstChild);
app.component('SecondChild', SecondChild);
app.component('ThirdChild', ThirdChild);
app.mount('#app');
- 지역등록(local)
- src/App.vue의 script 태그에 등록한다.
<script>
import FirstChild from './components/FirstChild.vue';
import LocalChild from './components/LocalChild.vue';
import SecondChild from './components/SecondChild.vue';
import ThirdChild from './components/ThirdChild.vue';
//local component 등록
export default{
components :{
LocalChild,
}
}
</script>
<template>
<FirstChild></FirstChild>
<SecondChild></SecondChild>
<ThirdChild></ThirdChild>
<LocalChild></LocalChild>
</template>
<style scoped>
h1{
color: black;
}
p{
color: black;
}
</style>
ㅁㄴㅇㅁㄴㅇㅁ
728x90
반응형
'Front' 카테고리의 다른 글
Vue component에 속성과 이벤트 정의 (0) | 2024.10.16 |
---|---|
Vue 컴포넌트 생명주기 이해하기 (2) | 2024.10.16 |
Vue.JS로 Calculator 만들어보기 (0) | 2024.10.16 |
Vue 폼 다루기 (6) | 2024.10.15 |
Vue 이벤트 다루기 (4) | 2024.10.15 |