SeouliteLab

[Vue.js] 서버 사이드 렌더링 데이터 획득을 위한 onServerPrefetch() 메소드 본문

카테고리 없음

[Vue.js] 서버 사이드 렌더링 데이터 획득을 위한 onServerPrefetch() 메소드

Seoulite Lab 2024. 5. 10. 08:40
<template>
  <div>
    <p>{{ message }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      message: ''
    };
  },
  async onServerPrefetch() {
    // 서버 사이드 렌더링에서 호출됨
    this.message = await this.fetchData();
    // 필요한 작업 수행
  },
  methods: {
    async fetchData() {
      // 데이터를 가져오는 비동기 함수
      return new Promise(resolve => {
        setTimeout(() => {
          resolve('서버 사이드 렌더링 데이터');
        }, 1000);
      });
    }
  }
};
</script>

Vue.js에서는 서버 사이드 렌더링 (SSR)을 지원하기 위해 onServerPrefetch() 메소드를 제공합니다. 이 메소드는 서버에서 Vue 컴포넌트를 렌더링할 때 호출되는 훅으로, 서버에서 미리 데이터를 가져와 컴포넌트를 렌더링하기 전에 데이터를 준비할 수 있습니다.

위 예제는 onServerPrefetch() 메소드를 사용하여 서버 사이드 렌더링 데이터를 획득하는 Vue 컴포넌트를 보여줍니다.

  1. onServerPrefetch() 메소드 내부에서는 서버 사이드 렌더링에서 호출되는 비동기 함수를 정의합니다.
  2. 이 예제에서는 fetchData() 메소드를 사용하여 서버 사이드 렌더링 데이터를 가져옵니다.
  3. fetchData() 메소드는 비동기로 데이터를 가져오는 역할을 합니다. 예를 들어 AJAX 요청을 보내거나 데이터베이스에서 데이터를 쿼리할 수 있습니다.
  4. 서버 사이드 렌더링 데이터를 가져온 후에는 필요한 작업을 수행할 수 있습니다. 이 예제에서는 가져온 데이터를 message 변수에 할당하여 화면에 표시합니다.

onServerPrefetch() 메소드를 사용하면 서버 사이드 렌더링 시에 필요한 데이터를 미리 가져와 컴포넌트를 렌더링하기 전에 준비할 수 있어서 페이지 로딩 시간을 단축하고 사용자 경험을 향상시킬 수 있습니다.