サーバー
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
、experimentalNoScripts
など)がいくつかあります。
一部のルートルール(appMiddleware
、redirect
、prerender
)は、クライアント側の動作にも影響します。
Nitroは、サーバーサイドレンダリングとプリレンダリングのためのアプリの構築に使用されます。