프론트엔드/Vue

Vue 3에서 컴포넌트 내에서 사용할 수 있는 다양한 옵션 및 메서드

0-SIK 2024. 5. 14. 22:22
728x90

Vue 3에서 컴포넌트 내에서 사용할 수 있는 다양한 옵션 및 메서드

Vue 3에서는 Composition API와 Options API를 모두 지원하며, 여기서는 주로 Options API를 중심으로 설명하겠습니다.

 

1. data : 컴포넌트의 상태를 정의하는 데 사용됩니다. 객체를 반환하는 함수로 정의됩니다.

export default {
  data() {
    return {
      message: 'Hello, Vue 3!'
    };
  }
};

 

2. methods : 컴포넌트 내에서 사용할 메서드를 정의합니다. 주로 이벤트 핸들러로 사용됩니다.

export default {
  data() {
    return {
      count: 0
    };
  },
  methods: {
    increment() {
      this.count++;
    }
  }
};

 

3. computed : 종속된 상태가 변경될 때 자동으로 다시 계산되는 계산 속성을 정의합니다.

export default {
  data() {
    return {
      number: 5
    };
  },
  computed: {
    squared() {
      return this.number * this.number;
    }
  }
};

 

4. watch : 특정 데이터 속성이 변경될 때 실행할 반응형 콜백을 정의합니다.

export default {
  data() {
    return {
      count: 0
    };
  },
  watch: {
    count(newVal, oldVal) {
      console.log(`Count changed from ${oldVal} to ${newVal}`);
    }
  }
};

 

5.created : 컴포넌트 인스턴스가 생성된 후 호출되는 생명주기 훅입니다.

export default {
  created() {
    console.log('Component has been created');
  }
};

 

6. mounted : 컴포넌트가 마운트되고 DOM에 삽입된 후 호출되는 생명주기 훅입니다.

export default {
  mounted() {
    console.log('Component has been mounted');
  }
};

 

7. updated : 데이터가 변경되어 DOM이 갱신된 후 호출되는 생명주기 훅입니다.

export default {
  updated() {
    console.log('Component has been updated');
  }
};

 

8. destroyed (Vue 3에서는 unmounted로 변경) : 컴포넌트가 파괴된 후 호출되는 생명주기 훅입니다.

export default {
  unmounted() {
    console.log('Component has been destroyed');
  }
};

 

9. props : 부모 컴포넌트로부터 전달받는 데이터를 정의합니다.

export default {
  props: {
    title: String
  }
};

 

10. emits : 컴포넌트에서 발생시킬 수 있는 커스텀 이벤트를 정의합니다.

export default {
  emits: ['increment']
};

 

11. setup (Composition API) : Composition API의 핵심 메서드로, 컴포넌트의 초기 상태와 메서드를 정의할 수 있습니다.

import { ref } from 'vue';

export default {
  setup() {
    const count = ref(0);
    const increment = () => {
      count.value++;
    };

    return {
      count,
      increment
    };
  }
};

 

12. provide와 inject : 조상 컴포넌트와 자손 컴포넌트 간에 데이터를 주고받기 위해 사용됩니다.

// 조상 컴포넌트
export default {
  provide() {
    return {
      message: 'Hello from ancestor'
    };
  }
};

// 자손 컴포넌트
export default {
  inject: ['message']
};
728x90