サーバー
Nitro を搭載
Nuxt のサーバーはNitroです。元々は Nuxt のために作成されましたが、現在はUnJSの一部であり、他のフレームワークにも開放されており、単独でも使用できます。
Nitro を使用すると、Nuxt に超能力が与えられます
- アプリケーションのサーバーサイド部分を完全に制御
- 任意のプロバイダーへのユニバーサルデプロイ (多くはゼロコンフィグ)
- ハイブリッドレンダリング
Nitro は内部的にh3を使用しています。これは、高いパフォーマンスとポータビリティのために構築された最小限の H(TTP) フレームワークです。
サーバーエンドポイントとミドルウェア
API エンドポイントからミドルウェアまで、Nuxt アプリのサーバー専用部分を簡単に管理できます。
エンドポイントとミドルウェアはどちらもこのように定義できます。
export default defineEventHandler(async (event) => {
// ... Do whatever you want here
})
text、json、html、さらには stream を直接返すことができます。
すぐに利用できる機能として、Nuxt アプリケーションの他の部分と同様に、ホットモジュールリプレースメントとオートインポートをサポートしています。
ユニバーサルデプロイ
Nitro は、ベアメタルサーバーからエッジネットワークまで、Nuxt アプリをあらゆる場所にデプロイする機能を提供します。起動時間はわずか数ミリ秒です。これは高速です!
様々なクラウドプロバイダーやサーバー向けに Nuxt アプリをビルドするための 15 以上のプリセットがあります。
または他のランタイム向け
ハイブリッドレンダリング
Nitro には routeRules と呼ばれる強力な機能があり、Nuxt アプリの各ルートがどのようにレンダリングされるか (など) をカスタマイズするための一連のルールを定義できます。
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、appMiddleware、noScripts) があります。
一部のルートルール (appMiddleware、redirect、prerender) は、クライアントサイドの動作にも影響します。
Nitro は、サーバーサイドレンダリングおよびプリレンダリングのためにアプリをビルドするために使用されます。