SeouliteLab

[Vue.js] renderTracked: 컴포넌트 렌더링 추적 및 최적화 이해하기 본문

카테고리 없음

[Vue.js] renderTracked: 컴포넌트 렌더링 추적 및 최적화 이해하기

Seoulite Lab 2024. 4. 26. 08:22

 

1. 개요

Vue.js 3.0에서 도입된 renderTracked 훅은 컴포넌트 렌더링 과정을 추적하고 최적화하는 데 도움이 되는 새로운 라이프사이클 훅입니다. 이 훅을 사용하면 컴포넌트가 렌더링되는 동안 어떤 데이터 속성이 사용되는지 파악하여 불필요한 렌더링을 방지하고 성능을 향상시킬 수 있습니다.

2. renderTracked 훅 사용 예시

다음은 renderTracked 훅을 사용하는 예시입니다.

HTML
<template>
  <div>
    <h2>{{ title }}</h2>
    <p>{{ content }}</p>
  </div>
</template>

<script>
export default {
  name: 'MyComponent',
  data() {
    return {
      title: '제목',
      content: '내용',
    };
  },
  renderTracked(context) {
    // 렌더링 과정에서 사용되는 데이터 속성을 확인합니다.
    console.log('사용된 데이터 속성:', context.accessedKeys);
  },
};
</script>

<style scoped>
/* 스타일 정의 */
</style>
 

설명:

  • renderTracked 훅은 컴포넌트 렌더링 과정에서 호출됩니다.
  • 훅 내에서 context.accessedKeys 속성을 사용하여 렌더링 과정에서 사용된 데이터 속성 목록을 확인할 수 있습니다.
  • 이 예시에서는 렌더링 과정에서 사용된 데이터 속성을 콘솔에 출력합니다.

3. renderTracked 훅의 장점

renderTracked 훅을 사용하면 다음과 같은 장점을 얻을 수 있습니다.

  • 렌더링 최적화: 컴포넌트가 렌더링되는 동안 어떤 데이터 속성이 사용되는지 파악하여 불필요한 렌더링을 방지하고 성능을 향상시킬 수 있습니다.
  • 데이터 변경 감지: 데이터 속성이 변경되었을 때 컴포넌트를 렌더링해야 하는지 여부를 판단하는 데 도움이 됩니다.
  • 디버깅 용이: 컴포넌트 렌더링 과정에서 사용되는 데이터 속성을 확인하여 렌더링 문제를 디버깅하는 데 도움이 됩니다.

4. 주의 사항

  • renderTracked 훅은 Vue 3.0 이상 버전에서만 사용할 수 있습니다.
  • renderTracked 훅은 컴포넌트 렌더링 과정에서만 호출됩니다. 컴포넌트 렌더링 이외의 다른 작업에서는 사용할 수 없습니다.
  • renderTracked 훅은 렌더링 성능에 영향을 미칠 수 있으므로 사용 시 주의해야 합니다.

5. renderTracked 훅과 함께 사용할 수 있는 다른 훅

  • beforeUpdate: 컴포넌트 인스턴스가 업데이트되기 직전에 호출됩니다.
  • updated: 컴포넌트 인스턴스가 업데이트된 후에 호출됩니다.