728x90

Javascript/NuxtJS 25

[Nuxt3] 상태 관리

정리useState()는 간단한 상태 공유에는 적합하지만, 전역 상태 관리에는 한계가 있음useRequestHeaders()는 서버에서 요청 헤더를 가져오지만, 클라이언트에서는 사용할 수 없음clearNuxtState()는 useState() 상태를 초기화하지만, 모든 상태를 지우면 성능 저하 가능대규모 애플리케이션에서는 Pinia를 사용하여 더 체계적으로 상태를 관리하는 것이 적절함 useState() - 상태 공유useState()는 Nuxt에서 상태를 저장하고 공유하는 함수입니다. Vue의 ref()와 비슷하지만, Nuxt의 전체 애플리케이션에서 SSR(서버 사이드 렌더링) 친화적으로 작동합니다.SSR 친화적인 상태 관리Nuxt에서 useState()는 SSR 시점에서 상태를 생성하고, 클라이언트로..

Javascript/NuxtJS 2025.03.09

[Nuxt3] 라우트 미들웨어

미들웨어는 Nuxt에서 특정 페이지를 렌더링하기 전에 실행되는 함수로, 주로 사용자 인증, 접근 제한, 데이터 로딩, 리디렉션 처리 등의 작업을 수행하는 데 사용된다. Nuxt 미들웨어의 종류 및 실행 시점Nuxt에서는 미들웨어를 적용하는 방식에 따라 크게 세 가지 종류로 나눌 수 있다.미들웨어 종류적용 방법 실행 시점글로벌 미들웨어 (Global Middleware)nuxt.config.ts에서 설정모든 페이지 접근 시 실행라우트 미들웨어 (Route Middleware)definePageMeta({ middleware })를 사용하여 페이지에 지정특정 페이지 접근 시 실행컴포넌트 단위 미들웨어 (Component Middleware)onBeforeMount 또는 useAsyncData 활용특정 컴포넌..

Javascript/NuxtJS 2025.03.09

[Nuxt3] 에러 핸들링

Nuxt에서 제공하는 주요 에러 처리 방법Nuxt에서는 다음과 같은 함수를 통해 에러 처리를 지원합니다:createError: 사용자 정의 에러 객체 생성showError: 사용자에게 에러를 표시하고 오류 페이지로 리다이렉트useError: 현재 발생한 에러 정보 접근clearError: 발생한 에러 상태 초기화 및 페이지 이동 처리Lifecycle Hooks: Vue 생명 주기에서 발생하는 에러를 커스텀 처리NuxtErrorBoundary: 컴포넌트 레벨의 에러 경계 설정 createError로 사용자 정의 에러 생성하기createError는 서버와 클라이언트 양쪽 환경에서 사용자 정의 에러 객체를 생성할 때 사용합니다. HTTP 상태 코드 및 메시지 등 상세 정보를 포함할 수 있습니다. 주로 서버 측..

Javascript/NuxtJS 2025.03.09

[Nuxt3] 플러그인

Nuxt 3 플러그인은 애플리케이션 전역에서 재사용할 수 있는 기능을 제공하는 모듈입니다. 주요 용도는 다음과 같습니다:API 클라이언트와 같은 전역 유틸리티 제공전역 상태 관리 (Pinia)인증 및 권한 관리글로벌 컴포넌트 및 디렉티브 등록Vue 및 서드파티 라이브러리(i18n, axios 등) 초기화서버 사이드 렌더링(SSR)과 클라이언트 환경에서 코드 분기 플러그인 사용 시 주의사항플러그인을 로드한다는 것은 defineNuxtPlugin() 함수의 매개변수(함수)를 실행한다는 것입니다.전역으로 제공하는 Helper는 신중히 선택하고, composables로 기능을 분리하는 것을 우선적으로 고려하세요.SSR 환경에서는 브라우저 전용 객체(window, document) 사용 시 반드시 클라이언트 모드..

Javascript/NuxtJS 2025.03.09

[Nuxt3] navigateTo

Nuxt3에서는 클라이언트 사이드 라우팅을 쉽게 처리할 수 있도록 navigateTo 함수를 제공합니다. 이는 useRouter().push()와 유사하지만, Nuxt 3에서 제공하는 최적화된 방식으로 동작합니다.navigateTo의 주요 특징클라이언트 사이드 네비게이션: 페이지가 완전히 새로고침되지 않고 Vue Router를 통해 전환됩니다.Promise 반환: 비동기적으로 동작하며, 네비게이션 완료 후 후속 작업을 수행할 수 있습니다.외부 링크 지원: absolute: true 옵션을 사용하면 외부 URL로 리디렉트할 수 있습니다. navigateTo의 기본 사용법 홈으로 이동위 코드에서 navigateTo("/")를 호출하면 사용자를 루트 페이지로 이동시킵니다. 옵션 활용type NavigateT..

Javascript/NuxtJS 2025.03.09

[Nuxt3] 레이아웃 프레임워크

정리레이아웃유형사용 방법 예제기본 레이아웃모든 페이지에 자동 적용layouts/default.vue네임드 레이아웃특정 페이지에 적용definePageMeta({ layout: "custom" })동적 레이아웃 변경런타임에 따라 변경setPageLayout 활용프로그래밍 방식으로 변경setPageLayout('custom')레이아웃 사용 시 주의할 점레이아웃은 반드시 layouts/ 폴더에 위치해야 합니다.레이아웃 파일명은 .vue 확장자를 사용해야 하며, Nuxt에서 자동으로 인식합니다.동적 레이아웃 변경 시 definePageMeta()보다 :layout 바인딩을 활용하면 더 유연한 설정이 가능합니다.레이아웃 내에서 NuxtPage를 직접 사용하면 무한 루프가 발생할 수 있으므로, 레이아웃에는 을 사용..

Javascript/NuxtJS 2025.03.09

[Nuxt3] NuxtLink

NuxtLink는 Nuxt 3에서 내부 페이지 간 네비게이션을 처리하는 컴포넌트로, 클라이언트 사이드 라우팅을 최적화하여 빠른 페이지 전환을 제공합니다. 기본적으로 Vue Router를 기반으로 동작하며, 브라우저의 전체 페이지 리로드 없이 화면을 부드럽게 전환할 수 있도록 도와줍니다.내부 링크(Internal Link)Nuxt 프로젝트 내에서 정의된 페이지로 이동할 때 사용됩니다.대시보드 이동to 속성에는 절대 경로 또는 상대 경로를 사용할 수 있습니다.상대 경로설정 페이지위 코드는 현재 페이지가 /dashboard라면 /dashboard/settings로 이동합니다.활성화된 링크 스타일 적용NuxtLink는 현재 활성화된 링크에 자동으로 router-link-active 클래스를 추가합니다. 이를 활..

Javascript/NuxtJS 2025.03.09

[Nuxt3] definePageMeta

정리definePageMeta()는 pages/ 디렉토리에 있는 페이지 컴포넌트에 대한 메타데이터를 설정하는 데 사용할 수 있는 컴파일러 매크로 함수입니다. 이것은 컴포넌트 내에서 참조할 수 없도록 컴파일됩니다. 대신 전달된 메타데이터가 컴포넌트 밖으로 끌어올려집니다. 따라서 페이지 메타 객체는 컴포넌트(또는 컴포넌트에 정의된 값)를 참조할 수 없습니다. 그러나 가져온 바인딩을 참조할 수 있습니다.속성설명사용 예제alias하나의 페이지를 여러 개의 URL로 접근 가능하게 함alias: ["/home", "/start"]keepalive페이지 상태를 캐싱하여 다시 방문했을 때 유지keepalive: truekeepalive.max캐싱할 페이지 개수를 제한keepalive: { max: 5 }key특정 페이..

Javascript/NuxtJS 2025.03.09

[Nuxt3] 중첩 라우팅

중첩 라우팅이란 상위 페이지 내에서 하위 페이지가 렌더링되는 구조를 의미합니다. 일반적으로 대시보드, 관리자 페이지, 사용자 프로필과 같은 일관된 레이아웃을 유지하면서 다른 콘텐츠를 표시할 때 유용하게 사용됩니다. 예를 들어 /dashboard 안에 /dashboard/settings, /dashboard/users 같은 하위 경로가 있을 때, 이들을 부모 컴포넌트 내부에서 관리하는 방식이 중첩 라우팅입니다. Nuxt 3 중첩 라우팅 구조 예제/pages ├── index.vue → `/` ├── about.vue → `/about` ├── dashboard/ │ ├── index.vue → `/dashboard` │ ├── settings..

Javascript/NuxtJS 2025.03.09

[Nuxt3] <script> vs <script setup> 차이점

1. 기본적인 차이점  Count: {{ count }} Double Count: {{ doubleCount }} 증가 setup() 내부에서 변수를 선언하고 return을 사용해야 템플릿에서 사용할 수 있음.코드가 다소 길어지고 boilerplate가 많음. Count: {{ count }} Double Count: {{ doubleCount }} 증가 setup() 함수 없이 바로 변수 선언이 가능함.return이 필요 없으며 선언된 변수들이 자동으로 템플릿에서 접근 가능.코드가 짧아지고 가독성이 증가함.3. 추가적인 차이점(1) Props 사용기존 {{ title }} {{ title }} 이벤트 발생 이벤트 발생 에서는 components ..

Javascript/NuxtJS 2025.03.09
728x90