Vue.js 를 배워보자/2. Vue.js 기본 개념

컴포넌트 생성 및 사용

_Blue_Sky_ 2024. 10. 4. 18:44
728x90
728x90

Vue.js 컴포넌트 생성 및 사용: 상세 가이드

소개

Vue.js의 강력한 기능 중 하나인 컴포넌트는 독립적인 코드 재사용 단위입니다. 컴포넌트를 효과적으로 사용하면 복잡한 UI를 작은 조각으로 나누어 관리하고 재사용할 수 있어 개발 효율성을 높이고 코드 유지보수를 용이하게 합니다. 이 글에서는 Vue.js 컴포넌트 생성부터 사용 방법까지 상세하게 다루어, 여러분이 Vue.js 개발에 능숙해지는 데 도움을 드리고자 합니다.

컴포넌트 생성

Vue.js에서 컴포넌트를 생성하는 방법은 크게 두 가지가 있습니다.

1. Single File Component (SFC):

  • 장점: 템플릿, 스크립트, 스타일을 하나의 .vue 파일에서 관리하여 가독성이 좋고, 컴포넌트 간의 의존성 관리가 편리합니다.
  • 구조:
    <template>
      </template>
    
    <script>
    export default {
      // 컴포넌트 로직
    }
    </script>
    
    <style>
    /* 스타일 영역 */
    </style>
    
     
728x90

2. JavaScript 객체:

  • 장점: 다른 JavaScript 객체와의 통합이 쉽고, 간단한 컴포넌트를 빠르게 생성할 수 있습니다.
  • 예시:
    const MyComponent = {
      template: '<div>Hello, world!</div>'
    }
    
     

컴포넌트 등록

생성한 컴포넌트를 사용하려면 Vue 인스턴스에 등록해야 합니다.

1. 전역 등록:

  • Vue.component() 메서드를 사용하여 모든 Vue 인스턴스에서 사용 가능하도록 등록합니다.
  • 예시:
    Vue.component('my-component', MyComponent)
    
     

2. 로컬 등록:

  • 특정 Vue 인스턴스 내에서만 사용하도록 등록합니다.
  • 예시:
    new Vue({
      el: '#app',
      components: {
        MyComponent
      }
    })
    
     

컴포넌트 사용

등록된 컴포넌트는 HTML 템플릿에서 custom tag 형태로 사용할 수 있습니다.

<div id="app">
  <my-component></my-component>
</div>
 

컴포넌트의 속성과 메서드

  • props: 부모 컴포넌트에서 자식 컴포넌트로 데이터를 전달하는 데 사용됩니다.
  • data: 컴포넌트 내부 데이터를 관리합니다.
  • methods: 컴포넌트 내부에서 사용할 메서드를 정의합니다.
  • computed: 계산된 속성을 정의하여 데이터를 가공합니다.
  • watch: 데이터 변화를 감지하고 특정 작업을 수행합니다.
  • lifecycle hooks: 컴포넌트의 생성, 업데이트, 삭제 등 각 단계에서 실행되는 함수입니다.

예시:

<template>
  <div>
    <p>현재 카운트: {{ count }}</p>
    <button @click="increment">증가</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      count: 0
    }
  },
  methods: {
    increment() {
      this.count++
    }
  }
}
</script>
 

슬롯 (Slots)

부모 컴포넌트에서 자식 컴포넌트의 내용을 커스터마이징할 수 있는 기능입니다.

<my-component>
  <p>슬롯 내용</p>
</my-component>

<template>
  <div>
    <slot></slot>
  </div>
</template>
 

컴포넌트 간 통신

  • props: 부모에서 자식으로 데이터 전달
  • events: 자식에서 부모로 이벤트 발생
  • Vuex: 전역 상태 관리
  • provide/inject: 조상 컴포넌트에서 후손 컴포넌트로 데이터 전달

컴포넌트 스타일링

  • scoped 스타일: 컴포넌트 내부 스타일만 적용
  • CSS Modules: 스타일 클래스명 충돌 방지
  • CSS Preprocessors: Sass, Less 등을 사용하여 스타일 관리

컴포넌트 재사용

  • Mixins: 여러 컴포넌트에서 공통적으로 사용하는 기능을 모듈화
  • Custom directives: 특정 기능을 구현하기 위한 지시어 생성

결론

Vue.js 컴포넌트는 복잡한 UI를 효율적으로 관리하고 재사용성을 높이는 데 필수적인 기능입니다. 이 글에서 다룬 내용을 바탕으로 여러분만의 Vue.js 애플리케이션을 개발해 보세요.

 

728x90
728x90

'Vue.js 를 배워보자 > 2. Vue.js 기본 개념' 카테고리의 다른 글

컴포넌트 슬롯  (0) 2024.10.04
컴포넌트 props와 events  (0) 2024.10.04
데이터 감시자  (0) 2024.10.04
데이터 계산 속성  (0) 2024.10.04
데이터 선언 및 변경  (0) 2024.10.04