Vue.js 를 배워보자

Nuxt 설치 및 특징: 실용적인 예제와 함께 깊이 있게 알아보기

_Blue_Sky_ 2024. 11. 21. 22:54
728x90
728x90

Nuxt.js는 Vue.js 생태계에서 빠르게 성장하고 있는 프레임워크로, 서버 사이드 렌더링(SSR)과 정적 사이트 생성(SSG)을 지원하여 Vue.js 개발을 더욱 편리하게 만들어줍니다. 본 글에서는 Nuxt.js 설치 과정부터 다양한 특징, 그리고 실제 프로젝트에서 활용할 수 있는 샘플 예제까지 상세하게 다루어, Nuxt.js를 처음 접하는 개발자도 쉽게 이해하고 활용할 수 있도록 돕겠습니다.

 

728x90

Nuxt.js 설치하기

Nuxt.js를 설치하기 위해서는 Node.js와 npm(또는 yarn)이 설치되어 있어야 합니다. 터미널에서 다음 명령어를 실행하여 새로운 Nuxt.js 프로젝트를 생성할 수 있습니다.

npx create-nuxt-app <프로젝트 이름>

프로젝트 생성 과정에서 다양한 옵션을 선택할 수 있으며, 기본 설정을 그대로 사용하여 빠르게 프로젝트를 시작할 수도 있습니다.

Nuxt.js의 주요 특징

  • 서버 사이드 렌더링(SSR): 초기 페이지 로딩 속도를 향상시키고 검색 엔진 최적화(SEO)에 유리합니다.
  • 정적 사이트 생성(SSG): 빠른 로딩 속도와 높은 보안성을 요구하는 프로젝트에 적합합니다.
  • 파일 기반 라우팅: 컴포넌트를 폴더 구조로 관리하여 라우팅 설정을 간소화합니다.
  • 자동 코드 분할: 불필요한 코드 로딩을 방지하여 애플리케이션 성능을 향상시킵니다.
  • 다양한 모듈 지원: Vuex, Axios, Vuetify 등 다양한 Vue.js 생태계 모듈을 손쉽게 통합할 수 있습니다.
  • 커뮤니티와 생태계: 활발한 커뮤니티와 풍부한 문서를 통해 빠르게 문제를 해결하고 학습할 수 있습니다.

실용적인 예제: 간단한 블로그 만들기

Nuxt.js를 이용하여 간단한 블로그를 만들어 보겠습니다. 먼저, pages 폴더에 포스트 목록 페이지인 index.vue 파일과 개별 포스트 페이지인 _slug.vue 파일을 생성합니다.

<template>
  <div>
    <h1>포스트 목록</h1>
    <ul>
      <li v-for="post in posts" :key="post.id">
        <nuxt-link :to="{ name: 'post', params: { slug: post.slug } }">{{ post.title }}</nuxt-link>
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  async asyncData() {
    const posts = await $fetch('/api/posts');
    return { posts };
  }
}
</script>
 
 
 
728x90

  

<template>
  <div>
    <h1>{{ post.title }}</h1>
    <div v-html="post.content"></div>
  </div>
</template>

<script>
export default {
  async asyncData({ params }) {
    const post = await $fetch(`/api/posts/${params.slug}`);
    return { post };
  }
}
</script>
 

위 예제에서 asyncData 메서드를 이용하여 서버에서 포스트 데이터를 가져와 컴포넌트에 전달합니다. nuxt-link 컴포넌트를 사용하여 다른 페이지로 이동할 수 있습니다.

더 나아가기

Nuxt.js는 Vue.js 개발 생산성을 높이고 다양한 기능을 제공하여 더욱 효율적인 웹 애플리케이션 개발을 가능하게 합니다. 본 글을 통해 Nuxt.js의 기본적인 개념과 활용 방법을 익혔으니, 다양한 예제를 통해 직접 실습하며 더욱 깊이 있는 학습을 해보시기 바랍니다.

 

728x90
728x90