Nuxt의 서버는 Nitro 입니다. 원래는 Nuxt용으로 만들어졌지만 이제는 UnJS 의 일부 이며 다른 프레임워크에도 개방되어 있으며 자체적으로도 사용할 수 있다.
Nuxt 에 포함된 Nitro 의 능력은 다음과 같다:
- 앱의 서버 측 부분을 완전히 제어한다.
- 모든 공급자에 대한 범용 배포(많은 zero config)
- 하이브리드 렌더링
Nitro는 내부적으로 고성능과 이식성을 위해 구축된 최소 H(TTP) 프레임워크인 h3 을 사용하고 있다 .
서버 엔드포인트 및 미들웨어
API 엔드포인트에서 미들웨어까지 Nuxt 앱의 서버 전용 부분을 쉽게 관리할 수 있다.
엔드포인트와 미들웨어는 모두 다음과 같이 정의할 수 있다.
server/api/test.ts
export default defineEventHandler(async (event) => {
// ... Do whatever you want here
})
다음, text, json, html 혹은 stream 을 직접 반환할 수 있다.
참고) Docs > Guide > Directory Structure > Server
범용 배포
Nitro는 단 몇 밀리초의 시작 시간으로 베어메탈 서버부터 에지 네트워크까지 어디에서나 Nuxt 앱을 배포할 수 있는 기능을 제공한다.
아래를 포함하여 다양한 클라우드 제공업체 및 서버용 Nuxt 앱을 구축하기 위한 15개 이상의 사전 설정이 있다.
- Cloudflare Workers
- Netlyfy Functions
- Vercel Edge Network
- Lagon
하이브리드 렌더링
Nitro 에는 Nuxt 앱의 각 경로가 렌더링되는 방식 등을 사용자 정의하는 할 수 있는 세트를 제공하는 routeRules 이라는 강력한 기능이 있다.
// nuxt.config.ts
export default defineNuxtConfig({
routeRules: {
// Generated at build time for SEO purpose
'/': { prerender: true },
// Cached for 1 hour
'/api/*': { cache: { maxAge: 60 * 60 } },
// Redirection to avoid 404
'/old-page': {
redirect: { to: { '/new-page', statusCode: 302 }
}
// ...
}
})
경로의 렌더링 모드를 사용자 정의하는 데 사용할 수 있는 모든 경로 규칙.
더해서, 페이지를 HTML로 렌더링할 때 동작을 변경하기 위한 Nuxt 관련 몇 가지 경로 규칙(예: ssr 및 .experimentalNoScripts)이 있다.
일부 라우팅 규칙( redirect 및 prerender)은 클라이언트 측 동작에도 영향을 미친다.
Nitro는 사전 렌더링은 물론 서버 측 렌더링을 위한 앱을 빌드하는 데 사용된다.
참고) Docs > Guide > Concepts > Rendering
'Nuxt 공식문서 번역 > 개요' 카테고리의 다른 글
15. 배포 (1) | 2023.12.11 |
---|---|
14. 레이어 (0) | 2023.12.11 |
12. 오류 처리(Error Handling) (0) | 2023.12.11 |
11. 상태 관리 (0) | 2023.12.11 |
10. 데이터 가져오기(Data fetching) (0) | 2023.12.11 |