From 56d94cc3e06312a26470e929f740a11fbb3dd052 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 14 Apr 2025 02:49:32 +0000 Subject: [PATCH] sync docs@7e29507 --- .../01-getting-started/01-installation.mdx | 190 ++++++------- .../02-project-structure.mdx | 142 +++++++--- .../03-layouts-and-pages.mdx | 38 +-- .../04-images-and-fonts.mdx | 60 ++-- docs/01-app/01-getting-started/05-css.mdx | 35 ++- .../01-getting-started/06-fetching-data.mdx | 26 +- .../01-getting-started/07-updating-data.mdx | 60 ++-- .../01-getting-started/08-error-handling.mdx | 34 +-- .../10-metadata-and-og-images.mdx | 22 +- .../01-getting-started/12-upgrading.mdx | 9 +- .../01-routing/03-layouts-and-templates.mdx | 42 +-- .../01-routing/08-route-groups.mdx | 94 +------ .../06-optimizing/14-local-development.mdx | 28 +- .../07-configuring/05-mdx.mdx | 90 +++--- .../11-upgrading/06-from-create-react-app.mdx | 196 +++++++------ .../04-functions/use-link-status.mdx | 250 ----------------- docs/01-app/04-api-reference/08-turbopack.mdx | 170 ------------ docs/01-app/04-deep-dive/index.mdx | 4 + .../01-directives/index.mdx | 0 .../01-directives/use-cache.mdx | 127 ++++++--- .../01-directives/use-client.mdx | 0 .../01-directives/use-server.mdx | 0 .../02-components/font.mdx | 0 .../02-components/form.mdx | 0 .../02-components/image.mdx | 0 .../02-components/index.mdx | 0 .../02-components/link.mdx | 0 .../02-components/script.mdx | 0 .../01-metadata/app-icons.mdx | 0 .../03-file-conventions/01-metadata/index.mdx | 0 .../01-metadata/manifest.mdx | 0 .../01-metadata/opengraph-image.mdx | 0 .../01-metadata/robots.mdx | 0 .../01-metadata/sitemap.mdx | 0 .../03-file-conventions/default.mdx | 0 .../03-file-conventions/error.mdx | 0 .../03-file-conventions/forbidden.mdx | 0 .../03-file-conventions/index.mdx | 0 .../instrumentation-client.mdx | 0 .../03-file-conventions/instrumentation.mdx | 0 .../03-file-conventions/layout.mdx | 0 .../03-file-conventions/loading.mdx | 0 .../03-file-conventions/mdx-components.mdx | 0 .../03-file-conventions/middleware.mdx | 0 .../03-file-conventions/not-found.mdx | 0 .../03-file-conventions/page.mdx | 0 .../route-segment-config.mdx | 0 .../03-file-conventions/route.mdx | 0 .../03-file-conventions/template.mdx | 0 .../03-file-conventions/unauthorized.mdx | 0 .../04-functions/after.mdx | 0 .../04-functions/cacheLife.mdx | 54 ++-- .../04-functions/cacheTag.mdx | 0 .../04-functions/connection.mdx | 0 .../04-functions/cookies.mdx | 0 .../04-functions/draft-mode.mdx | 0 .../04-functions/fetch.mdx | 0 .../04-functions/forbidden.mdx | 0 .../04-functions/generate-image-metadata.mdx | 0 .../04-functions/generate-metadata.mdx | 0 .../04-functions/generate-sitemaps.mdx | 0 .../04-functions/generate-static-params.mdx | 0 .../04-functions/generate-viewport.mdx | 0 .../04-functions/headers.mdx | 0 .../04-functions/image-response.mdx | 0 .../04-functions/index.mdx | 0 .../04-functions/next-request.mdx | 0 .../04-functions/next-response.mdx | 0 .../04-functions/not-found.mdx | 0 .../04-functions/permanentRedirect.mdx | 0 .../04-functions/redirect.mdx | 0 .../04-functions/revalidatePath.mdx | 0 .../04-functions/revalidateTag.mdx | 0 .../04-functions/unauthorized.mdx | 0 .../04-functions/unstable_cache.mdx | 0 .../04-functions/unstable_noStore.mdx | 0 .../04-functions/unstable_rethrow.mdx | 0 .../04-functions/use-link-status.mdx | 262 ++++++++++++++++++ .../04-functions/use-params.mdx | 0 .../04-functions/use-pathname.mdx | 0 .../04-functions/use-report-web-vitals.mdx | 0 .../04-functions/use-router.mdx | 0 .../04-functions/use-search-params.mdx | 0 .../use-selected-layout-segment.mdx | 0 .../use-selected-layout-segments.mdx | 0 .../04-functions/userAgent.mdx | 0 .../01-next-config-js/allowedDevOrigins.mdx | 0 .../05-config/01-next-config-js/appDir.mdx | 0 .../01-next-config-js/assetPrefix.mdx | 0 .../01-next-config-js/authInterrupts.mdx | 0 .../05-config/01-next-config-js/basePath.mdx | 0 .../05-config/01-next-config-js/cacheLife.mdx | 0 .../05-config/01-next-config-js/compress.mdx | 0 .../01-next-config-js/crossOrigin.mdx | 0 .../01-next-config-js/cssChunking.mdx | 0 .../01-next-config-js/devIndicators.mdx | 0 .../05-config/01-next-config-js/distDir.mdx | 0 .../05-config/01-next-config-js/dynamicIO.mdx | 0 .../05-config/01-next-config-js/env.mdx | 0 .../05-config/01-next-config-js/eslint.mdx | 0 .../01-next-config-js/expireTime.mdx | 0 .../01-next-config-js/exportPathMap.mdx | 0 .../01-next-config-js/generateBuildId.mdx | 0 .../01-next-config-js/generateEtags.mdx | 0 .../05-config/01-next-config-js/headers.mdx | 0 .../01-next-config-js/htmlLimitedBots.mdx | 0 .../01-next-config-js/httpAgentOptions.mdx | 0 .../05-config/01-next-config-js/images.mdx | 0 .../incrementalCacheHandlerPath.mdx | 0 .../05-config/01-next-config-js/index.mdx | 0 .../05-config/01-next-config-js/inlineCss.mdx | 0 .../05-config/01-next-config-js/logging.mdx | 0 .../05-config/01-next-config-js/mdxRs.mdx | 0 .../01-next-config-js/onDemandEntries.mdx | 0 .../optimizePackageImports.mdx | 0 .../05-config/01-next-config-js/output.mdx | 0 .../01-next-config-js/pageExtensions.mdx | 0 .../01-next-config-js/poweredByHeader.mdx | 0 .../05-config/01-next-config-js/ppr.mdx | 0 .../productionBrowserSourceMaps.mdx | 0 .../01-next-config-js/reactCompiler.mdx | 0 .../reactMaxHeadersLength.mdx | 0 .../01-next-config-js/reactStrictMode.mdx | 0 .../05-config/01-next-config-js/redirects.mdx | 0 .../05-config/01-next-config-js/rewrites.mdx | 0 .../01-next-config-js/sassOptions.mdx | 0 .../01-next-config-js/serverActions.mdx | 0 .../serverComponentsHmrCache.mdx | 0 .../serverExternalPackages.mdx | 0 .../01-next-config-js/staleTimes.mdx | 0 .../01-next-config-js/staticGeneration.mdx | 0 .../01-next-config-js/trailingSlash.mdx | 0 .../01-next-config-js/transpilePackages.mdx | 0 .../01-next-config-js/turbopack.mdx} | 142 +++++----- .../01-next-config-js/typedRoutes.mdx | 0 .../01-next-config-js/typescript.mdx | 0 .../01-next-config-js/urlImports.mdx | 0 .../05-config/01-next-config-js/useCache.mdx | 0 .../01-next-config-js/useLightningcss.mdx | 0 .../01-next-config-js/viewTransition.mdx | 0 .../webVitalsAttribution.mdx | 0 .../05-config/01-next-config-js/webpack.mdx | 0 .../05-config/02-typescript.mdx | 0 .../05-config/03-eslint.mdx | 0 .../05-config/index.mdx | 0 .../06-cli/create-next-app.mdx | 0 .../06-cli/index.mdx | 0 .../06-cli/next.mdx | 0 .../07-edge.mdx | 0 docs/01-app/05-api-reference/08-turbopack.mdx | 173 ++++++++++++ .../index.mdx | 0 docs/index.mdx | 75 +++-- kj-diff.json | 161 ++++++++++- next.js | 2 +- static/img/docs/dark/blog-nested-route.avif | Bin 12788 -> 8810 bytes .../img/docs/dark/blog-post-nested-route.avif | Bin 18291 -> 11963 bytes static/img/docs/dark/layout-special-file.avif | Bin 8105 -> 5716 bytes static/img/docs/dark/nested-layouts.avif | Bin 19996 -> 13442 bytes static/img/docs/dark/page-special-file.avif | Bin 6788 -> 4566 bytes static/img/docs/dark/public-folder.avif | Bin 5323 -> 3755 bytes static/img/docs/dark/route-group-loading.avif | Bin 8014 -> 6710 bytes .../dark/route-group-multiple-layouts.avif | Bin 7460 -> 8127 bytes .../route-group-multiple-root-layouts.avif | Bin 6085 -> 6889 bytes .../docs/dark/route-group-opt-in-layouts.avif | Bin 11079 -> 12429 bytes .../docs/dark/route-group-organisation.avif | Bin 10651 -> 12164 bytes static/img/docs/light/blog-nested-route.avif | Bin 11063 -> 7719 bytes .../docs/light/blog-post-nested-route.avif | Bin 14700 -> 10184 bytes .../img/docs/light/layout-special-file.avif | Bin 7271 -> 5081 bytes static/img/docs/light/nested-layouts.avif | Bin 16955 -> 11764 bytes static/img/docs/light/page-special-file.avif | Bin 6081 -> 4033 bytes static/img/docs/light/public-folder.avif | Bin 4402 -> 2999 bytes .../img/docs/light/route-group-loading.avif | Bin 7251 -> 6263 bytes .../light/route-group-multiple-layouts.avif | Bin 5338 -> 6291 bytes .../route-group-multiple-root-layouts.avif | Bin 4562 -> 5271 bytes .../light/route-group-opt-in-layouts.avif | Bin 9205 -> 9657 bytes .../docs/light/route-group-organisation.avif | Bin 8162 -> 9119 bytes 176 files changed, 1334 insertions(+), 1152 deletions(-) delete mode 100644 docs/01-app/04-api-reference/04-functions/use-link-status.mdx delete mode 100644 docs/01-app/04-api-reference/08-turbopack.mdx create mode 100644 docs/01-app/04-deep-dive/index.mdx rename docs/01-app/{04-api-reference => 05-api-reference}/01-directives/index.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/01-directives/use-cache.mdx (53%) rename docs/01-app/{04-api-reference => 05-api-reference}/01-directives/use-client.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/01-directives/use-server.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/02-components/font.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/02-components/form.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/02-components/image.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/02-components/index.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/02-components/link.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/02-components/script.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/03-file-conventions/01-metadata/app-icons.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/03-file-conventions/01-metadata/index.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/03-file-conventions/01-metadata/manifest.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/03-file-conventions/01-metadata/opengraph-image.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/03-file-conventions/01-metadata/robots.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/03-file-conventions/01-metadata/sitemap.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/03-file-conventions/default.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/03-file-conventions/error.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/03-file-conventions/forbidden.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/03-file-conventions/index.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/03-file-conventions/instrumentation-client.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/03-file-conventions/instrumentation.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/03-file-conventions/layout.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/03-file-conventions/loading.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/03-file-conventions/mdx-components.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/03-file-conventions/middleware.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/03-file-conventions/not-found.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/03-file-conventions/page.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/03-file-conventions/route-segment-config.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/03-file-conventions/route.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/03-file-conventions/template.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/03-file-conventions/unauthorized.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/after.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/cacheLife.mdx (65%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/cacheTag.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/connection.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/cookies.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/draft-mode.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/fetch.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/forbidden.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/generate-image-metadata.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/generate-metadata.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/generate-sitemaps.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/generate-static-params.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/generate-viewport.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/headers.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/image-response.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/index.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/next-request.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/next-response.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/not-found.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/permanentRedirect.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/redirect.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/revalidatePath.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/revalidateTag.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/unauthorized.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/unstable_cache.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/unstable_noStore.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/unstable_rethrow.mdx (100%) create mode 100644 docs/01-app/05-api-reference/04-functions/use-link-status.mdx rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/use-params.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/use-pathname.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/use-report-web-vitals.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/use-router.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/use-search-params.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/use-selected-layout-segment.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/use-selected-layout-segments.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/04-functions/userAgent.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/allowedDevOrigins.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/appDir.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/assetPrefix.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/authInterrupts.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/basePath.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/cacheLife.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/compress.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/crossOrigin.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/cssChunking.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/devIndicators.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/distDir.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/dynamicIO.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/env.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/eslint.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/expireTime.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/exportPathMap.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/generateBuildId.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/generateEtags.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/headers.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/htmlLimitedBots.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/httpAgentOptions.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/images.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/incrementalCacheHandlerPath.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/index.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/inlineCss.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/logging.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/mdxRs.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/onDemandEntries.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/optimizePackageImports.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/output.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/pageExtensions.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/poweredByHeader.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/ppr.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/productionBrowserSourceMaps.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/reactCompiler.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/reactMaxHeadersLength.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/reactStrictMode.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/redirects.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/rewrites.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/sassOptions.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/serverActions.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/serverComponentsHmrCache.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/serverExternalPackages.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/staleTimes.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/staticGeneration.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/trailingSlash.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/transpilePackages.mdx (100%) rename docs/01-app/{04-api-reference/05-config/01-next-config-js/turbo.mdx => 05-api-reference/05-config/01-next-config-js/turbopack.mdx} (52%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/typedRoutes.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/typescript.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/urlImports.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/useCache.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/useLightningcss.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/viewTransition.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/webVitalsAttribution.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/01-next-config-js/webpack.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/02-typescript.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/03-eslint.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/05-config/index.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/06-cli/create-next-app.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/06-cli/index.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/06-cli/next.mdx (100%) rename docs/01-app/{04-api-reference => 05-api-reference}/07-edge.mdx (100%) create mode 100644 docs/01-app/05-api-reference/08-turbopack.mdx rename docs/01-app/{04-api-reference => 05-api-reference}/index.mdx (100%) diff --git a/docs/01-app/01-getting-started/01-installation.mdx b/docs/01-app/01-getting-started/01-installation.mdx index c977dbf1..c2ee32ef 100644 --- a/docs/01-app/01-getting-started/01-installation.mdx +++ b/docs/01-app/01-getting-started/01-installation.mdx @@ -1,25 +1,27 @@ --- -title: '新しい Next.js プロジェクトをセットアップする方法' +title: '新しい Next.js プロジェクトのセットアップ方法' nav_title: 'インストール' -description: '`create-next-app` CLIを使用して新しい Next.js アプリケーションを作成し、TypeScript、ESLint、およびモジュールパスエイリアスを設定します。' +description: '`create-next-app` CLIを使用して新しい Next.js アプリケーションを作成し、TypeScript、ESLint、モジュールパスエイリアスを設定します。' --- {/* このドキュメントの内容は、app router と pages router の間で共有されています。Pages Router に特有のコンテンツを追加するには、`Content` コンポーネントを使用できます。共有コンテンツはコンポーネントでラップしないでください。 */} ## システム要件 {#system-requirements} +始める前に、システムが次の要件を満たしていることを確認してください: + - [Node.js 18.18](https://nodejs.org/) 以降 -- macOS、Windows(WSLを含む)、Linuxがサポートされています +- macOS、Windows(WSLを含む)、またはLinux ## 自動インストール {#automatic-installation} -新しい Next.js アプリを始めるには、すべてを自動的にセットアップする [`create-next-app`](/docs/app/api-reference/cli/create-next-app) を使用することをお勧めします。プロジェクトを作成するには、次のコマンドを実行します: +新しい Next.js アプリを作成する最も簡単な方法は、すべてを自動的にセットアップしてくれる [`create-next-app`](/docs/app/api-reference/cli/create-next-app) を使用することです。プロジェクトを作成するには、次のコマンドを実行します: ```bash title="Terminal" npx create-next-app@latest ``` -インストール時に、次のプロンプトが表示されます: +インストール時に、次のプロンプトが表示されます: ```txt title="Terminal" What is your project named? my-app @@ -33,17 +35,17 @@ Would you like to customize the import alias (`@/*` by default)? No / Yes What import alias would you like configured? @/* ``` -プロンプトの後、[`create-next-app`](/docs/app/api-reference/cli/create-next-app) はプロジェクト名のフォルダーを作成し、必要な依存関係をインストールします。 +プロンプトの後、[`create-next-app`](/docs/app/api-reference/cli/create-next-app) はプロジェクト名のフォルダを作成し、必要な依存関係をインストールします。 ## 手動インストール {#manual-installation} -新しい Next.js アプリを手動で作成するには、必要なパッケージをインストールします: +新しい Next.js アプリを手動で作成するには、必要なパッケージをインストールします: ```bash title="Terminal" npm install next@latest react@latest react-dom@latest ``` -`package.json` ファイルを開き、次の `scripts` を追加します: +次に、以下のスクリプトを `package.json` ファイルに追加します: ```json title="package.json" { @@ -56,30 +58,20 @@ npm install next@latest react@latest react-dom@latest } ``` -これらのスクリプトは、アプリケーション開発のさまざまな段階を指します: +これらのスクリプトは、アプリケーション開発のさまざまな段階を指します: -- `dev`: Next.js を開発モードで開始するために [`next dev`](/docs/app/api-reference/cli/next#next-dev-options) を実行します -- `build`: 本番使用のためにアプリケーションをビルドするために [`next build`](/docs/app/api-reference/cli/next#next-build-options) を実行します -- `start`: Next.js の本番サーバーを開始するために [`next start`](/docs/app/api-reference/cli/next#next-start-options) を実行します -- `lint`: Next.js の組み込み ESLint 設定をセットアップするために [`next lint`](/docs/app/api-reference/cli/next#next-lint-options) を実行します +- `next dev`: 開発サーバーを起動します。 +- `next build`: アプリケーションを本番用にビルドします。 +- `next start`: 本番サーバーを起動します。 +- `next lint`: ESLint を実行します。 -### `app` ディレクトリを作成する {#create-the-app-directory} +### `app` ディレクトリの作成 {#create-the-app-directory} Next.js はファイルシステムルーティングを使用しているため、アプリケーション内のルートはファイルの構造によって決まります。 -`app` フォルダーを作成し、`layout.tsx` と `page.tsx` ファイルを追加します。これらはユーザーがアプリケーションの root (`/`) を訪れたときにレンダリングされます。 - -App フォルダ構造 - -`app/layout.tsx` 内に必要な `` と `` タグを含む [root レイアウト](/docs/app/building-your-application/routing/layouts-and-templates#root-layout-required) を作成します: +`app` フォルダを作成します。次に、`app` 内に `layout.tsx` ファイルを作成します。このファイルは [root レイアウト](/docs/app/api-reference/file-conventions/layout#root-layouts) です。これは必須であり、`` と `` タグを含める必要があります。 @@ -114,7 +106,7 @@ export default function RootLayout({ children }) { -最後に、初期コンテンツを含むホームページ `app/page.tsx` を作成します: +初期コンテンツを含むホームページ `app/page.tsx` を作成します: @@ -137,20 +129,30 @@ export default function Page() { +`layout.tsx` と `page.tsx` の両方が、ユーザーがアプリケーションの root (`/`) を訪れたときにレンダリングされます。 + +App Folder Structure + > **Good to know**: > -> - `layout.tsx` を作成するのを忘れた場合、`next dev` で開発サーバーを実行するときに Next.js が自動的にこのファイルを作成します。 -> - プロジェクトの root に [`src` ディレクトリ](/docs/app/building-your-application/configuring/src-directory) を使用して、アプリケーションのコードを設定ファイルから分離することができます。 +> - root レイアウトの作成を忘れた場合、`next dev` で開発サーバーを実行すると、Next.js が自動的にこのファイルを作成します。 +> - プロジェクトの root に [`src` ディレクトリ](/docs/app/building-your-application/configuring/src-directory) を使用して、アプリケーションのコードを設定ファイルから分離することもできます。 -### `pages` ディレクトリを作成する {#create-the-pages-directory} +### `pages` ディレクトリの作成 {#create-the-pages-directory} Next.js はファイルシステムルーティングを使用しているため、アプリケーション内のルートはファイルの構造によって決まります。 -プロジェクトの root に `pages` ディレクトリを作成します。次に、`pages` フォルダー内に `index.tsx` ファイルを追加します。これがホームページ (`/`) になります: +プロジェクトの root に `pages` ディレクトリを作成します。次に、`pages` フォルダ内に `index.tsx` ファイルを追加します。これがホームページ (`/`) になります: @@ -173,7 +175,7 @@ export default function Page() { -次に、`pages/` 内に `_app.tsx` ファイルを追加して、グローバルレイアウトを定義します。 [カスタム App ファイル](https://nextjs.org/docs/canary/pages/building-your-application/routing/custom-app) について詳しく学びましょう。 +次に、グローバルレイアウトを定義するために `pages/` 内に `_app.tsx` ファイルを追加します。[カスタム App ファイル](https://nextjs.org/docs/canary/pages/building-your-application/routing/custom-app)について詳しく学びましょう。 @@ -198,7 +200,7 @@ export default function App({ Component, pageProps }) { -最後に、`pages/` 内に `_document.tsx` ファイルを追加して、サーバーからの初期応答を制御します。 [カスタム Document ファイル](https://nextjs.org/docs/canary/pages/building-your-application/routing/custom-document) について詳しく学びましょう。 +最後に、サーバーからの初期応答を制御するために `pages/` 内に `_document.tsx` ファイルを追加します。[カスタム Document ファイル](https://nextjs.org/docs/canary/pages/building-your-application/routing/custom-document)について詳しく学びましょう。 @@ -243,53 +245,78 @@ export default function Document() { -### `public` フォルダーを作成する(オプション) {#create-the-public-folder-optional} +### `public` フォルダの作成(オプション) {#create-the-public-folder-optional} + +プロジェクトの root に [`public` フォルダ](/docs/app/building-your-application/optimizing/static-assets) を作成して、画像やフォントなどの静的アセットを保存します。`public` 内のファイルは、ベースURL (`/`) から始まるコードで参照できます。 + +これらのアセットは root パス (`/`) を使用して参照できます。たとえば、`public/profile.png` は `/profile.png` として参照できます: + + + + +```tsx title="app/page.tsx" highlight={4} switcher +import Image from 'next/image' + +export default function Page() { + return Profile +} +``` + + + + +```jsx title="app/page.js" highlight={4} switcher +import Image from 'next/image' + +export default function Page() { + return Profile +} +``` -プロジェクトの root に [`public` フォルダー](/docs/app/building-your-application/optimizing/static-assets) を作成して、画像やフォントなどの静的アセットを保存することができます。`public` 内のファイルは、ベースURL (`/`) から始めてコードで参照できます。 + + -## 開発サーバーを実行する {#run-the-development-server} +## 開発サーバーの実行 {#run-the-development-server} -1. `npm run dev` を実行して開発サーバーを開始します。 +1. `npm run dev` を実行して開発サーバーを起動します。 2. `http://localhost:3000` にアクセスしてアプリケーションを表示します。 3. `app/page.tsx` `pages/index.tsx` ファイルを編集して保存し、ブラウザで更新された結果を確認します。 -## TypeScript をセットアップする {#set-up-typescript} +## TypeScript のセットアップ {#set-up-typescript} -> 最低 TypeScript バージョン: `v4.5.2` +> 最小 TypeScript バージョン: `v4.5.2` -Next.js には組み込みの TypeScript サポートがあります。プロジェクトに TypeScript を追加するには、ファイルを `.ts` / `.tsx` にリネームします。`next dev` を実行すると、Next.js は必要な依存関係を自動的にインストールし、推奨される設定オプションを含む `tsconfig.json` ファイルを追加します。 +Next.js には組み込みの TypeScript サポートがあります。プロジェクトに TypeScript を追加するには、ファイルを `.ts` / `.tsx` にリネームして `next dev` を実行します。Next.js は必要な依存関係を自動的にインストールし、推奨される設定オプションを含む `tsconfig.json` ファイルを追加します。 ### IDE プラグイン {#ide-plugin} -Next.js にはカスタム TypeScript プラグインと型チェッカーが含まれており、VSCode や他のコードエディターで高度な型チェックと自動補完を利用できます。 +Next.js にはカスタム TypeScript プラグインと型チェッカーが含まれており、VSCode や他のコードエディタで高度な型チェックや自動補完を利用できます。 -VS Code でプラグインを有効にするには: +VS Code でプラグインを有効にするには: 1. コマンドパレットを開く(`Ctrl/⌘` + `Shift` + `P`) 2. 「TypeScript: Select TypeScript Version」を検索 3. 「Use Workspace Version」を選択 TypeScript コマンドパレット -これで、ファイルを編集するときにカスタムプラグインが有効になります。`next build` を実行すると、カスタム型チェッカーが使用されます。 - -プロジェクトで TypeScript を使用する方法については、[TypeScript 設定](/docs/app/api-reference/config/next-config-js/typescript) ページを参照してください。 +詳細は [TypeScript リファレンス](/docs/app/api-reference/config/next-config-js/typescript) ページを参照してください。 -## ESLint をセットアップする {#set-up-eslint} +## ESLint のセットアップ {#set-up-eslint} -Next.js には組み込みの ESLint があり、新しいプロジェクトを `create-next-app` で作成するときに必要なパッケージを自動的にインストールし、適切な設定を行います。 +Next.js には組み込みの ESLint が含まれています。`create-next-app` で新しいプロジェクトを作成すると、必要なパッケージが自動的にインストールされ、適切な設定が行われます。 -既存のプロジェクトに ESLint を追加するには、`package.json` に `next lint` をスクリプトとして追加します: +既存のプロジェクトに ESLint を手動で追加するには、`package.json` に `next lint` をスクリプトとして追加します: ```json title="package.json" { @@ -299,13 +326,13 @@ Next.js には組み込みの ESLint があり、新しいプロジェクトを } ``` -次に、`npm run lint` を実行すると、インストールと設定プロセスが案内されます。 +次に、`npm run lint` を実行すると、インストールと設定のプロセスが案内されます。 ```bash title="Terminal" npm run lint ``` -次のようなプロンプトが表示されます: +次のようなプロンプトが表示されます: > ? How would you like to configure ESLint? > @@ -313,29 +340,31 @@ npm run lint > Base > Cancel -- **Strict**: Next.js の基本 ESLint 設定に加えて、より厳しい Core Web Vitals ルールセットを含みます。ESLint を初めて設定する開発者に推奨される設定です。 -- **Base**: Next.js の基本 ESLint 設定を含みます。 -- **Cancel**: ESLint 設定を含みません。独自のカスタム ESLint 設定を設定する予定がある場合にのみ、このオプションを選択してください。 +- **Strict**: Next.js の基本的な ESLint 設定に加え、より厳格な Core Web Vitals ルールセットを含みます。初めて ESLint を設定する開発者に推奨される設定です。 +- **Base**: Next.js の基本的な ESLint 設定を含みます。 +- **Cancel**: 設定をスキップします。独自のカスタム ESLint 設定を行う予定の場合、このオプションを選択します。 -2つの設定オプションのいずれかが選択されると、Next.js は自動的に `eslint` と `eslint-config-next` をアプリケーションの依存関係としてインストールし、選択した設定を含む `.eslintrc.json` ファイルをプロジェクトの root に作成します。 +`Strict` または `Base` が選択されると、Next.js は自動的に `eslint` と `eslint-config-next` をアプリケーションの依存関係としてインストールし、選択した設定を含む `.eslintrc.json` ファイルをプロジェクトの root に作成します。 ESLint を実行してエラーをキャッチしたいときは、`next lint` を実行できます。ESLint が設定されると、ビルド(`next build`)のたびに自動的に実行されます。エラーはビルドを失敗させますが、警告は失敗しません。 -プロジェクトで ESLint を設定する方法については、[ESLint プラグイン](/docs/app/api-reference/config/next-config-js/eslint) ページを参照してください。 +詳細は [ESLint プラグイン](/docs/app/api-reference/config/next-config-js/eslint) ページを参照してください。 -## 絶対インポートとモジュールパスエイリアスを設定する {#set-up-absolute-imports-and-module-path-aliases} +## 絶対インポートとモジュールパスエイリアスの設定 {#set-up-absolute-imports-and-module-path-aliases} -Next.js には、`tsconfig.json` および `jsconfig.json` ファイルの `"paths"` および `"baseUrl"` オプションのサポートが組み込まれています。これらのオプションを使用すると、プロジェクトディレクトリを絶対パスにエイリアス化し、モジュールのインポートを簡単にします。例えば: +Next.js には `tsconfig.json` および `jsconfig.json` ファイルの `"paths"` および `"baseUrl"` オプションのサポートが組み込まれています。 + +これらのオプションを使用すると、プロジェクトディレクトリを絶対パスにエイリアス化でき、モジュールのインポートがより簡単でクリーンになります。たとえば: ```jsx -// 以前 +// Before import { Button } from '../../../components/button' -// 以降 +// After import { Button } from '@/components/button' ``` -絶対インポートを設定するには、`tsconfig.json` または `jsconfig.json` ファイルに `baseUrl` 設定オプションを追加します。例えば: +絶対インポートを設定するには、`tsconfig.json` または `jsconfig.json` ファイルに `baseUrl` 設定オプションを追加します。たとえば: ```json title="tsconfig.json or jsconfig.json" { @@ -347,7 +376,7 @@ import { Button } from '@/components/button' `baseUrl` パスの設定に加えて、`"paths"` オプションを使用してモジュールパスを `"alias"` することができます。 -例えば、次の設定は `@/components/*` を `components/*` にマッピングします: +たとえば、次の設定は `@/components/*` を `components/*` にマップします: ```json title="tsconfig.json or jsconfig.json" { @@ -361,41 +390,4 @@ import { Button } from '@/components/button' } ``` -各 `"paths"` は `baseUrl` の場所に対して相対的です。例えば: - - - - -```tsx title="src/app/page.tsx" switcher -import Button from '@/components/button' -import '@/styles/styles.css' - -export default function HomePage() { - return ( -
-

Hello World

-
- ) -} -``` - -
- - -```jsx title="src/app/page.js" switcher -import Button from '@/components/button' -import '@/styles/styles.css' - -export default function HomePage() { - return ( -
-

Hello World

-
- ) -} -``` - -
-
+各 `"paths"` は `baseUrl` の場所に対して相対的です。 diff --git a/docs/01-app/01-getting-started/02-project-structure.mdx b/docs/01-app/01-getting-started/02-project-structure.mdx index 513f00ba..a178d387 100644 --- a/docs/01-app/01-getting-started/02-project-structure.mdx +++ b/docs/01-app/01-getting-started/02-project-structure.mdx @@ -4,7 +4,7 @@ nav_title: 'プロジェクト構造' description: 'Next.jsにおけるフォルダとファイルの規約の概要と、プロジェクトの組織化方法について。' --- -このページでは、Next.jsにおけるフォルダとファイルの規約の概要と、プロジェクトを組織化するためのヒントを提供します。 +このページでは、Next.jsにおける**すべての**フォルダとファイルの規約の概要と、プロジェクトを組織化するための推奨事項を提供します。 ## フォルダとファイルの規約 {#folder-and-file-conventions} @@ -44,7 +44,7 @@ description: 'Next.jsにおけるフォルダとファイルの規約の概要 | [`.env.development`](/docs/app/building-your-application/configuring/environment-variables) | 開発環境変数 | | [`.eslintrc.json`](/docs/app/api-reference/config/eslint) | ESLintの設定ファイル | | `.gitignore` | 無視するGitファイルとフォルダ | -| `next-env.d.ts` | Next.jsのTypeScript宣言ファイル | +| `next-env.d.ts` | Next.js用のTypeScript宣言ファイル | | `tsconfig.json` | TypeScriptの設定ファイル | | `jsconfig.json` | JavaScriptの設定ファイル | @@ -81,10 +81,10 @@ description: 'Next.jsにおけるフォルダとファイルの規約の概要 ### ルートグループとプライベートフォルダ {#route-groups-and-private-folders} -| | | -| --------------------------------------------------------------------------------- | -------------------------------------------------------- | -| [`(folder)`](/docs/app/building-your-application/routing/route-groups#convention) | ルーティングに影響を与えずにルートをグループ化 | -| [`_folder`](#private-folders) | フォルダとそのすべての子セグメントをルーティングから除外 | +| | | +| --------------------------------------------------------------------------------- | ---------------------------------------------------- | +| [`(folder)`](/docs/app/building-your-application/routing/route-groups#convention) | ルーティングに影響を与えずにルートをグループ化 | +| [`_folder`](#private-folders) | フォルダとすべての子セグメントをルーティングから除外 | ### パラレルルートとインターセプトルート {#parallel-and-intercepted-routes} @@ -168,9 +168,13 @@ description: 'Next.jsにおけるフォルダとファイルの規約の概要 -## コンポーネントの階層 {#component-hierarchy} +## プロジェクトの組織化 {#organizing-your-project} + +Next.jsは、プロジェクトファイルの整理や配置について特に意見を持ちませんが、プロジェクトを整理するためのいくつかの機能を提供しています。 + +### コンポーネント階層 {#component-hierarchy} -ルートセグメントの特別なファイルで定義されたReactコンポーネントは、特定の階層でレンダリングされます: +特別なファイルで定義されたコンポーネントは、特定の階層でレンダリングされます: - `layout.js` - `template.js` @@ -187,7 +191,7 @@ description: 'Next.jsにおけるフォルダとファイルの規約の概要 height="643" /> -ネストされたルートでは、セグメントのコンポーネントは親セグメントのコンポーネントの**内側**にネストされます。 +コンポーネントはネストされたルートで再帰的にレンダリングされ、ルートセグメントのコンポーネントは親セグメントのコンポーネントの**内側**にネストされます。 ネストされたファイル規約のコンポーネント階層 -## プロジェクトの組織化 {#organizing-your-project} - -[フォルダとファイルの規約](/docs/app/getting-started/project-structure)とは別に、Next.jsはプロジェクトファイルの組織化や配置について特に意見を持っていません。しかし、プロジェクトを組織化するためのいくつかの機能を提供しています。 - ### コロケーション {#colocation} `app`ディレクトリでは、ネストされたフォルダがルート構造を定義します。各フォルダは、URLパスの対応するセグメントにマッピングされるルートセグメントを表します。 -しかし、ルート構造がフォルダを通じて定義されているにもかかわらず、`page.js`または`route.js`ファイルがルートセグメントに追加されるまで、ルートは**公開されません**。 +ただし、ルート構造はフォルダを通じて定義されますが、`page.js`または`route.js`ファイルがルートセグメントに追加されるまで、ルートは**公開されません**。 ルートセグメントにpage.jsまたはroute.jsファイルが追加されるまでルートが公開されないことを示す図。 -そして、ルートが公開されるときでも、クライアントに送信されるのは`page.js`または`route.js`によって返される**コンテンツのみ**です。 +そして、ルートが公開されると、`page.js`または`route.js`によって返される**コンテンツのみ**がクライアントに送信されます。 page.jsとroute.jsファイルがルートを公開可能にする方法を示す図。 -これは、`app`ディレクトリ内のルートセグメント内に**安全にプロジェクトファイルを配置**でき、誤ってルーティングされることがないことを意味します。 +これは、`app`ディレクトリ内の**プロジェクトファイル**が、誤ってルート化されることなく、ルートセグメント内に**安全にコロケーション**できることを意味します。 セグメントにpage.jsまたはroute.jsファイルが含まれていても、配置されたプロジェクトファイルがルーティングされないことを示す図。 -> **Good to know**: -> -> - プロジェクトファイルを`app`に配置することはできますが、必ずしもそうする必要はありません。必要に応じて、[それらを`app`ディレクトリの外に保持する](#store-project-files-outside-of-app)こともできます。 +> **Good to know**: `app`内にプロジェクトファイルをコロケーションすることは**可能**ですが、必ずしもそうする必要はありません。必要に応じて、[それらを`app`ディレクトリの外に保管する](#store-project-files-outside-of-app)こともできます。 ### プライベートフォルダ {#private-folders} @@ -253,24 +251,24 @@ description: 'Next.jsにおけるフォルダとファイルの規約の概要 height="849" /> -`app`ディレクトリ内のファイルは[デフォルトで安全に配置できる](#colocation)ため、コロケーションにはプライベートフォルダは必要ありません。しかし、以下のような場合に役立ちます: +`app`ディレクトリ内のファイルは[デフォルトで安全にコロケーションできる](#colocation)ため、コロケーションにはプライベートフォルダは必要ありません。ただし、以下の目的で役立つことがあります: - UIロジックをルーティングロジックから分離する -- プロジェクト全体とNext.jsエコシステム内で内部ファイルを一貫して整理する -- コードエディタでファイルをソートおよびグループ化する -- 将来のNext.jsファイル規約との潜在的な命名の競合を回避する +- プロジェクト全体およびNext.jsエコシステム内で内部ファイルを一貫して整理する +- コードエディタでファイルを整理およびグループ化する +- 将来のNext.jsファイル規約との潜在的な命名競合を回避する > **Good to know**: > > - フレームワークの規約ではありませんが、プライベートフォルダの外のファイルを同じアンダースコアパターンを使用して「プライベート」としてマークすることも検討できます。 > - フォルダ名の前に`%5F`(アンダースコアのURLエンコード形式)を付けることで、アンダースコアで始まるURLセグメントを作成できます:`%5FfolderName`。 -> - プライベートフォルダを使用しない場合は、Next.jsの[特別なファイル規約](/docs/app/getting-started/project-structure#routing-files)を知っておくと、予期しない命名の競合を防ぐのに役立ちます。 +> - プライベートフォルダを使用しない場合は、Next.jsの[特別なファイル規約](/docs/app/getting-started/project-structure#routing-files)を知っておくと、予期しない命名競合を防ぐのに役立ちます。 ### ルートグループ {#route-groups} ルートグループは、フォルダを括弧で囲むことで作成できます:`(folderName)` -これは、フォルダが組織的な目的であり、ルートのURLパスに**含まれるべきではない**ことを示します。 +これは、フォルダが組織化の目的であり、ルートのURLパスに**含まれるべきではない**ことを示します。 ルートグループを使用したフォルダ構造の例 -ルートグループは以下のような場合に役立ちます: +ルートグループは以下の目的で役立ちます: -- [URLパスに影響を与えずにルートをグループ化する](/docs/app/building-your-application/routing/route-groups#organize-routes-without-affecting-the-url-path) 例:サイトセクション、意図、チームごとに +- サイトのセクション、意図、またはチームごとにルートを整理する。例:マーケティングページ、管理ページなど - 同じルートセグメントレベルでネストされたレイアウトを有効にする: - - [複数のroot レイアウトを含む、同じセグメントで複数のネストされたレイアウトを作成する](/docs/app/building-your-application/routing/route-groups#creating-multiple-root-layouts) - - [共通セグメント内のルートのサブセットにレイアウトを追加する](/docs/app/building-your-application/routing/route-groups#opting-specific-segments-into-a-layout) + - [同じセグメントで複数のネストされたレイアウトを作成し、複数のrootレイアウトを含む](#creating-multiple-root-layouts) + - [共通セグメント内のルートのサブセットにレイアウトを追加する](#opting-specific-segments-into-a-layout) ### `src`ディレクトリ {#src-directory} -Next.jsは、アプリケーションコード(`app`を含む)をオプションの[`src`ディレクトリ](/docs/app/building-your-application/configuring/src-directory)内に保存することをサポートしています。これにより、アプリケーションコードをプロジェクトの設定ファイルから分離できます。設定ファイルは主にプロジェクトのrootに存在します。 +Next.jsは、アプリケーションコード(`app`を含む)をオプションの[`src`ディレクトリ](/docs/app/building-your-application/configuring/src-directory)内に保存することをサポートしています。これにより、アプリケーションコードがプロジェクトの設定ファイルから分離されます。設定ファイルは主にプロジェクトのrootに存在します。 `src`ディレクトリを使用したフォルダ構造の例 -### 一般的な戦略 {#common-strategies} +### 例 {#examples} -次のセクションでは、一般的な戦略の非常に高レベルな概要を示します。最も簡単な結論は、自分とチームに合った戦略を選び、プロジェクト全体で一貫性を保つことです。 +以下のセクションでは、一般的な戦略の非常に高レベルな概要を示します。最も簡単な結論は、自分やチームに合った戦略を選び、プロジェクト全体で一貫性を保つことです。 > **Good to know**: 以下の例では、`components`と`lib`フォルダを一般的なプレースホルダーとして使用しています。これらの名前には特別なフレームワークの意味はなく、プロジェクトによっては`ui`、`utils`、`hooks`、`styles`などの他のフォルダを使用することがあります。 -#### プロジェクトファイルを`app`の外に保存する {#store-project-files-outside-of-app} +#### プロジェクトファイルを`app`の外に保管する {#store-project-files-outside-of-app} この戦略では、すべてのアプリケーションコードをプロジェクトの**root**にある共有フォルダに保存し、`app`ディレクトリを純粋にルーティングの目的で使用します。 appの外にプロジェクトファイルを保存したフォルダ構造の例 -#### プロジェクトファイルを`app`内のトップレベルフォルダに保存する {#store-project-files-in-top-level-folders-inside-of-app} +#### プロジェクトファイルを`app`内のトップレベルフォルダに保管する {#store-project-files-in-top-level-folders-inside-of-app} この戦略では、すべてのアプリケーションコードを`app`ディレクトリの**root**にある共有フォルダに保存します。 app内にプロジェクトファイルを保存したフォルダ構造の例 -#### プロジェクトファイルを機能またはルートごとに分割する {#split-project-files-by-feature-or-route} +#### 機能またはルートごとにプロジェクトファイルを分割する {#split-project-files-by-feature-or-route} この戦略では、グローバルに共有されるアプリケーションコードをrootの`app`ディレクトリに保存し、より特定のアプリケーションコードをそれを使用するルートセグメントに**分割**します。 機能またはルートごとにプロジェクトファイルを分割したフォルダ構造の例 +### URLパスに影響を与えずにルートを整理する {#organize-routes-without-affecting-the-url-path} + +URLに影響を与えずにルートを整理するには、関連するルートをまとめて保持するためのグループを作成します。括弧内のフォルダはURLから省略されます(例:`(marketing)`または`(shop)`)。 + +ルートグループを使用したルートの整理 + +`(marketing)`と`(shop)`内のルートは同じURL階層を共有していますが、それぞれのグループ内に`layout.js`ファイルを追加することで、異なるレイアウトを作成できます。 + +複数のレイアウトを持つルートグループ + +### 特定のセグメントをレイアウトにオプトインする {#opting-specific-segments-into-a-layout} + +特定のルートをレイアウトにオプトインするには、新しいルートグループ(例:`(shop)`)を作成し、同じレイアウトを共有するルート(例:`account`と`cart`)をグループに移動します。グループ外のルート(例:`checkout`)はレイアウトを共有しません。 + +オプトインレイアウトを持つルートグループ + +### 特定のルートでローディングスケルトンを選択する {#opting-for-loading-skeletons-on-a-specific-route} + +特定のルートに`loading.js`ファイルを介して[ローディングスケルトン](/docs/app/building-your-application/routing/loading-ui-and-streaming)を適用するには、新しいルートグループ(例:`/(overview)`)を作成し、そのルートグループ内に`loading.tsx`を移動します。 + +ルートグループ内にloading.tsxとpage.tsxがあるフォルダ構造 + +これで、`loading.tsx`ファイルはダッシュボード→概要ページにのみ適用され、URLパス構造に影響を与えることなく、他のダッシュボードページには適用されません。 + +### 複数のrootレイアウトを作成する {#creating-multiple-root-layouts} + +複数の[rootレイアウト](/docs/app/api-reference/file-conventions/layout#root-layouts)を作成するには、トップレベルの`layout.js`ファイルを削除し、各ルートグループ内に`layout.js`ファイルを追加します。これは、完全に異なるUIや体験を持つセクションにアプリケーションを分割するのに役立ちます。``と``タグは各rootレイアウトに追加する必要があります。 + +複数のrootレイアウトを持つルートグループ + +上記の例では、`(marketing)`と`(shop)`の両方が独自のrootレイアウトを持っています。 + diff --git a/docs/01-app/01-getting-started/03-layouts-and-pages.mdx b/docs/01-app/01-getting-started/03-layouts-and-pages.mdx index b7a6ebb0..885661cd 100644 --- a/docs/01-app/01-getting-started/03-layouts-and-pages.mdx +++ b/docs/01-app/01-getting-started/03-layouts-and-pages.mdx @@ -4,14 +4,14 @@ nav_title: 'レイアウトとページ' description: '最初のページとレイアウトを作成し、それらをリンクします。' related: title: 'APIリファレンス' - description: 'このページで紹介されている機能について詳しくは、APIリファレンスをお読みください。' + description: 'このページで言及されている機能について詳しくは、APIリファレンスをお読みください。' links: - - app/api-reference/file-conventions/layout - - app/api-reference/file-conventions/page - - app/api-reference/components/link + - 'app/api-reference/file-conventions/layout' + - 'app/api-reference/file-conventions/page' + - 'app/api-reference/components/link' --- -Next.jsは**ファイルシステムベースのルーティング**を使用しており、フォルダとファイルを使用してルートを定義できます。このページでは、レイアウトとページの作成方法、およびそれらをリンクする方法を説明します。 +Next.jsは**ファイルシステムベースのルーティング**を使用しており、フォルダとファイルを使ってルートを定義できます。このページでは、レイアウトとページの作成方法、およびそれらをリンクする方法について説明します。 ## ページの作成 {#creating-a-page} @@ -48,9 +48,9 @@ export default function Page() { ## レイアウトの作成 {#creating-a-layout} -レイアウトは、複数のページ間で**共有**されるUIです。ナビゲーション時にレイアウトは状態を保持し、インタラクティブなままで、再レンダリングされません。 +レイアウトは複数のページ間で**共有**されるUIです。ナビゲーション時にレイアウトは状態を保持し、インタラクティブなままで、再レンダリングされません。 -レイアウトを定義するには、[`layout`ファイル](/docs/app/api-reference/file-conventions/layout)からReactコンポーネントをデフォルトエクスポートします。コンポーネントは、ページまたは別の[レイアウト](#nesting-layouts)となる`children`プロップを受け入れる必要があります。 +レイアウトを定義するには、[`layout`ファイル](/docs/app/api-reference/file-conventions/layout)からReactコンポーネントをデフォルトエクスポートします。このコンポーネントは、ページまたは別の[レイアウト](#nesting-layouts)となる`children` propを受け取る必要があります。 たとえば、インデックスページを子として受け入れるレイアウトを作成するには、`app`ディレクトリ内に`layout`ファイルを追加します: @@ -103,7 +103,7 @@ export default function DashboardLayout({ children }) { -上記のレイアウトは、`app`ディレクトリのルートに定義されているため、[root レイアウト](/docs/app/api-reference/file-conventions/layout#root-layouts)と呼ばれます。root レイアウトは**必須**であり、`html`および`body`タグを含める必要があります。 +上記のレイアウトは、`app`ディレクトリのrootに定義されているため、[root レイアウト](/docs/app/api-reference/file-conventions/layout#root-layouts)と呼ばれます。root レイアウトは**必須**であり、`html`および`body`タグを含める必要があります。 ## ネストされたルートの作成 {#creating-a-nested-route} @@ -115,10 +115,10 @@ export default function DashboardLayout({ children }) { Next.jsでは: -- **フォルダ**は、URLセグメントにマッピングされるルートセグメントを定義するために使用されます。 +- **フォルダ**は、URLセグメントにマップされるルートセグメントを定義するために使用されます。 - **ファイル**(`page`や`layout`など)は、セグメントに表示されるUIを作成するために使用されます。 -ネストされたルートを作成するには、フォルダを互いにネストできます。たとえば、`/blog`のルートを追加するには、`app`ディレクトリに`blog`というフォルダを作成します。次に、`/blog`を公開するには、`page`ファイルを追加します: +ネストされたルートを作成するには、フォルダを互いにネストできます。たとえば、`/blog`のルートを追加するには、`app`ディレクトリに`blog`というフォルダを作成します。次に、`/blog`を公開アクセス可能にするために、`page.tsx`ファイルを追加します: blogフォルダとpage.jsファイルを示すファイル階層 ```tsx title="app/blog/page.tsx" switcher +// ダミーインポート import { getPosts } from '@/lib/posts' import { Post } from '@/ui/post' @@ -154,6 +155,7 @@ export default async function Page() { ```jsx title="app/blog/[slug]/page.js" switcher +// ダミーインポート import { getPosts } from '@/lib/posts' import { Post } from '@/ui/post' @@ -173,10 +175,10 @@ export default async function Page() { -フォルダをネストし続けて、ネストされたルートを作成できます。たとえば、特定のブログ投稿のルートを作成するには、`blog`内に新しい`[slug]`フォルダを作成し、`page`ファイルを追加します: +フォルダをさらにネストして、ネストされたルートを作成し続けることができます。たとえば、特定のブログ投稿のルートを作成するには、`blog`内に新しい`[slug]`フォルダを作成し、`page`ファイルを追加します: slugフォルダとpage.jsファイルをネストしたblogフォルダを示すファイル階層 -> **Good to know**: フォルダ名を角括弧で囲む(例:`[slug]`)と、データから複数のページを生成するための特別な[dynamic route segment](/docs/app/building-your-application/routing/dynamic-routes)が作成されます。これは、ブログ投稿や商品ページなどに便利です。 +フォルダ名を角括弧で囲む(例:`[slug]`)と、データから複数のページを生成するために使用される[dynamic route segment](/docs/app/building-your-application/routing/dynamic-routes)が作成されます。例:ブログ投稿、商品ページなど。 ## レイアウトのネスト {#nesting-layouts} -デフォルトでは、フォルダ階層内のレイアウトもネストされており、`children`プロップを介して子レイアウトをラップします。特定のルートセグメント(フォルダ)内に`layout`を追加することで、レイアウトをネストできます。 +デフォルトでは、フォルダ階層内のレイアウトもネストされており、`children` propを介して子レイアウトをラップします。特定のルートセグメント(フォルダ)内に`layout`を追加することで、レイアウトをネストできます。 たとえば、`/blog`ルートのレイアウトを作成するには、`blog`フォルダ内に新しい`layout`ファイルを追加します。 root レイアウトがblogレイアウトをラップしているファイル階層 -上記の2つのレイアウトを組み合わせると、root レイアウト(`app/layout.js`)がブログレイアウト(`app/blog/layout.js`)をラップし、ブログ(`app/blog/page.js`)およびブログ投稿ページ(`app/blog/[slug]/page.js`)をラップします。 +上記の2つのレイアウトを組み合わせると、root レイアウト(`app/layout.js`)がブログレイアウト(`app/blog/layout.js`)をラップし、ブログ(`app/blog/page.js`)とブログ投稿ページ(`app/blog/[slug]/page.js`)をラップします。 ## ページ間のリンク {#linking-between-pages} -ルート間をナビゲートするには、[``コンポーネント](/docs/app/api-reference/components/link)を使用できます。``は、HTMLの``タグを拡張してプリフェッチとクライアントサイドナビゲーションを提供する、Next.jsの組み込みコンポーネントです。 +ルート間をナビゲートするには、[``コンポーネント](/docs/app/api-reference/components/link)を使用できます。``は、HTMLの``タグを拡張して[プリフェッチ](/docs/app/building-your-application/routing/linking-and-navigating#2-prefetching)と[クライアントサイドナビゲーション](/docs/app/building-your-application/routing/linking-and-navigating#5-soft-navigation)を提供する、Next.jsの組み込みコンポーネントです。 -たとえば、ブログ投稿のリストを生成するには、`next/link`から``をインポートし、コンポーネントに`href`プロップを渡します: +たとえば、ブログ投稿のリストを生成するには、`next/link`から``をインポートし、コンポーネントに`href` propを渡します: diff --git a/docs/01-app/01-getting-started/04-images-and-fonts.mdx b/docs/01-app/01-getting-started/04-images-and-fonts.mdx index 512e5149..01d5ba53 100644 --- a/docs/01-app/01-getting-started/04-images-and-fonts.mdx +++ b/docs/01-app/01-getting-started/04-images-and-fonts.mdx @@ -4,34 +4,22 @@ nav_title: '画像とフォント' description: '画像とフォントの最適化方法を学びましょう。' related: title: 'APIリファレンス' - description: 'このページで言及されている機能について詳しくは、APIリファレンスをお読みください。' + description: 'このページで言及されている機能について詳しく知るには、APIリファレンスを参照してください。' links: - - app/api-reference/components/font - - app/api-reference/components/image + - 'app/api-reference/components/font' + - 'app/api-reference/components/image' --- -Next.jsには、パフォーマンスとユーザーエクスペリエンスを向上させるための自動画像およびフォント最適化機能が備わっています。このページでは、それらの使い方を説明します。 - -## 静的アセットの取り扱い {#handling-static-assets} - -画像やフォントなどの静的ファイルは、ルートディレクトリ内の`public`というフォルダに保存できます。`public`内のファイルは、ベースURL(`/`)から始まるコードで参照できます。 - -アプリとパブリックフォルダを示すフォルダ構造 +Next.jsには自動的な画像とフォントの最適化機能が備わっています。このページでは、それらの使い方について説明します。 ## 画像の最適化 {#optimizing-images} -Next.jsの[``](/docs/app/building-your-application/optimizing/images)コンポーネントは、HTMLの``要素を拡張して以下を提供します: +Next.jsの[``](/docs/app/building-your-application/optimizing/images)コンポーネントは、HTMLの``要素を拡張して以下の機能を提供します: -- **サイズの最適化:** WebPなどの最新の画像フォーマットを使用して、各デバイスに適したサイズの画像を自動的に提供します +- **サイズの最適化:** 各デバイスに適したサイズの画像を自動的に提供し、WebPのような最新の画像フォーマットを使用します - **視覚的安定性:** 画像の読み込み時に[レイアウトシフト](https://web.dev/articles/cls)を自動的に防ぎます -- **高速なページ読み込み:** ネイティブブラウザの遅延読み込みを使用して、画像がビューポートに入ったときにのみ画像を読み込み、オプションでぼかしプレースホルダーを使用します -- **アセットの柔軟性:** リモートサーバーに保存されている画像でも、オンデマンドで画像をリサイズします +- **ページの高速読み込み:** ネイティブブラウザの遅延読み込みを使用して、画像がビューポートに入ったときにのみ読み込み、オプションでぼかしプレースホルダーを使用します +- **アセットの柔軟性:** リモートサーバーに保存された画像であっても、オンデマンドで画像をリサイズします ``を使用するには、`next/image`からインポートし、コンポーネント内でレンダリングします。 @@ -60,11 +48,19 @@ export default function Page() { -`src`プロパティは、[ローカル](#local-images)または[リモート](#remote-images)の画像にすることができます。 +`src`プロパティは[ローカル](#local-images)または[リモート](#remote-images)の画像を指定できます。 ### ローカル画像 {#local-images} -ローカル画像を使用するには、[`public`フォルダ](#handling-static-assets)から`.jpg`、`.png`、または`.webp`画像ファイルを`import`します。 +静的ファイル(画像やフォントなど)は、ルートディレクトリの`public`というフォルダに保存できます。`public`内のファイルは、ベースURL(`/`)から始めてコードで参照できます。 + +appフォルダとpublicフォルダを示すフォルダ構造 @@ -81,7 +77,7 @@ export default function Page() { // width={500} 自動的に提供されます // height={500} 自動的に提供されます // blurDataURL="data:..." 自動的に提供されます - // placeholder="blur" // 読み込み中のオプションのぼかし + // placeholder="blur" // 読み込み中のぼかしをオプションで表示 /> ) } @@ -102,7 +98,7 @@ export default function Page() { // width={500} 自動的に提供されます // height={500} 自動的に提供されます // blurDataURL="data:..." 自動的に提供されます - // placeholder="blur" // 読み込み中のオプションのぼかし + // placeholder="blur" // 読み込み中のぼかしをオプションで表示 /> ) } @@ -115,7 +111,7 @@ Next.jsは、インポートされたファイルに基づいて画像の固有 ### リモート画像 {#remote-images} -リモート画像を使用するには、`src`プロパティにURL文字列を指定できます。 +リモート画像を使用するには、`src`プロパティにURL文字列を指定します。 @@ -156,9 +152,9 @@ export default function Page() { -Next.jsはビルドプロセス中にリモートファイルにアクセスできないため、[`width`](/docs/app/api-reference/components/image#width)、[`height`](/docs/app/api-reference/components/image#height)、およびオプションの[`blurDataURL`](/docs/app/api-reference/components/image#blurdataurl) propsを手動で指定する必要があります。`width`と`height`属性は、画像の正しいアスペクト比を推測し、画像の読み込みによるレイアウトシフトを回避するために使用されます。 +Next.jsはビルドプロセス中にリモートファイルにアクセスできないため、[`width`](/docs/app/api-reference/components/image#width)、[`height`](/docs/app/api-reference/components/image#height)、およびオプションの[`blurDataURL`](/docs/app/api-reference/components/image#blurdataurl)のpropsを手動で指定する必要があります。`width`と`height`は、画像の正しいアスペクト比を推測し、画像の読み込みによるレイアウトシフトを防ぐために使用されます。 -次に、リモートサーバーからの画像を安全に許可するために、[`next.config.js`](/docs/app/api-reference/config/next-config-js)でサポートされるURLパターンのリストを定義する必要があります。悪意のある使用を防ぐために、できるだけ具体的にしてください。たとえば、次の設定では、特定のAWS S3バケットからの画像のみが許可されます: +リモートサーバーからの画像を安全に許可するには、[`next.config.js`](/docs/app/api-reference/config/next-config-js)でサポートされるURLパターンのリストを定義する必要があります。悪意のある使用を防ぐために、できるだけ具体的にしてください。たとえば、次の設定では、特定のAWS S3バケットからの画像のみを許可します: @@ -209,7 +205,7 @@ module.exports = { [`next/font`](/docs/app/api-reference/components/font)モジュールは、フォントを自動的に最適化し、外部ネットワークリクエストを削除してプライバシーとパフォーマンスを向上させます。 -これは、*任意の*フォントファイルに対する**組み込みの自動セルフホスティング**を含んでいます。これにより、レイアウトシフトなしでWebフォントを最適に読み込むことができます。 +これは、任意のフォントファイルに対して**組み込みのセルフホスティング**を含んでいます。これにより、レイアウトシフトなしでWebフォントを最適に読み込むことができます。 `next/font`を使用するには、[`next/font/local`](#local-fonts)または[`next/font/google`](#google-fonts)からインポートし、適切なオプションで関数として呼び出し、フォントを適用したい要素の`className`を設定します。例えば: @@ -305,12 +301,12 @@ export default function RootLayout({ children }) { -最高のパフォーマンスと柔軟性を得るために、[可変フォント](https://fonts.google.com/variablefonts)を使用することをお勧めします。しかし、可変フォントを使用できない場合は、**ウェイトを指定する必要があります**: +最高のパフォーマンスと柔軟性を得るために、[可変フォント](https://fonts.google.com/variablefonts)を使用することをお勧めします。しかし、可変フォントを使用できない場合は、ウェイトを指定する必要があります: -```tsx title="app/layout.tsx" switcher +```tsx title="app/layout.tsx" highlight={4} switcher import { Roboto } from 'next/font/google' const roboto = Roboto({ @@ -334,7 +330,7 @@ export default function RootLayout({ -```jsx title="app/layout.js" highlight={1,3-5,9} switcher +```jsx title="app/layout.js" highlight={4} switcher import { Roboto } from 'next/font/google' const roboto = Roboto({ @@ -356,7 +352,7 @@ export default function RootLayout({ children }) { ### ローカルフォント {#local-fonts} -ローカルフォントを使用するには、`next/font/local`からフォントをインポートし、[`public`フォルダ](#handling-static-assets)内のローカルフォントファイルの`src`を指定します。 +ローカルフォントを使用するには、`next/font/local`からフォントをインポートし、ローカルフォントファイルの[`src`](/docs/app/api-reference/components/font#src)を指定します。 diff --git a/docs/01-app/01-getting-started/05-css.mdx b/docs/01-app/01-getting-started/05-css.mdx index 49ca35c7..f8cf229a 100644 --- a/docs/01-app/01-getting-started/05-css.mdx +++ b/docs/01-app/01-getting-started/05-css.mdx @@ -23,7 +23,7 @@ Next.jsは、アプリケーションでCSSを使用するためのいくつか ## CSS Modules {#css-modules} -CSS Modulesは、ユニークなクラス名を生成することでCSSをローカルにスコープします。これにより、異なるファイルで同じクラスを使用しても衝突を心配する必要がなくなります。 +CSS Modulesは、ユニークなクラス名を生成することでCSSをローカルにスコープします。これにより、異なるファイルで同じクラスを使用しても、名前の衝突を心配する必要がなくなります。 CSS Modulesを使用し始めるには、拡張子が`.module.css`の新しいファイルを作成し、`app`ディレクトリ内の任意のコンポーネントにインポートします: @@ -62,7 +62,7 @@ export default function Page({ children }) { グローバルCSSを使用して、アプリケーション全体にスタイルを適用できます。 -グローバルスタイルを使用するには、新しいCSSファイルを作成します。例えば、`app/global.css`: +グローバルスタイルを使用するには、`app/global.css`ファイルを作成し、root レイアウトにインポートして、アプリケーション内の**すべてのルート**にスタイルを適用します: ```css title="app/global.css" body { @@ -72,8 +72,6 @@ body { } ``` -ファイルをroot レイアウト(`app/layout.js`)にインポートして、アプリケーション内の**すべてのルート**にスタイルを適用します: - @@ -113,7 +111,7 @@ export default function RootLayout({ children }) { -> **Good to know:** グローバルスタイルは、`app`ディレクトリ内の任意のレイアウト、ページ、またはコンポーネントにインポートできます。ただし、Next.jsはReactの組み込みのスタイルシートサポートを使用してSuspenseと統合します。この組み込みサポートは、ルート間を移動する際にスタイルシートを削除しません。そのため、*本当に*グローバルなCSSにはグローバルスタイルを使用し、スコープされたCSSには[CSS Modules](#css-modules)を使用することをお勧めします。 +> **Good to know:** グローバルスタイルは、`app`ディレクトリ内の任意のレイアウト、ページ、またはコンポーネントにインポートできます。ただし、Next.jsはReactの組み込みのスタイルシートサポートを使用してSuspenseと統合するため、現在のところ、ルート間を移動する際にスタイルシートが削除されず、競合が発生する可能性があります。*本当に*グローバルなCSSにはグローバルスタイルを使用し、スコープされたCSSには[CSS Modules](#css-modules)を使用することをお勧めします。 ## Tailwind CSS {#tailwind-css} @@ -124,7 +122,7 @@ export default function RootLayout({ children }) { Tailwindを使用し始めるには、必要なTailwind CSSパッケージをインストールします: ```bash title="Terminal" -npm install -D tailwindcss @tailwindcss/postcss postcss +npm install tailwindcss @tailwindcss/postcss postcss ``` ### Tailwindの設定 {#configuring-tailwind} @@ -148,14 +146,13 @@ export default { @import 'tailwindcss'; ``` -次に、スタイルを[ルートレイアウト](/docs/app/api-reference/file-conventions/layout#root-layouts)にインポートします: +その後、スタイルを[ルートレイアウト](/docs/app/api-reference/file-conventions/layout#root-layouts)にインポートします: ```tsx title="app/layout.tsx" switcher import type { Metadata } from 'next' - // これらのスタイルはアプリケーション内のすべてのルートに適用されます import './globals.css' @@ -201,7 +198,7 @@ export default function RootLayout({ children }) { -最後に、アプリケーション内でTailwindのユーティリティクラスを書き始めることができます。 +その後、アプリケーション内でTailwindのユーティリティクラスを書き始めることができます。 @@ -277,9 +274,9 @@ export default nextConfig ## CSS-in-JS {#css-in-js} -> **Warning:** ランタイムJavaScriptを必要とするCSS-in-JSライブラリは、現在React Server Componentsではサポートされていません。CSS-in-JSをServer ComponentsやStreamingなどの新しいReact機能と共に使用するには、ライブラリの作者が最新のReactバージョンをサポートする必要があります。 +> **Warning:** ランタイムJavaScriptを必要とするCSS-in-JSライブラリは、現在React Server Componentsではサポートされていません。Server ComponentsやStreamingなどの新しいReact機能とCSS-in-JSを使用するには、ライブラリの作者が最新のReactバージョンをサポートする必要があります。 -次のライブラリは、`app`ディレクトリ内の**Client Components**でサポートされています(アルファベット順): +以下のライブラリは、`app`ディレクトリ内の**Client Components**でサポートされています(アルファベット順): - [`ant-design`](https://ant.design/docs/react/use-with-next#using-app-router) - [`chakra-ui`](https://chakra-ui.com/docs/get-started/frameworks/next-app) @@ -299,7 +296,7 @@ export default nextConfig - [`emotion`](https://github.com/emotion-js/emotion/issues/2928) -Server Componentsをスタイルする場合は、[CSS Modules](#css-modules)や、[Tailwind CSS](#tailwind-css)のようにCSSファイルを出力する他のソリューションを使用することをお勧めします。 +Server Componentsをスタイル設定したい場合は、[CSS Modules](#css-modules)や、[Tailwind CSS](#tailwind-css)のようにCSSファイルを出力する他のソリューションを使用することをお勧めします。 ### CSS-in-JSの設定 {#configuring-css-in-js} @@ -328,7 +325,7 @@ export default function StyledJsxRegistry({ }: { children: React.ReactNode }) { - // 遅延初期状態でスタイルシートを一度だけ作成 + // 遅延初期状態でスタイルシートを一度だけ作成します // x-ref: https://reactjs.org/docs/hooks-reference.html#lazy-initial-state const [jsxStyleRegistry] = useState(() => createStyleRegistry()) @@ -353,7 +350,7 @@ import { useServerInsertedHTML } from 'next/navigation' import { StyleRegistry, createStyleRegistry } from 'styled-jsx' export default function StyledJsxRegistry({ children }) { - // 遅延初期状態でスタイルシートを一度だけ作成 + // 遅延初期状態でスタイルシートを一度だけ作成します // x-ref: https://reactjs.org/docs/hooks-reference.html#lazy-initial-state const [jsxStyleRegistry] = useState(() => createStyleRegistry()) @@ -370,7 +367,7 @@ export default function StyledJsxRegistry({ children }) { -次に、[root レイアウト](/docs/app/api-reference/file-conventions/layout#root-layouts)をレジストリでラップします: +次に、レジストリで[ルートレイアウト](/docs/app/api-reference/file-conventions/layout#root-layouts)をラップします: @@ -450,7 +447,7 @@ export default nextConfig -次に、`styled-components` APIを使用して、レンダリング中に生成されたすべてのCSSスタイルルールを収集するグローバルレジストリコンポーネントを作成し、それらのルールを返す関数を作成します。次に、`useServerInsertedHTML`フックを使用して、レジストリに収集されたスタイルをroot レイアウトの`` HTMLタグに挿入します。 +次に、`styled-components` APIを使用して、レンダリング中に生成されたすべてのCSSスタイルルールを収集するグローバルレジストリコンポーネントを作成し、それらのルールを返す関数を作成します。その後、`useServerInsertedHTML`フックを使用して、レジストリに収集されたスタイルをルートレイアウトの`` HTMLタグに挿入します。 @@ -467,7 +464,7 @@ export default function StyledComponentsRegistry({ }: { children: React.ReactNode }) { - // 遅延初期状態でスタイルシートを一度だけ作成 + // 遅延初期状態でスタイルシートを一度だけ作成します // x-ref: https://reactjs.org/docs/hooks-reference.html#lazy-initial-state const [styledComponentsStyleSheet] = useState(() => new ServerStyleSheet()) @@ -498,7 +495,7 @@ import { useServerInsertedHTML } from 'next/navigation' import { ServerStyleSheet, StyleSheetManager } from 'styled-components' export default function StyledComponentsRegistry({ children }) { - // 遅延初期状態でスタイルシートを一度だけ作成 + // 遅延初期状態でスタイルシートを一度だけ作成します // x-ref: https://reactjs.org/docs/hooks-reference.html#lazy-initial-state const [styledComponentsStyleSheet] = useState(() => new ServerStyleSheet()) @@ -521,7 +518,7 @@ export default function StyledComponentsRegistry({ children }) { -root レイアウトの`children`をスタイルレジストリコンポーネントでラップします: +ルートレイアウトの`children`をスタイルレジストリコンポーネントでラップします: diff --git a/docs/01-app/01-getting-started/06-fetching-data.mdx b/docs/01-app/01-getting-started/06-fetching-data.mdx index 93a59270..4076e1d2 100644 --- a/docs/01-app/01-getting-started/06-fetching-data.mdx +++ b/docs/01-app/01-getting-started/06-fetching-data.mdx @@ -1,5 +1,5 @@ --- -title: 'データの取得とストリーミングの方法' +title: 'データの取得とストリーミング方法' nav_title: 'データの取得' description: 'アプリケーションでデータを取得し、コンテンツをストリーミングする方法を始めましょう。' related: @@ -64,7 +64,7 @@ export default async function Page() { #### ORM またはデータベースを使用する {#with-an-orm-or-database} -ORM またはデータベースを使用してデータを取得するには、コンポーネントを非同期関数に変換し、呼び出しを待機します: +Server component はサーバー上でレンダリングされるため、ORM やデータベースクライアントを使用して安全にデータベースクエリを実行できます。コンポーネントを非同期関数に変換し、呼び出しを待機します: @@ -210,7 +210,7 @@ export default function Posts({ posts }) { #### コミュニティライブラリ {#community-libraries} -[SWR](https://swr.vercel.app/)や[React Query](https://tanstack.com/query/latest)のようなコミュニティライブラリを使用して、client component でデータを取得できます。これらのライブラリは、キャッシング、ストリーミング、その他の機能に独自のセマンティクスを持っています。例えば、SWR を使用する場合: +[SWR](https://swr.vercel.app/)や[React Query](https://tanstack.com/query/latest)のようなコミュニティライブラリを使用して、client component でデータを取得できます。これらのライブラリは、キャッシュ、ストリーミング、その他の機能に独自のセマンティクスを持っています。例えば、SWR を使用する場合: @@ -275,7 +275,7 @@ export default function BlogPage() { > **警告:** 以下の内容は、アプリケーションで[`dynamicIO` config option](/docs/app/api-reference/config/next-config-js/dynamicIO)が有効になっていることを前提としています。このフラグは Next.js 15 canary で導入されました。 -Server component で `async/await` を使用すると、Next.js は**動的レンダリング**を選択します。これは、データがユーザーのリクエストごとにサーバーで取得され、レンダリングされることを意味します。遅いデータリクエストがある場合、ルート全体がレンダリングをブロックされます。 +Server component で `async/await` を使用すると、Next.js は**動的レンダリング**を選択します。これは、データがユーザーのリクエストごとにサーバーで取得され、レンダリングされることを意味します。データリクエストが遅い場合、ルート全体がレンダリングをブロックされます。 初期ロード時間とユーザーエクスペリエンスを向上させるために、ページの HTML を小さなチャンクに分割し、それらのチャンクをサーバーからクライアントに段階的に送信するストリーミングを使用できます。 @@ -289,7 +289,7 @@ Server component で `async/await` を使用すると、Next.js は**動的レ アプリケーションでストリーミングを実装する方法は2つあります: -1. [`loading.js` ファイル](#with-loading-js)を使用する +1. [`loading.js` ファイル](#with-loadingjs)を使用する 2. React の[`` コンポーネント](#with-suspense)を使用する ### `loading.js` を使用する {#with-loading-js} @@ -309,7 +309,7 @@ Server component で `async/await` を使用すると、Next.js は**動的レ ```tsx title="app/blog/loading.tsx" switcher export default function Loading() { - // ここで読み込み中の UI を定義します + // ここでローディング UI を定義します return
Loading...
} ``` @@ -319,7 +319,7 @@ export default function Loading() { ```jsx title="app/blog/loading.js" switcher export default function Loading() { - // ここで読み込み中の UI を定義します + // ここでローディング UI を定義します return
Loading...
} ``` @@ -327,17 +327,17 @@ export default function Loading() {
-ナビゲーション時に、ユーザーはページがレンダリングされている間にレイアウトと[読み込み状態](#creating-meaningful-loading-states)をすぐに見ることができます。レンダリングが完了すると、新しいコンテンツが自動的に入れ替わります。 +ナビゲーション時に、ユーザーはページがレンダリングされている間にレイアウトと[ローディング状態](#creating-meaningful-loading-states)をすぐに見ることができます。レンダリングが完了すると、新しいコンテンツが自動的に入れ替わります。 読み込み中の UI -舞台裏では、`loading.js` は `layout.js` 内にネストされ、`page.js` ファイルとその下のすべての子を自動的に `` boundary でラップします。 +裏側では、`loading.js` は `layout.js` 内にネストされ、`page.js` ファイルとその下のすべての子を自動的に `` boundary でラップします。 loading.js の概要
-### 意味のある読み込み状態の作成 {#creating-meaningful-loading-states} +### 意味のあるローディング状態を作成する {#creating-meaningful-loading-states} -インスタント読み込み状態は、ナビゲーション後にユーザーにすぐに表示されるフォールバック UI です。最良のユーザーエクスペリエンスを提供するために、意味のある読み込み状態を設計し、アプリが応答していることをユーザーに理解させることをお勧めします。例えば、スケルトンやスピナー、またはカバーフォトやタイトルなどの将来の画面の小さくても意味のある部分を使用できます。 +インスタントローディング状態は、ナビゲーション後にユーザーにすぐに表示されるフォールバック UI です。最良のユーザーエクスペリエンスを提供するために、意味のあるローディング状態を設計し、アプリが応答していることをユーザーに理解させることをお勧めします。例えば、スケルトンやスピナー、またはカバーフォトやタイトルなどの将来の画面の小さくても意味のある部分を使用できます。 -開発中は、[React Devtools](https://react.dev/learn/react-developer-tools)を使用してコンポーネントの読み込み状態をプレビューおよび検査できます。 +開発中は、[React Devtools](https://react.dev/learn/react-developer-tools)を使用してコンポーネントのローディング状態をプレビューおよび検査できます。 diff --git a/docs/01-app/01-getting-started/07-updating-data.mdx b/docs/01-app/01-getting-started/07-updating-data.mdx index 17f369cd..857c40d7 100644 --- a/docs/01-app/01-getting-started/07-updating-data.mdx +++ b/docs/01-app/01-getting-started/07-updating-data.mdx @@ -15,28 +15,50 @@ Next.jsでは、Reactの[Server Functions](https://react.dev/reference/rsc/serve ## Server Functionsの作成 {#creating-server-functions} -Server Functionは、[`use server`](https://react.dev/reference/rsc/use-server)ディレクティブを使用して定義できます。このディレクティブを**非同期**関数の先頭に置くことで、その関数をServer Functionとしてマークするか、別のファイルの先頭に置いてそのファイルのすべてのエクスポートをマークします。ほとんどの場合、別のファイルを使用することをお勧めします。 +Server Functionは、[`use server`](https://react.dev/reference/rsc/use-server)ディレクティブを使用して定義できます。このディレクティブを**非同期**関数の先頭に置くことで、その関数をServer Functionとしてマークするか、別のファイルの先頭に置いてそのファイルのすべてのエクスポートをマークします。 ```ts title="app/lib/actions.ts" switcher -'use server' +export async function createPost(formData: FormData) { + 'use server' + const title = formData.get('title') + const content = formData.get('content') + + // データを更新 + // キャッシュを再検証 +} -export async function createPost(formData: FormData) {} +export async function deletePost(formData: FormData) { + 'use server' + const id = formData.get('id') -export async function deletePost(formData: FormData) {} + // データを更新 + // キャッシュを再検証 +} ``` ```js title="app/lib/actions.js" switcher -'use server' +export async function createPost(formData) { + 'use server' + const title = formData.get('title') + const content = formData.get('content') -export async function createPost(formData) {} + // データを更新 + // キャッシュを再検証 +} -export async function deletePost(formData) {} +export async function deletePost(formData) { + 'use server' + const id = formData.get('id') + + // データを更新 + // キャッシュを再検証 +} ``` @@ -52,9 +74,8 @@ Server Functionsは、関数本体の先頭に`"use server"`ディレクティ ```tsx title="app/page.tsx" switcher export default function Page() { // Server Action - async function createPost() { + async function createPost(formData: FormData) { 'use server' - // データを更新 // ... } @@ -68,9 +89,8 @@ export default function Page() { ```jsx title="app/page.js" switcher export default function Page() { // Server Action - async function createPost() { + async function createPost(formData: FormData) { 'use server' - // データを更新 // ... } @@ -83,7 +103,7 @@ export default function Page() { ### Client Components {#client-components} -Client ComponentsでServer Functionsを定義することはできません。ただし、`"use server"`ディレクティブが先頭にあるファイルからインポートすることで、Client Componentsで呼び出すことができます: +Client ComponentsでServer Functionsを定義することはできません。ただし、`"use server"`ディレクティブがファイルの先頭にあるファイルからインポートすることで、Client Componentsで呼び出すことができます: @@ -139,8 +159,8 @@ export function Button() { Server Functionを呼び出す主な方法は2つあります: -1. ServerおよびClient Components内の[フォーム](#forms) -2. Client Components内の[イベントハンドラ](#event-handlers) +1. ServerおよびClient Componentsでの[フォーム](#forms) +2. Client Componentsでの[イベントハンドラ](#event-handlers) ### フォーム {#forms} @@ -222,7 +242,7 @@ export async function createPost(formData) { ### イベントハンドラ {#event-handlers} -Client Component内で`onClick`などのイベントハンドラを使用してServer Functionを呼び出すことができます。 +Client Componentで`onClick`などのイベントハンドラを使用してServer Functionを呼び出すことができます。 @@ -283,9 +303,11 @@ export default function LikeButton({ initialLikes }) { +## 例 {#examples} + ### 保留状態の表示 {#showing-a-pending-state} -Server Functionを実行している間、Reactの[`useActionState`](https://react.dev/reference/react/useActionState)フックを使用してローディングインジケーターを表示できます。このフックは`pending`ブール値を返します: +Server Functionを実行中に、Reactの[`useActionState`](https://react.dev/reference/react/useActionState)フックを使用してローディングインジケーターを表示できます。このフックは`pending`ブール値を返します: @@ -340,11 +362,10 @@ export function Button() { ```ts title="app/lib/actions.ts" switcher -'use server' - import { revalidatePath } from 'next/cache' export async function createPost(formData: FormData) { + 'use server' // データを更新 // ... @@ -358,11 +379,10 @@ export async function createPost(formData: FormData) { ```js title="app/actions.js" switcher -'use server' - import { revalidatePath } from 'next/cache' export async function createPost(formData) { + 'use server' // データを更新 // ... revalidatePath('/posts') diff --git a/docs/01-app/01-getting-started/08-error-handling.mdx b/docs/01-app/01-getting-started/08-error-handling.mdx index bd34e23f..70b06f0c 100644 --- a/docs/01-app/01-getting-started/08-error-handling.mdx +++ b/docs/01-app/01-getting-started/08-error-handling.mdx @@ -3,24 +3,26 @@ title: 'エラーの処理方法' nav_title: 'エラー処理' description: '予期されたエラーの表示方法とキャッチされない例外の処理方法を学びます。' related: - title: 'APIリファレンス' - description: 'このページで言及されている機能について詳しくは、APIリファレンスを参照してください。' + title: 'API リファレンス' + description: 'このページで言及されている機能について詳しくは、API リファレンスを参照してください。' links: - - app/api-reference/functions/redirect - - app/api-reference/file-conventions/error - - app/api-reference/functions/not-found - - app/api-reference/file-conventions/not-found + - 'app/api-reference/functions/redirect' + - 'app/api-reference/file-conventions/error' + - 'app/api-reference/functions/not-found' + - 'app/api-reference/file-conventions/not-found' --- エラーは、[予期されたエラー](#handling-expected-errors)と[キャッチされない例外](#handling-uncaught-exceptions)の2つのカテゴリに分けられます。このページでは、Next.jsアプリケーションでこれらのエラーをどのように処理するかを説明します。 ## 予期されたエラーの処理 {#handling-expected-errors} -予期されたエラーとは、[サーバーサイドのフォームバリデーション](/docs/app/building-your-application/data-fetching/server-actions-and-mutations#server-side-form-validation)や失敗したリクエストなど、アプリケーションの通常の操作中に発生する可能性のあるエラーです。これらのエラーは明示的に処理し、クライアントに返す必要があります。 +予期されたエラーは、[サーバーサイドのフォームバリデーション](/docs/app/building-your-application/data-fetching/server-actions-and-mutations#server-side-form-validation)や失敗したリクエストなど、アプリケーションの通常の操作中に発生する可能性のあるエラーです。これらのエラーは明示的に処理し、クライアントに返す必要があります。 -### Server Actions {#server-actions} +### サーバー関数 {#server-functions} -[`useActionState`](https://react.dev/reference/react/useActionState)フックを使用して、[Server Functions](https://react.dev/reference/rsc/server-functions)の状態を管理し、予期されたエラーを処理できます。予期されたエラーに対しては`try`/`catch`ブロックを使用しないでください。代わりに、予期されたエラーを例外としてスローするのではなく、戻り値としてモデル化することができます。 +[`useActionState`](https://react.dev/reference/react/useActionState)フックを使用して、[Server Functions](https://react.dev/reference/rsc/server-functions)で予期されたエラーを処理できます。 + +これらのエラーに対しては、`try`/`catch`ブロックを使用してエラーをスローするのではなく、予期されたエラーを戻り値としてモデル化します。 @@ -69,7 +71,7 @@ export async function createPost(prevState, formData) { -次に、`useActionState`フックにアクションを渡し、返された`state`を使用してエラーメッセージを表示します。 +`useActionState`フックにアクションを渡し、返された`state`を使用してエラーメッセージを表示できます。 @@ -132,9 +134,9 @@ export function Form() { -### Server Components {#server-components} +### サーバーコンポーネント {#server-components} -Server Component内でデータを取得する際、レスポンスを使用してエラーメッセージを条件付きでレンダリングしたり、[`redirect`](/docs/app/api-reference/functions/redirect)を使用したりできます。 +Server Component内でデータをフェッチする際、レスポンスを使用してエラーメッセージを条件付きでレンダリングしたり、[`redirect`](/docs/app/api-reference/functions/redirect)を行ったりできます。 @@ -237,13 +239,13 @@ export default function NotFound() { ## キャッチされない例外の処理 {#handling-uncaught-exceptions} -キャッチされない例外は、アプリケーションの通常のフロー中に発生すべきでないバグや問題を示す予期しないエラーです。これらはエラーをスローすることで処理され、その後error boundaryによってキャッチされます。 +キャッチされない例外は、アプリケーションの通常のフロー中に発生すべきでないバグや問題を示す予期しないエラーです。これらはエラーをスローすることで処理され、その後、error boundaryによってキャッチされます。 ### ネストされたerror boundary {#nested-error-boundaries} -Next.jsはキャッチされない例外を処理するためにerror boundaryを使用します。error boundaryは子コンポーネント内のエラーをキャッチし、クラッシュしたコンポーネントツリーの代わりにフォールバックUIを表示します。 +Next.jsは、キャッチされない例外を処理するためにerror boundaryを使用します。error boundaryは、その子コンポーネント内のエラーをキャッチし、クラッシュしたコンポーネントツリーの代わりにフォールバックUIを表示します。 -ルートセグメント内に[`error.js`](/docs/app/api-reference/file-conventions/error)ファイルを追加し、Reactコンポーネントをエクスポートすることでerror boundaryを作成します。 +ルートセグメント内に[`error.js`](/docs/app/api-reference/file-conventions/error)ファイルを追加し、Reactコンポーネントをエクスポートすることで、error boundaryを作成します。 @@ -314,7 +316,7 @@ export default function Error({ error, reset }) { -エラーは最も近い親のerror boundaryまでバブルアップします。これにより、[ルート階層](/docs/app/getting-started/project-structure#component-hierarchy)の異なるレベルに`error.tsx`ファイルを配置することで、細かいエラー処理が可能になります。 +エラーは最も近い親のerror boundaryにバブルアップします。これにより、[ルート階層](/docs/app/getting-started/project-structure#component-hierarchy)の異なるレベルに`error.tsx`ファイルを配置することで、細かいエラー処理が可能になります。 ネストされたエラーコンポーネント階層 @@ -138,11 +138,11 @@ Next.jsは、メタデータをUIとは別にストリームし、解決され -```tsx title="app/lib/data.ts" highlight={4} switcher +```tsx title="app/lib/data.ts" highlight={5} switcher import { cache } from 'react' import { db } from '@/app/lib/db' -// getPostは2回使用されますが、1回だけ実行されます +// getPostは2回使用されますが、実行は1回のみです export const getPost = cache(async (slug: string) => { const res = await db.query.posts.findFirst({ where: eq(posts.slug, slug) }) return res @@ -152,11 +152,11 @@ export const getPost = cache(async (slug: string) => { -```jsx title="app/lib/data.js" highlight={4} switcher +```jsx title="app/lib/data.js" highlight={5} switcher import { cache } from 'react' import { db } from '@/app/lib/db' -// getPostは2回使用されますが、1回だけ実行されます +// getPostは2回使用されますが、実行は1回のみです export const getPost = cache(async (slug) => { const res = await db.query.posts.findFirst({ where: eq(posts.slug, slug) }) return res @@ -215,7 +215,7 @@ export default async function Page({ params }) { ## Favicons {#favicons} -Faviconsは、ブックマークや検索結果でサイトを表す小さなアイコンです。アプリケーションにfaviconを追加するには、`favicon.ico`を作成し、アプリフォルダのrootに追加します。 +Faviconは、ブックマークや検索結果でサイトを表す小さなアイコンです。アプリケーションにfaviconを追加するには、`favicon.ico`を作成し、アプリフォルダのrootに追加します。 Appフォルダ内の特別なファイルとしてのFavicon、レイアウトファイルとページファイルの隣に配置 -`ImageResponse`は、flexboxや絶対位置指定、カスタムフォント、テキストの折り返し、中央揃え、ネストされた画像など、一般的なCSSプロパティをサポートしています。[サポートされているCSSプロパティの完全なリストを参照してください](/docs/app/api-reference/functions/image-response)。 +`ImageResponse`は、flexboxや絶対位置指定、カスタムフォント、テキストの折り返し、センタリング、ネストされた画像などの一般的なCSSプロパティをサポートしています。[サポートされているCSSプロパティの完全なリストを参照してください](/docs/app/api-reference/functions/image-response)。 > **Good to know**: > > - [Vercel OG Playground](https://og-playground.vercel.app/)で例を確認できます。 -> - `ImageResponse`は、[@vercel/og](https://vercel.com/docs/concepts/functions/edge-functions/og-image-generation)、[Satori](https://github.com/vercel/satori)、およびResvgを使用してHTMLとCSSをPNGに変換します。 +> - `ImageResponse`は、HTMLとCSSをPNGに変換するために[@vercel/og](https://vercel.com/docs/concepts/functions/edge-functions/og-image-generation)、[Satori](https://github.com/vercel/satori)、Resvgを使用しています。 > - flexboxとCSSプロパティのサブセットのみがサポートされています。高度なレイアウト(例:`display: grid`)は機能しません。 diff --git a/docs/01-app/01-getting-started/12-upgrading.mdx b/docs/01-app/01-getting-started/12-upgrading.mdx index 4df85bc0..ddad0bb9 100644 --- a/docs/01-app/01-getting-started/12-upgrading.mdx +++ b/docs/01-app/01-getting-started/12-upgrading.mdx @@ -1,24 +1,23 @@ --- title: 'アップグレード' -description: 'Next.jsアプリケーションを最新バージョンにアップグレードする方法を学びます。' +description: 'Next.jsアプリケーションを最新バージョンにアップグレードする方法を学びましょう。' related: title: 'バージョンガイド' description: '詳細なアップグレード手順については、バージョンガイドをご覧ください。' links: - - 'app/building-your-application/upgrading/canary' - 'app/building-your-application/upgrading/version-15' - 'app/building-your-application/upgrading/version-14' --- ## 最新バージョン {#latest-version} -Next.jsを最新バージョンに更新するには、`upgrade` codemodを使用します: +Next.jsを最新バージョンに更新するには、`upgrade` codemodを使用できます: ```bash title="Terminal" npx @next/codemod@canary upgrade latest ``` -手動でアップグレードしたい場合は、最新のNext.jsとReactのバージョンをインストールします: +手動でアップグレードしたい場合は、最新のNext.jsとReactのバージョンをインストールしてください: ```bash title="Terminal" npm i next@latest react@latest react-dom@latest eslint-config-next@latest @@ -26,7 +25,7 @@ npm i next@latest react@latest react-dom@latest eslint-config-next@latest ## Canaryバージョン {#canary-version} -最新のcanaryに更新するには、まずNext.jsの最新バージョンを使用しており、すべてが期待通りに動作していることを確認します。その後、次のコマンドを実行します: +最新のcanaryに更新するには、まずNext.jsの最新バージョンを使用しており、すべてが期待通りに動作していることを確認してください。その後、次のコマンドを実行します: ```bash title="Terminal" npm i next@canary diff --git a/docs/01-app/03-building-your-application/01-routing/03-layouts-and-templates.mdx b/docs/01-app/03-building-your-application/01-routing/03-layouts-and-templates.mdx index 2ed8c55d..7d53a6b7 100644 --- a/docs/01-app/03-building-your-application/01-routing/03-layouts-and-templates.mdx +++ b/docs/01-app/03-building-your-application/01-routing/03-layouts-and-templates.mdx @@ -1,15 +1,15 @@ --- -title: 'Layouts and Templates' -description: 'Next.jsで最初の共有レイアウトを作成します。' +title: 'Layouts と Templates' +description: 'Next.js で最初の共有レイアウトを作成します。' --- -特別なファイルである[layout.js](#layouts)と[template.js](#templates)を使用すると、ルート間で共有されるUIを作成できます。このページでは、これらの特別なファイルをどのように、そしていつ使用するかを案内します。 +特別なファイルである[layout.js](#layouts)と[template.js](#templates)を使用すると、ルート間で共有されるUIを作成できます。このページでは、これらの特別なファイルをどのように、そしていつ使用するかについて説明します。 ## Layouts {#layouts} レイアウトは、複数のルート間で**共有**されるUIです。ナビゲーション時に、レイアウトは状態を保持し、インタラクティブなままで、再レンダリングされません。レイアウトは[ネスト](#nesting-layouts)することもできます。 -`layout.js`ファイルからReactコンポーネントをデフォルトエクスポートすることで、レイアウトを定義できます。コンポーネントは、レンダリング中に子レイアウト(存在する場合)またはページで埋められる`children`プロップを受け入れる必要があります。 +`layout.js`ファイルからReactコンポーネントをデフォルトエクスポートすることで、レイアウトを定義できます。このコンポーネントは、レンダリング中に子レイアウト(存在する場合)またはページで埋められる`children` propを受け入れる必要があります。 たとえば、レイアウトは`/dashboard`および`/dashboard/settings`ページと共有されます: @@ -62,7 +62,7 @@ export default function DashboardLayout({ -### Root Layout (必須) {#root-layout-required} +### Root Layout(必須) {#root-layout-required} root レイアウトは`app`ディレクトリのトップレベルで定義され、すべてのルートに適用されます。このレイアウトは**必須**であり、`html`および`body`タグを含める必要があります。これにより、サーバーから返される初期HTMLを変更できます。 @@ -105,11 +105,11 @@ export default function RootLayout({ children }) { -### ネストされたレイアウト {#nesting-layouts} +### レイアウトのネスト {#nesting-layouts} -デフォルトでは、フォルダ階層内のレイアウトは**ネスト**されており、`children`プロップを介して子レイアウトをラップします。特定のルートセグメント(フォルダ)内に`layout.js`を追加することで、レイアウトをネストできます。 +デフォルトでは、フォルダ階層内のレイアウトは**ネスト**されており、`children` propを介して子レイアウトをラップします。特定のルートセグメント(フォルダ)内に`layout.js`を追加することで、レイアウトをネストできます。 -たとえば、`/dashboard`ルートのレイアウトを作成するには、`dashboard`フォルダ内に新しい`layout.js`ファイルを追加します: +たとえば、`/dashboard`ルート用のレイアウトを作成するには、`dashboard`フォルダ内に新しい`layout.js`ファイルを追加します: Nested Layout - レイアウトには`.js`、`.jsx`、または`.tsx`ファイル拡張子を使用できます。 > - ``および``タグを含めることができるのはroot レイアウトのみです。 > - 同じフォルダに`layout.js`と`page.js`ファイルが定義されている場合、レイアウトはページをラップします。 -> - レイアウトはデフォルトで[Server Components](/docs/app/building-your-application/rendering/server-components)ですが、[Client Component](/docs/app/building-your-application/rendering/client-components)に設定できます。 +> - レイアウトはデフォルトで[Server Components](/docs/app/building-your-application/rendering/server-components)ですが、[Client Component](/docs/app/building-your-application/rendering/client-components)に設定することもできます。 > - レイアウトはデータを取得できます。詳細は[データ取得](/docs/app/building-your-application/data-fetching)セクションを参照してください。 > - 親レイアウトとその子の間でデータを渡すことはできません。ただし、ルートで同じデータを複数回取得することができ、Reactはパフォーマンスに影響を与えることなく[リクエストを自動的に重複排除](/docs/app/building-your-application/caching#request-memoization)します。 -> - レイアウトは`pathname`にアクセスできません([詳細はこちら](/docs/app/api-reference/file-conventions/layout))。ただし、インポートされたClient Componentsは[`usePathname`](/docs/app/api-reference/functions/use-pathname)フックを使用してパス名にアクセスできます。 +> - レイアウトは`pathname`にアクセスできません([詳細はこちら](/docs/app/api-reference/file-conventions/layout))。ただし、インポートされたClient Componentsは[`usePathname`](/docs/app/api-reference/functions/use-pathname)フックを使用して`pathname`にアクセスできます。 > - レイアウトは自分自身の下のルートセグメントにアクセスできません。すべてのルートセグメントにアクセスするには、Client Componentで[`useSelectedLayoutSegment`](/docs/app/api-reference/functions/use-selected-layout-segment)または[`useSelectedLayoutSegments`](/docs/app/api-reference/functions/use-selected-layout-segments)を使用できます。 > - [Route Groups](/docs/app/building-your-application/routing/route-groups)を使用して、特定のルートセグメントを共有レイアウトに含めたり除外したりできます。 -> - [Route Groups](/docs/app/building-your-application/routing/route-groups)を使用して、複数のroot レイアウトを作成できます。[こちらの例](/docs/app/building-your-application/routing/route-groups#creating-multiple-root-layouts)を参照してください。 -> - **`pages`ディレクトリからの移行:** root レイアウトは[`_app.js`](https://nextjs.org/docs/canary/pages/building-your-application/routing/custom-app)および[`_document.js`](https://nextjs.org/docs/canary/pages/building-your-application/routing/custom-document)ファイルを置き換えます。[移行ガイドを参照](/docs/app/building-your-application/upgrading/app-router-migration#migrating-_documentjs-and-_appjs)。 +> - [Route Groups](/docs/app/building-your-application/routing/route-groups)を使用して、複数のroot レイアウトを作成できます。[こちらの例](/docs/app/getting-started/project-structure#creating-multiple-root-layouts)を参照してください。 +> - **`pages`ディレクトリからの移行**:root レイアウトは[`_app.js`](https://nextjs.org/docs/canary/pages/building-your-application/routing/custom-app)および[`_document.js`](https://nextjs.org/docs/canary/pages/building-your-application/routing/custom-document)ファイルを置き換えます。[移行ガイドを参照](/docs/app/building-your-application/upgrading/app-router-migration#migrating-_documentjs-and-_appjs)。 ## Templates {#templates} -テンプレートは、レイアウトと同様に子レイアウトやページをラップします。ルート間で持続し、状態を保持するレイアウトとは異なり、テンプレートはナビゲーション時にその子の新しいインスタンスを作成します。つまり、ユーザーがテンプレートを共有するルート間をナビゲートすると、子の新しいインスタンスがマウントされ、DOM要素が再作成され、Client Componentsの状態は**保持されず**、エフェクトが再同期されます。 +Templatesは、子レイアウトまたはページをラップする点でレイアウトに似ています。ルート間で持続し、状態を保持するレイアウトとは異なり、Templatesはナビゲーション時にその子の新しいインスタンスを作成します。つまり、ユーザーがTemplatesを共有するルート間をナビゲートすると、子の新しいインスタンスがマウントされ、DOM要素が再作成され、Client Componentsの状態は**保持されず**、エフェクトが再同期されます。 -これらの特定の動作が必要な場合があり、テンプレートはレイアウトよりも適したオプションとなるでしょう。たとえば: +これらの特定の動作が必要な場合があり、その場合はレイアウトよりもTemplatesの方が適していることがあります。たとえば: -- ナビゲーション時に`useEffect`を再同期するため。 -- ナビゲーション時に子Client Componentsの状態をリセットするため。 +- ナビゲーション時に`useEffect`を再同期するため +- ナビゲーション時に子Client Componentsの状態をリセットするため -テンプレートは、`template.js`ファイルからデフォルトのReactコンポーネントをエクスポートすることで定義できます。コンポーネントは`children`プロップを受け入れる必要があります。 +Templateは、`template.js`ファイルからデフォルトのReactコンポーネントをエクスポートすることで定義できます。このコンポーネントは`children` propを受け入れる必要があります。 template.js special file` HTML要素を変更できます。 +[Metadata API](/docs/app/building-your-application/optimizing/metadata)を使用して、`title`や`meta`などの`` HTML要素を変更できます。 メタデータは、[`layout.js`](/docs/app/api-reference/file-conventions/layout)または[`page.js`](/docs/app/api-reference/file-conventions/page)ファイルで[`metadata`オブジェクト](/docs/app/api-reference/functions/generate-metadata#the-metadata-object)または[`generateMetadata`関数](/docs/app/api-reference/functions/generate-metadata#generatemetadata-function)をエクスポートすることで定義できます。 @@ -258,15 +258,15 @@ export default function Page() { -> **Good to know**: root レイアウトに``や`<meta>`などの`<head>`タグを手動で追加するべきではありません。代わりに、[Metadata API](/docs/app/api-reference/functions/generate-metadata)を使用してください。これにより、ストリーミングや`<head>`要素の重複排除などの高度な要件が自動的に処理されます。 +> **Good to know**: `<title>`や`<meta>`などの`<head>`タグをroot レイアウトに手動で追加するべきではありません。代わりに、[Metadata API](/docs/app/api-reference/functions/generate-metadata)を使用してください。これにより、ストリーミングや`<head>`要素の重複排除などの高度な要件が自動的に処理されます。 -利用可能なメタデータオプションについては、[APIリファレンス](/docs/app/api-reference/functions/generate-metadata)で詳細を確認してください。 +利用可能なメタデータオプションの詳細は、[APIリファレンス](/docs/app/api-reference/functions/generate-metadata)で確認できます。 ### アクティブなナビゲーションリンク {#active-nav-links} [usePathname()](/docs/app/api-reference/functions/use-pathname)フックを使用して、ナビゲーションリンクがアクティブかどうかを判断できます。 -`usePathname()`はクライアントフックであるため、ナビゲーションリンクをClient Componentに抽出し、レイアウトやテンプレートにインポートする必要があります: +`usePathname()`はクライアントフックであるため、ナビゲーションリンクをClient Componentに抽出し、レイアウトまたはテンプレートにインポートする必要があります: <Tabs> <TabItem value="tsx" label="TypeScript"> diff --git a/docs/01-app/03-building-your-application/01-routing/08-route-groups.mdx b/docs/01-app/03-building-your-application/01-routing/08-route-groups.mdx index 6959daee..076d3905 100644 --- a/docs/01-app/03-building-your-application/01-routing/08-route-groups.mdx +++ b/docs/01-app/03-building-your-application/01-routing/08-route-groups.mdx @@ -1,93 +1,27 @@ --- title: 'Route Groups' -description: 'Route Groups を使用して、Next.js アプリケーションを異なるセクションに分割することができます。' +description: 'Route Groupsは、Next.jsアプリケーションを異なるセクションに分割するために使用できます。' --- -`app` ディレクトリ内では、通常入れ子構造のフォルダが URL パスにマッピングされます。しかし、フォルダを **Route Group** としてマークすることで、そのフォルダがルートの URL パスに含まれないようにできます。 +`app`ディレクトリ内では、ネストされたフォルダは通常、URLパスにマッピングされます。しかし、フォルダを**Route Group**としてマークすることで、そのフォルダがルートのURLパスに含まれないようにすることができます。 -これにより、URL パスの構造に影響を与えずに、ルートセグメントとプロジェクトファイルを論理的なグループに整理することができます。 +これにより、URLパスの構造に影響を与えることなく、ルートセグメントやプロジェクトファイルを論理的なグループに整理することができます。 -Route groups は以下の用途に役立ちます: +Route Groupsは以下の用途に役立ちます: -- URL パスに影響を与えずにルートをグループ化する例として、サイトのセクションごと、意図ごと、チームごとなどにグループ化する [ルートをグループ化する](#organize-routes-without-affecting-the-url-path) -- 同じルートセグメントレベルで [ネストされたレイアウト](/docs/app/building-your-application/routing/layouts-and-templates) を有効にする: - - [複数の root レイアウトを含む、同一セグメント内で複数のネストされたレイアウトを作成する](#creating-multiple-root-layouts) - - [共通セグメント内のルートのサブセットにレイアウトを追加する](#opting-specific-segments-into-a-layout) -- [共通セグメント内の特定ルートにローディングスケルトンを追加する](#opting-for-loading-skeletons-on-a-specific-route) +- サイトのセクション、意図、チームごとにルートをグループ化する +- 同じルートセグメントレベルでネストされたレイアウトを有効にする: + - 同じセグメント内で複数のネストされたレイアウトを作成する(複数のroot レイアウトを含む) + - 特定のセグメントをレイアウトに選択する +- 特定のルートでローディングスケルトンを選択する ## 規約 {#convention} -Route group は、フォルダ名を括弧で囲むことで作成できます:`(folderName)` - -## 例 {#examples} - -### URL パスに影響を与えずにルートを管理する {#organize-routes-without-affecting-the-url-path} - -URL に影響を与えずにルートを管理するには、関連しているルートをまとめておくためのグループを作成します。括弧内のフォルダは URL から省略されます(例えば、`(marketing)` や `(shop)` など)。 - -<Image - alt="Route Group を使ったルートの整理" - srcLight="/docs/light/route-group-organisation.png" - srcDark="/docs/dark/route-group-organisation.png" - width="1600" - height="930" -/> - -`(marketing)` や `(shop)` 内のルートが同じ URL 階層を共有しているとしても、それぞれのグループ内に `layout.js` ファイルを追加することで異なるレイアウトを作成できます。 - -<Image - alt="複数のレイアウトを持つ Route Group" - srcLight="/docs/light/route-group-multiple-layouts.png" - srcDark="/docs/dark/route-group-multiple-layouts.png" - width="1600" - height="768" -/> - -### 特定のセグメントをレイアウトに選択する {#opting-specific-segments-into-a-layout} - -特定のルートをレイアウトに選択するには、新しい Route Group(例:`(shop)`)を作成し、同じレイアウトを共有するルートをそのグループに移動します(例:`account` と `cart`)。グループ外のルートはレイアウトを共有しません(例:`checkout`)。 - -<Image - alt="オプトインレイアウトを持つ Route Group" - srcLight="/docs/light/route-group-opt-in-layouts.png" - srcDark="/docs/dark/route-group-opt-in-layouts.png" - width="1600" - height="930" -/> - -### 特定ルートにローディングスケルトンを選択する {#opting-for-loading-skeletons-on-a-specific-route} - -`loading.js` ファイルを使って特定のルートに [ローディングスケルトン](/docs/app/building-your-application/routing/loading-ui-and-streaming) を適用するには、新しい Route Group(例:`/(overview)`)を作成し、そのグループ内に `loading.tsx` を移動します。 - -<Image - alt="Route グループ内に loading.tsx と page.tsx が含まれるフォルダ構造" - srcLight="/docs/light/route-group-loading.png" - srcDark="/docs/dark/route-group-loading.png" - width="1600" - height="444" -/> - -これで、`loading.tsx` ファイルはダッシュボード → 概要ページにのみ適用され、他のダッシュボードページには影響を与えずに URL パスの構造も影響しません。 - -### 複数の root レイアウトを作成する {#creating-multiple-root-layouts} - -複数の [root レイアウト](/docs/app/building-your-application/routing/layouts-and-templates#root-layout-required) を作成するには、トップレベルの `layout.js` ファイルを削除し、各 Route Group 内に `layout.js` ファイルを追加します。これは、UI や体験が完全に異なるセクションにアプリケーションを分割するのに便利です。それぞれの root レイアウトに `<html>` と `<body>` タグを追加する必要があります。 - -<Image - alt="複数の root レイアウトを持つ Route Group" - srcLight="/docs/light/route-group-multiple-root-layouts.png" - srcDark="/docs/dark/route-group-multiple-root-layouts.png" - width="1600" - height="687" -/> - -上記の例では、`(marketing)` と `(shop)` はそれぞれ自身の root レイアウトを持っています。 - ---- +Route Groupは、フォルダ名を括弧で囲むことで作成できます:`(folderName)` > **Good to know**: > -> - Route Groups の命名は、組織のためのものであり、それ自体に特別な意味はありません。URL パスには影響を与えません。 -> - Route Group を含むルートは、他のルートと同じ URL パスに解決 **されないようにする必要があります。** 例えば、Route Groups は URL 構造に影響を与えないため、`(marketing)/about/page.js` と `(shop)/about/page.js` はどちらも `/about` に解決してエラーを引き起こします。 -> - 複数の root レイアウトをトップレベルの `layout.js` ファイルなしで使用する場合、ホームの `page.js` ファイルは Route Groups のひとつに定義する必要があります。例えば:`app/(marketing)/page.js`。 -> - **複数の root レイアウト間**をナビゲートすることは、(クライアントサイドのナビゲーションとは対照的に)**完全なページロード** を引き起こします。例えば、`app/(shop)/layout.js` を使用している `/cart` から、`app/(marketing)/layout.js` を使用している `/blog` へナビゲートすると完全なページロードが発生します。これは **複数の root レイアウトにのみ** 適用されます。 +> - Route Groupの命名は、組織化以外に特別な意味を持ちません。URLパスには影響を与えません。 +> - Route Groupを含むルートは、他のルートと同じURLパスに解決される**べきではありません**。たとえば、Route GroupはURL構造に影響を与えないため、`(marketing)/about/page.js`と`(shop)/about/page.js`はどちらも`/about`に解決され、エラーが発生します。 +> - トップレベルの`layout.js`ファイルなしで複数のroot レイアウトを使用する場合、ホームの`page.js`ファイルはRoute Groupの1つに定義する必要があります。例:`app/(marketing)/page.js`。 +> - **複数のroot レイアウトをまたいで**ナビゲートすると、**フルページロード**が発生します(クライアントサイドのナビゲーションとは異なります)。たとえば、`app/(shop)/layout.js`を使用する`/cart`から`app/(marketing)/layout.js`を使用する`/blog`にナビゲートすると、フルページロードが発生します。これは**複数のroot レイアウト**にのみ適用されます。 diff --git a/docs/01-app/03-building-your-application/06-optimizing/14-local-development.mdx b/docs/01-app/03-building-your-application/06-optimizing/14-local-development.mdx index b2949d98..2795dc10 100644 --- a/docs/01-app/03-building-your-application/06-optimizing/14-local-development.mdx +++ b/docs/01-app/03-building-your-application/06-optimizing/14-local-development.mdx @@ -23,14 +23,14 @@ Next.jsは、優れた開発者体験を提供するように設計されてい Next.jsの最新バージョンを使用していることを確認してください。新しいバージョンには、パフォーマンスの向上が含まれていることがよくあります。 -Turbopackは、Next.jsに統合された新しいバンドラーで、ローカルパフォーマンスを向上させることができます。 +Turbopackは、Next.jsに統合された新しいバンドラーで、ローカルのパフォーマンスを向上させることができます。 ```bash npm install next@latest npm run dev --turbopack ``` -[Turbopackについて詳しく学ぶ](https://nextjs.org/blog/turbopack-for-development-stable)。詳細については、[アップグレードガイド](/docs/app/building-your-application/upgrading)とコードモッドをご覧ください。 +[Turbopackについて詳しくはこちら](https://nextjs.org/blog/turbopack-for-development-stable)。詳細については、[アップグレードガイド](/docs/app/building-your-application/upgrading)とコードモッドをご覧ください。 ### 3. インポートを確認する {#3-check-your-imports} @@ -62,9 +62,9 @@ import Icon2 from 'react-icons/md/Icon2' ### バレルファイル {#barrel-files} -「バレルファイル」は、他のファイルから多くのアイテムをエクスポートするファイルです。これらは、モジュールスコープ内で副作用があるかどうかをインポートを使用して解析する必要があるため、ビルドを遅くする可能性があります。 +"バレルファイル"は、他のファイルから多くのアイテムをエクスポートするファイルです。これらは、モジュールスコープ内で副作用があるかどうかをインポートを使用してコンパイラが解析する必要があるため、ビルドを遅くする可能性があります。 -可能であれば、特定のファイルから直接インポートするようにしてください。[バレルファイルについて詳しく学ぶ](https://vercel.com/blog/how-we-optimized-package-imports-in-next-js)と、Next.jsにおける組み込みの最適化について学びましょう。 +可能であれば、特定のファイルから直接インポートするようにしてください。[バレルファイルについて詳しくはこちら](https://vercel.com/blog/how-we-optimized-package-imports-in-next-js)とNext.jsの組み込み最適化について学びましょう。 ### パッケージインポートの最適化 {#optimize-package-imports} @@ -84,7 +84,7 @@ Tailwind CSSを使用している場合は、正しく設定されているこ 一般的な間違いは、`content`配列を`node_modules`やスキャンすべきでない他の大きなディレクトリを含むように設定することです。 -Tailwind CSSバージョン3.4.8以降では、ビルドを遅くする可能性のある設定について警告します。 +Tailwind CSSバージョン3.4.8以降では、ビルドを遅くする可能性のある設定について警告が表示されます。 1. `tailwind.config.js`で、スキャンするファイルを具体的に指定します: @@ -99,12 +99,12 @@ Tailwind CSSバージョン3.4.8以降では、ビルドを遅くする可能性 } ``` -2. 不要なファイルのスキャンを避けます: +2. 不要なファイルのスキャンを避ける: ```jsx module.exports = { content: [ - // より良い例 - 'src'フォルダのみをスキャン + // より良い - 'src'フォルダのみをスキャン '../../packages/ui/src/**/*.{js,ts,jsx,tsx}', ], } @@ -114,27 +114,27 @@ Tailwind CSSバージョン3.4.8以降では、ビルドを遅くする可能性 カスタムwebpack設定を追加した場合、それがコンパイルを遅くしている可能性があります。 -ローカル開発に本当に必要かどうかを検討してください。特定のツールを本番ビルドのみに含めるか、Turbopackに移行して[loaders](/docs/app/api-reference/config/next-config-js/turbo#supported-loaders)を使用することを検討してください。 +ローカル開発に本当に必要かどうかを検討してください。特定のツールを本番ビルドのみに含めるか、Turbopackに移行して[loaders](/docs/app/api-reference/config/next-config-js/turbopack#supported-loaders)を使用することを検討してください。 ### 6. メモリ使用量の最適化 {#6-optimize-memory-usage} アプリが非常に大きい場合、より多くのメモリが必要になるかもしれません。 -[メモリ使用量の最適化について詳しく学ぶ](/docs/app/building-your-application/optimizing/memory-usage)。 +[メモリ使用量の最適化について詳しくはこちら](/docs/app/building-your-application/optimizing/memory-usage)。 ### 7. Server Componentsとデータフェッチ {#7-server-components-and-data-fetching} -Server Componentsへの変更は、ページ全体を再レンダリングし、新しいデータをコンポーネントに表示するためにローカルで再レンダリングを引き起こします。 +Server Componentsへの変更は、新しい変更を表示するためにページ全体を再レンダリングする必要があり、コンポーネントの新しいデータをフェッチすることを含みます。 実験的な`serverComponentsHmrCache`オプションを使用すると、ローカル開発中のホットモジュールリプレースメント(HMR)リフレッシュ間でServer Components内の`fetch`レスポンスをキャッシュできます。これにより、応答が高速化され、課金されるAPIコールのコストが削減されます。 -[実験的オプションについて詳しく学ぶ](/docs/app/api-reference/config/next-config-js/serverComponentsHmrCache)。 +[実験的オプションについて詳しくはこちら](/docs/app/api-reference/config/next-config-js/serverComponentsHmrCache)。 ## 問題を見つけるためのツール {#tools-for-finding-problems} -### 詳細なfetchログ {#detailed-fetch-logging} +### 詳細なフェッチログ {#detailed-fetch-logging} -開発中に何が起こっているのかをより詳細に知るために、このコマンドを使用してください: +開発中に何が起こっているのかをより詳細に確認するには、このコマンドを使用してください: ```bash next dev --verbose @@ -145,7 +145,7 @@ next dev --verbose すべて試しても問題が解決しない場合: 1. 問題を示すアプリの簡単なバージョンを作成します。 -2. 何が起こっているのかを示す特別なファイルを生成します: +2. 何が起こっているかを示す特別なファイルを生成します: ```bash NEXT_CPU_PROF=1 npm run dev diff --git a/docs/01-app/03-building-your-application/07-configuring/05-mdx.mdx b/docs/01-app/03-building-your-application/07-configuring/05-mdx.mdx index 1535570f..72125baf 100644 --- a/docs/01-app/03-building-your-application/07-configuring/05-mdx.mdx +++ b/docs/01-app/03-building-your-application/07-configuring/05-mdx.mdx @@ -1,10 +1,10 @@ --- title: 'MarkdownとMDX' nav_title: 'MDX' -description: 'MDXを設定し、Next.jsアプリでの使用方法を学びましょう。' +description: 'MDXを設定し、Next.jsアプリで使用する方法を学びます。' --- -{/* このドキュメントの内容はapp routerとpages routerの間で共有されています。Pages Routerに特化した内容を追加するには、`<PagesOnly>Content</PagesOnly>`コンポーネントを使用できます。共有されるコンテンツはコンポーネントでラップしないでください。 */} +{/* このドキュメントの内容はapp routerとpages routerの間で共有されています。Pages Routerに特有のコンテンツを追加するには、`<PagesOnly>Content</PagesOnly>`コンポーネントを使用できます。共有コンテンツはコンポーネントでラップしないでください。 */} [Markdown](https://daringfireball.net/projects/markdown/syntax)は、テキストをフォーマットするための軽量マークアップ言語です。プレーンテキストの構文を使用して書き、それを構造的に有効なHTMLに変換することができます。ウェブサイトやブログのコンテンツを書く際によく使用されます。 @@ -20,7 +20,7 @@ I **love** using [Next.js](https://nextjs.org/) <p>I <strong>love</strong> using <a href="https://nextjs.org/">Next.js</a></p> ``` -[MDX](https://mdxjs.com/)は、Markdownのスーパーセットであり、Markdownファイル内で直接[JSX](https://react.dev/learn/writing-markup-with-jsx)を書くことができます。これは、動的なインタラクティビティを追加し、Reactコンポーネントをコンテンツ内に埋め込む強力な方法です。 +[MDX](https://mdxjs.com/)は、Markdownのスーパーセットであり、[JSX](https://react.dev/learn/writing-markup-with-jsx)をMarkdownファイル内で直接書くことができます。これは、動的なインタラクティビティを追加し、Reactコンポーネントをコンテンツ内に埋め込む強力な方法です。 Next.jsは、アプリケーション内のローカルMDXコンテンツと、サーバー上で動的にフェッチされるリモートMDXファイルの両方をサポートできます。Next.jsプラグインは、MarkdownとReactコンポーネントをHTMLに変換する処理を行い、Server Components(App Routerでのデフォルト)での使用もサポートしています。 @@ -38,7 +38,7 @@ npm install @next/mdx @mdx-js/loader @mdx-js/react @types/mdx ## `next.config.mjs`の設定 {#configure-next-config-mjs} -プロジェクトのルートにある`next.config.mjs`ファイルを更新して、MDXを使用するように設定します: +プロジェクトのrootにある`next.config.mjs`ファイルを更新して、MDXを使用するように設定します: ```js title="next.config.mjs" import createMDX from '@next/mdx' @@ -47,22 +47,22 @@ import createMDX from '@next/mdx' const nextConfig = { // `pageExtensions`を設定して、MarkdownとMDXファイルを含める pageExtensions: ['js', 'jsx', 'md', 'mdx', 'ts', 'tsx'], - // 必要に応じて、他のNext.jsの設定を追加 + // 必要に応じて、他のNext.jsの設定を以下に追加 } const withMDX = createMDX({ - // 必要に応じてMarkdownプラグインを追加 + // 必要に応じてMarkdownプラグインをここに追加 }) // MDX設定とNext.js設定をマージ export default withMDX(nextConfig) ``` -これにより、`.md`および`.mdx`ファイルをアプリケーション内のページ、ルート、またはインポートとして使用できるようになります。 +これにより、`.md`および`.mdx`ファイルがアプリケーション内でページ、ルート、またはインポートとして機能するようになります。 ## `mdx-components.tsx`ファイルの追加 {#add-an-mdx-components-tsx-file} -プロジェクトのルートに`mdx-components.tsx`(または`.js`)ファイルを作成して、グローバルなMDXコンポーネントを定義します。例えば、`pages`や`app`と同じレベル、または該当する場合は`src`内に配置します。 +プロジェクトのrootに`mdx-components.tsx`(または`.js`)ファイルを作成して、グローバルなMDXコンポーネントを定義します。たとえば、`pages`や`app`と同じレベル、または該当する場合は`src`内に配置します。 <Tabs> <TabItem value="tsx" label="TypeScript"> @@ -95,7 +95,7 @@ export function useMDXComponents(components) { > > - `mdx-components.tsx`は、App Routerで`@next/mdx`を使用するために**必須**であり、これがないと動作しません。 > - [`mdx-components.tsx`ファイルの規約](/docs/app/api-reference/file-conventions/mdx-components)について詳しく学びましょう。 -> - [カスタムスタイルとコンポーネントの使用](#using-custom-styles-and-components)方法を学びましょう。 +> - [カスタムスタイルとコンポーネントの使用](#using-custom-styles-and-components)について学びましょう。 ## MDXのレンダリング {#rendering-mdx} @@ -136,7 +136,7 @@ App Routerアプリでは、[メタデータ](/docs/app/building-your-applicatio </PagesOnly> -これらのファイル内でMDXを使用し、MDXページ内で直接Reactコンポーネントをインポートすることもできます: +これらのファイル内でMDXを使用し、MDXページ内でReactコンポーネントを直接インポートすることもできます: ```mdx import { MyComponent } from 'my-component' @@ -165,13 +165,13 @@ Checkout my React component: `/app`ディレクトリ内に新しいページを作成し、任意の場所にMDXファイルを作成します: ```txt - my-project - ├── app - │ └── mdx-page + . + ├── app/ + │ └── mdx-page/ │ └── page.(tsx/js) - ├── markdown + ├── markdown/ │ └── welcome.(mdx/md) - |── mdx-components.(tsx/js) + ├── mdx-components.(tsx/js) └── package.json ``` @@ -182,18 +182,18 @@ Checkout my React component: `/pages`ディレクトリ内に新しいページを作成し、任意の場所にMDXファイルを作成します: ```txt - my-project - ├── pages - │ └── mdx-page.(tsx/js) - ├── markdown + . + ├── markdown/ │ └── welcome.(mdx/md) - |── mdx-components.(tsx/js) + ├── pages/ + │ └── mdx-page.(tsx/js) + ├── mdx-components.(tsx/js) └── package.json ``` </PagesOnly> -これらのファイル内でMDXを使用し、MDXページ内で直接Reactコンポーネントをインポートすることもできます: +これらのファイル内でMDXを使用し、MDXページ内でReactコンポーネントを直接インポートすることもできます: <Tabs> <TabItem value="mdx" label="mdx"> @@ -219,7 +219,7 @@ Checkout my React component: </TabItem> </Tabs> -ページ内でMDXファイルをインポートしてコンテンツを表示します: +ページ内でMDXファイルをインポートして、コンテンツを表示します: <AppOnly> @@ -285,9 +285,9 @@ export default function Page() { ### 動的インポートを使用する {#using-dynamic-imports} -ファイルシステムルーティングを使用せずに、動的なMDXコンポーネントをインポートできます。 +ファイルシステムルーティングを使用する代わりに、動的MDXコンポーネントをインポートできます。 -例えば、別のディレクトリからMDXコンポーネントをロードする動的ルートセグメントを持つことができます: +たとえば、別のディレクトリからMDXコンポーネントをロードする動的ルートセグメントを持つことができます: <Image alt="動的MDXコンポーネントのルートセグメント" @@ -297,7 +297,7 @@ export default function Page() { height="849" /> -[`generateStaticParams`](/docs/app/api-reference/functions/generate-static-params)を使用して、提供されたルートを事前レンダリングできます。`dynamicParams`を`false`に設定すると、`generateStaticParams`で定義されていないルートにアクセスすると404になります。 +[`generateStaticParams`](/docs/app/api-reference/functions/generate-static-params)を使用して、提供されたルートをプリレンダリングできます。`dynamicParams`を`false`に設定すると、`generateStaticParams`で定義されていないルートにアクセスすると404になります。 <Tabs> <TabItem value="tsx" label="TypeScript"> @@ -342,13 +342,13 @@ export const dynamicParams = false </TabItem> </Tabs> -> **Good to know**: インポート時に`.mdx`ファイル拡張子を指定してください。[モジュールパスエイリアス](/docs/app/getting-started/installation#set-up-absolute-imports-and-module-path-aliases)(例: `@/content`)を使用する必要はありませんが、インポートパスを簡素化します。 +> **Good to know**: インポート時に`.mdx`ファイル拡張子を指定することを確認してください。[モジュールパスエイリアス](/docs/app/getting-started/installation#set-up-absolute-imports-and-module-path-aliases)(例: `@/content`)を使用する必要はありませんが、インポートパスを簡素化します。 </AppOnly> ## カスタムスタイルとコンポーネントの使用 {#using-custom-styles-and-components} -MarkdownはレンダリングされるとネイティブのHTML要素にマッピングされます。例えば、次のMarkdownを書くと: +Markdownはレンダリングされると、ネイティブのHTML要素にマッピングされます。たとえば、次のMarkdownを書くと: ```md ## This is a heading {#this-is-a-heading} @@ -440,7 +440,7 @@ export function useMDXComponents(components) { ### ローカルスタイルとコンポーネント {#local-styles-and-components} -インポートしたMDXコンポーネントに渡すことで、特定のページにローカルスタイルとコンポーネントを適用できます。これらは[グローバルスタイルとコンポーネント](#global-styles-and-components)とマージされ、上書きされます。 +インポートしたMDXコンポーネントにスタイルとコンポーネントを渡すことで、特定のページにローカルスタイルとコンポーネントを適用できます。これらは[グローバルスタイルとコンポーネント](#global-styles-and-components)とマージされ、上書きされます。 <AppOnly> @@ -590,7 +590,7 @@ export default function MdxLayout({ children }) { </TabItem> </Tabs> -次に、MDXページにレイアウトコンポーネントをインポートし、MDXコンテンツをレイアウトでラップしてエクスポートします: +次に、レイアウトコンポーネントをMDXページにインポートし、MDXコンテンツをレイアウトでラップしてエクスポートします: ```mdx import MdxLayout from '../components/mdx-layout' @@ -611,7 +611,7 @@ export default function MDXPage({ children }) { このプラグインは、Markdownのようなソースからのコンテンツブロックにタイポグラフィスタイルを追加するための`prose`クラスを追加します。 -[Tailwind typographyのインストール](https://github.com/tailwindlabs/tailwindcss-typography?tab=readme-ov-file#installation)を行い、[共有レイアウト](#shared-layouts)で使用して、必要な`prose`を追加します。 +[Tailwind typographyのインストール](https://github.com/tailwindlabs/tailwindcss-typography?tab=readme-ov-file#installation)と[共有レイアウト](#shared-layouts)を使用して、必要な`prose`を追加します。 <AppOnly> @@ -683,7 +683,7 @@ export default function MdxLayout({ children }) { </TabItem> </Tabs> -次に、MDXページにレイアウトコンポーネントをインポートし、MDXコンテンツをレイアウトでラップしてエクスポートします: +次に、レイアウトコンポーネントをMDXページにインポートし、MDXコンテンツをレイアウトでラップしてエクスポートします: ```mdx import MdxLayout from '../components/mdx-layout' @@ -700,13 +700,13 @@ export default function MDXPage({ children }) { ## Frontmatter {#frontmatter} -Frontmatterは、ページに関するデータを保存するために使用できるYAMLのようなキー/値のペアリングです。`@next/mdx`はデフォルトではFrontmatterをサポートしていませんが、MDXコンテンツにFrontmatterを追加するための多くのソリューションがあります。例えば: +Frontmatterは、ページに関するデータを保存するために使用できるYAMLのようなキー/値のペアリングです。`@next/mdx`はデフォルトではfrontmatterをサポートしていませんが、MDXコンテンツにfrontmatterを追加するための多くのソリューションがあります。例えば: - [remark-frontmatter](https://github.com/remarkjs/remark-frontmatter) - [remark-mdx-frontmatter](https://github.com/remcohaszing/remark-mdx-frontmatter) - [gray-matter](https://github.com/jonschlinkert/gray-matter) -`@next/mdx`は、他のJavaScriptコンポーネントと同様にエクスポートを使用することを許可しています: +`@next/mdx`は、他のJavaScriptコンポーネントと同様にエクスポートを使用することを許可します: <Tabs> <TabItem value="mdx" label="mdx"> @@ -790,18 +790,18 @@ export default function Page() { </PagesOnly> -これの一般的な使用例は、MDXのコレクションを反復処理してデータを抽出したい場合です。例えば、すべてのブログ投稿からブログインデックスページを作成することです。Nodeの[`fs`モジュール](https://nodejs.org/api/fs.html)や[globby](https://www.npmjs.com/package/globby)などのパッケージを使用して、投稿のディレクトリを読み取り、メタデータを抽出できます。 +これの一般的な使用例は、MDXのコレクションを反復処理してデータを抽出したい場合です。たとえば、すべてのブログ投稿からブログインデックスページを作成することです。[Nodeの`fs`モジュール](https://nodejs.org/api/fs.html)や[globby](https://www.npmjs.com/package/globby)などのパッケージを使用して、投稿のディレクトリを読み取り、メタデータを抽出できます。 > **Good to know**: > -> - `fs`、`globby`などはサーバーサイドでのみ使用できます。 +> - `fs`、`globby`などの使用はサーバーサイドでのみ可能です。 > - 完全な動作例については、[Portfolio Starter Kit](https://vercel.com/templates/next.js/portfolio-starter-kit)テンプレートを参照してください。 ## remarkとrehypeプラグイン {#remark-and-rehype-plugins} MDXコンテンツを変換するために、remarkとrehypeプラグインをオプションで提供できます。 -例えば、[`remark-gfm`](https://github.com/remarkjs/remark-gfm)を使用してGitHub Flavored Markdownをサポートできます。 +たとえば、[`remark-gfm`](https://github.com/remarkjs/remark-gfm)を使用してGitHub Flavored Markdownをサポートできます。 remarkとrehypeのエコシステムはESMのみであるため、設定ファイルとして`next.config.mjs`または`next.config.ts`を使用する必要があります。 @@ -811,13 +811,13 @@ import createMDX from '@next/mdx' /** @type {import('next').NextConfig} */ const nextConfig = { - // ファイルの.md拡張子を許可 + // ファイルの.mdおよび.mdx拡張子を許可 pageExtensions: ['js', 'jsx', 'md', 'mdx', 'ts', 'tsx'], - // 必要に応じて、他のNext.jsの設定を追加 + // 必要に応じて、他のNext.jsの設定を以下に追加 } const withMDX = createMDX({ - // 必要に応じてMarkdownプラグインを追加 + // 必要に応じてMarkdownプラグインをここに追加 options: { remarkPlugins: [remarkGfm], rehypePlugins: [], @@ -852,7 +852,7 @@ export default withMDX(nextConfig) > **Good to know**: > -> シリアライズ可能なオプションを持たないremarkとrehypeプラグインは、[Turbopack](/docs/app/api-reference/turbopack)ではまだ使用できません。これは、[JavaScript関数をRustに渡すことができないため](https://github.com/vercel/next.js/issues/71819#issuecomment-2461802968)です。 +> シリアライズ可能なオプションを持たないremarkとrehypeプラグインは、[JavaScript関数をRustに渡すことができないため](https://github.com/vercel/next.js/issues/71819#issuecomment-2461802968)、まだ[Turbopack](/docs/app/api-reference/turbopack)で使用できません。 ## リモートMDX {#remote-mdx} @@ -860,7 +860,7 @@ MDXファイルやコンテンツが*他の場所*にある場合、サーバー > **Good to know**: 注意して進めてください。MDXはJavaScriptにコンパイルされ、サーバー上で実行されます。信頼できるソースからのみMDXコンテンツをフェッチする必要があります。そうしないと、リモートコード実行(RCE)につながる可能性があります。 -次の例では`next-mdx-remote`を使用しています: +次の例では、`next-mdx-remote`を使用しています: <AppOnly> @@ -952,9 +952,9 @@ export async function getStaticProps() { ## 深掘り: MarkdownをHTMLに変換する方法 {#deep-dive-how-do-you-transform-markdown-into-html} -ReactはMarkdownをネイティブに理解しません。Markdownのプレーンテキストは、まずHTMLに変換する必要があります。これは`remark`と`rehype`で実現できます。 +ReactはネイティブにMarkdownを理解しません。Markdownのプレーンテキストは、まずHTMLに変換する必要があります。これは`remark`と`rehype`で実現できます。 -`remark`はMarkdownに関するツールのエコシステムです。`rehype`はHTMLに関する同様のものです。例えば、次のコードスニペットはMarkdownをHTMLに変換します: +`remark`はMarkdownに関するツールのエコシステムです。`rehype`はHTMLに関する同様のものです。たとえば、次のコードスニペットはMarkdownをHTMLに変換します: ```js import { unified } from 'unified' @@ -979,11 +979,11 @@ async function main() { `remark`と`rehype`のエコシステムには、[シンタックスハイライト](https://github.com/atomiks/rehype-pretty-code)、[見出しのリンク](https://github.com/rehypejs/rehype-autolink-headings)、[目次の生成](https://github.com/remarkjs/remark-toc)などのプラグインがあります。 -上記のように`@next/mdx`を使用する場合、`remark`や`rehype`を直接使用する必要はありません。これらは自動的に処理されます。ここでは、`@next/mdx`パッケージが内部で行っていることをより深く理解するために説明しています。 +上記のように`@next/mdx`を使用する場合、`remark`や`rehype`を直接使用する必要はありません。これは自動的に処理されます。ここでは、`@next/mdx`パッケージが内部で行っていることをより深く理解するために説明しています。 ## RustベースのMDXコンパイラの使用(実験的) {#using-the-rust-based-mdx-compiler-experimental} -Next.jsはRustで書かれた新しいMDXコンパイラをサポートしています。このコンパイラはまだ実験的であり、本番環境での使用は推奨されません。新しいコンパイラを使用するには、`next.config.js`を`withMDX`に渡すときに設定する必要があります: +Next.jsはRustで書かれた新しいMDXコンパイラをサポートしています。このコンパイラはまだ実験的であり、本番環境での使用は推奨されません。新しいコンパイラを使用するには、`withMDX`に渡すときに`next.config.js`を設定する必要があります: ```js title="next.config.js" module.exports = withMDX({ diff --git a/docs/01-app/03-building-your-application/11-upgrading/06-from-create-react-app.mdx b/docs/01-app/03-building-your-application/11-upgrading/06-from-create-react-app.mdx index 411dbf5c..7df2b099 100644 --- a/docs/01-app/03-building-your-application/11-upgrading/06-from-create-react-app.mdx +++ b/docs/01-app/03-building-your-application/11-upgrading/06-from-create-react-app.mdx @@ -1,89 +1,87 @@ --- -title: 'Create React Appからの移行' -nav_title: 'CRAからの移行' -description: '既存のReactアプリケーションをCreate React AppからNext.jsに移行する方法を学びます。' +title: 'Create React App からの移行' +nav_title: 'CRA からの移行' +description: '既存の React アプリケーションを Create React App から Next.js に移行する方法を学びます。' --- -このガイドは、既存のCreate React App(CRA)サイトをNext.jsに移行するのに役立ちます。 +このガイドでは、既存の Create React App (CRA) サイトを Next.js に移行する方法を説明します。 -## なぜ切り替えるのか? {#why-switch} +## なぜ移行するのか? {#why-switch} -Create React AppからNext.jsに切り替えたい理由はいくつかあります。 +Create React App から Next.js に移行したい理由はいくつかあります: ### 初期ページの読み込み時間が遅い {#slow-initial-page-loading-time} -Create React Appは純粋にクライアントサイドのReactを使用しています。クライアントサイドのみのアプリケーション、別名[シングルページアプリケーション(SPA)](/docs/app/building-your-application/upgrading/single-page-applications)は、初期ページの読み込み時間が遅くなることがよくあります。これはいくつかの理由で発生します。 +Create React App は純粋にクライアントサイドの React を使用しています。クライアントサイドのみのアプリケーション、別名 [シングルページアプリケーション (SPA)](/docs/app/building-your-application/upgrading/single-page-applications) は、初期ページの読み込み時間が遅くなることがよくあります。これにはいくつかの理由があります: -1. ブラウザは、Reactコードとアプリケーション全体のバンドルがダウンロードされて実行されるのを待つ必要があり、その後にコードがデータをロードするためのリクエストを送信できるようになります。 +1. ブラウザは、React コードとアプリケーション全体のバンドルがダウンロードされて実行されるのを待つ必要があります。 2. 新しい機能や依存関係を追加するたびに、アプリケーションコードが増加します。 ### 自動コード分割がない {#no-automatic-code-splitting} -前述の読み込み時間の遅さの問題は、コード分割によってある程度緩和できます。しかし、手動でコード分割を試みると、ネットワークウォーターフォールを誤って導入する可能性があります。Next.jsは、自動コード分割とtree-shakingをルーターとビルドパイプラインに組み込んでいます。 +前述の読み込み時間の遅さの問題は、コード分割である程度緩和できます。しかし、手動でコード分割を試みると、ネットワークのウォーターフォールを引き起こす可能性があります。Next.js は、自動コード分割と tree-shaking をルーターとビルドパイプラインに組み込んでいます。 ### ネットワークウォーターフォール {#network-waterfalls} -パフォーマンスが悪化する一般的な原因は、アプリケーションがデータを取得するためにクライアントとサーバー間で順次リクエストを行うことです。[SPA](/docs/app/building-your-application/upgrading/single-page-applications)でのデータ取得のパターンの1つは、プレースホルダーをレンダリングし、コンポーネントがマウントされた後にデータを取得することです。残念ながら、子コンポーネントは親が自身のデータを読み込むのを完了した後にのみデータを取得し始めることができ、リクエストの「ウォーターフォール」を引き起こします。 +パフォーマンスが悪化する一般的な原因は、アプリケーションがデータを取得するためにクライアントとサーバー間で順次リクエストを行うことです。[SPA](/docs/app/building-your-application/upgrading/single-page-applications) でのデータ取得のパターンの1つは、プレースホルダーをレンダリングし、コンポーネントがマウントされた後にデータを取得することです。残念ながら、子コンポーネントは親が自身のデータを読み込むのを完了した後でしかデータを取得できず、リクエストの「ウォーターフォール」を引き起こします。 -Next.jsではクライアントサイドのデータ取得がサポートされていますが、Next.jsではデータ取得をサーバーに移動することもできます。これにより、クライアントとサーバー間のウォーターフォールが完全に排除されることがよくあります。 +Next.js ではクライアントサイドのデータ取得もサポートされていますが、データ取得をサーバーに移動することもできます。これにより、クライアントとサーバー間のウォーターフォールが完全に排除されることがよくあります。 ### 高速で意図的な読み込み状態 {#fast-and-intentional-loading-states} -[React Suspenseを通じたストリーミング](/docs/app/building-your-application/routing/loading-ui-and-streaming#streaming-with-suspense)の組み込みサポートにより、ネットワークウォーターフォールを作成せずに、UIのどの部分を最初にどの順序で読み込むかを定義できます。 - -これにより、読み込みが速く、[レイアウトシフト](https://vercel.com/blog/how-core-web-vitals-affect-seo)を排除するページを構築できます。 +[React Suspense を通じたストリーミング](/docs/app/building-your-application/routing/loading-ui-and-streaming#streaming-with-suspense) の組み込みサポートにより、UI のどの部分を最初に、どの順序で読み込むかを定義できます。これにより、ネットワークウォーターフォールを作成せずにページを高速に読み込むことができ、[レイアウトシフト](https://vercel.com/blog/how-core-web-vitals-affect-seo)を排除できます。 ### データ取得戦略の選択 {#choose-the-data-fetching-strategy} -ニーズに応じて、Next.jsではページまたはコンポーネントレベルでデータ取得戦略を選択できます。たとえば、CMSからデータを取得し、ブログ投稿をビルド時(SSG)にレンダリングして高速な読み込み速度を実現したり、必要に応じてリクエスト時(SSR)にデータを取得したりできます。 +必要に応じて、Next.js ではページまたはコンポーネントレベルでデータ取得戦略を選択できます。たとえば、CMS からデータを取得し、ビルド時(SSG)にブログ投稿をレンダリングして高速な読み込み速度を実現したり、必要に応じてリクエスト時(SSR)にデータを取得したりできます。 ### ミドルウェア {#middleware} -[Next.js Middleware](/docs/app/building-your-application/routing/middleware)を使用すると、リクエストが完了する前にサーバー上でコードを実行できます。たとえば、認証が必要なページのミドルウェアでユーザーをログインページにリダイレクトすることで、認証されていないコンテンツのフラッシュを回避できます。また、A/Bテスト、実験、[国際化](/docs/app/building-your-application/routing/internationalization)などの機能にも使用できます。 +[Next.js ミドルウェア](/docs/app/building-your-application/routing/middleware) を使用すると、リクエストが完了する前にサーバー上でコードを実行できます。たとえば、認証が必要なページのミドルウェアでユーザーをログインページにリダイレクトすることで、未認証コンテンツのフラッシュを回避できます。また、A/B テスト、実験、[国際化](/docs/app/building-your-application/routing/internationalization) などの機能にも使用できます。 ### 組み込みの最適化 {#built-in-optimizations} -[画像](/docs/app/building-your-application/optimizing/images)、[フォント](/docs/app/building-your-application/optimizing/fonts)、および[サードパーティのスクリプト](/docs/app/building-your-application/optimizing/scripts)は、アプリケーションのパフォーマンスに大きな影響を与えることがよくあります。Next.jsには、これらを自動的に最適化するための専門のコンポーネントとAPIが含まれています。 +[画像](/docs/app/building-your-application/optimizing/images)、[フォント](/docs/app/building-your-application/optimizing/fonts)、および[サードパーティスクリプト](/docs/app/building-your-application/optimizing/scripts) は、アプリケーションのパフォーマンスに大きな影響を与えることがよくあります。Next.js には、これらを自動的に最適化するための専用コンポーネントと API が含まれています。 ## 移行手順 {#migration-steps} -私たちの目標は、できるだけ早く動作するNext.jsアプリケーションを作成し、その後、Next.jsの機能を段階的に採用できるようにすることです。まず、既存のルーターをすぐに置き換えることなく、アプリケーションを純粋なクライアントサイドアプリケーション([SPA](/docs/app/building-your-application/upgrading/single-page-applications))として扱います。これにより、複雑さとマージの競合が軽減されます。 +私たちの目標は、できるだけ早く動作する Next.js アプリケーションを作成し、その後で Next.js の機能を段階的に採用できるようにすることです。まず、アプリケーションを純粋なクライアントサイドアプリケーション([SPA](/docs/app/building-your-application/upgrading/single-page-applications))として扱い、既存のルーターをすぐに置き換えないようにします。これにより、複雑さとマージの競合が軽減されます。 -> **注意**: `package.json`のカスタム`homepage`フィールド、カスタムサービスワーカー、特定のBabel/webpackの調整など、CRAの高度な設定を使用している場合は、Next.jsでこれらの機能を再現または適応するためのヒントについて、このガイドの最後の**追加の考慮事項**セクションを参照してください。 +> **Note**: `package.json` のカスタム `homepage` フィールド、カスタムサービスワーカー、特定の Babel/webpack 調整など、CRA の高度な設定を使用している場合は、このガイドの最後にある **追加の考慮事項** セクションを参照して、これらの機能を Next.js で再現または適応するためのヒントを確認してください。 -### ステップ1: Next.jsの依存関係をインストールする {#step-1-install-the-next-js-dependency} +### ステップ 1: Next.js の依存関係をインストールする {#step-1-install-the-next-js-dependency} -既存のプロジェクトにNext.jsをインストールします。 +既存のプロジェクトに Next.js をインストールします: ```bash title="Terminal" npm install next@latest ``` -### ステップ2: Next.jsの設定ファイルを作成する {#step-2-create-the-next-js-configuration-file} +### ステップ 2: Next.js の設定ファイルを作成する {#step-2-create-the-next-js-configuration-file} -プロジェクトのルート(`package.json`と同じレベル)に`next.config.ts`を作成します。このファイルには、[Next.jsの設定オプション](/docs/app/api-reference/config/next-config-js)が含まれます。 +プロジェクトの root(`package.json` と同じレベル)に `next.config.ts` を作成します。このファイルには [Next.js の設定オプション](/docs/app/api-reference/config/next-config-js) が含まれます。 ```js title="next.config.ts" import type { NextConfig } from 'next' const nextConfig: NextConfig = { - output: 'export', // シングルページアプリケーション(SPA)を出力します - distDir: 'build', // ビルド出力ディレクトリを`build`に変更します + output: 'export', // シングルページアプリケーション (SPA) を出力します + distDir: 'build', // ビルド出力ディレクトリを `build` に変更します } export default nextConfig ``` -> **注意**: `output: 'export'`を使用すると、静的エクスポートを行っていることを意味します。サーバーサイドの機能(SSRやAPIなど)にはアクセスできません。この行を削除して、Next.jsのサーバー機能を活用できます。 +> **Note**: `output: 'export'` を使用すると、静的エクスポートを行っていることを意味します。サーバーサイドの機能(SSR や API など)にはアクセスできません。この行を削除して Next.js のサーバー機能を活用することができます。 -### ステップ3: Root レイアウトを作成する {#step-3-create-the-root-layout} +### ステップ 3: root レイアウトを作成する {#step-3-create-the-root-layout} -Next.js [App Router](/docs/app)アプリケーションには、すべてのページをラップする[React Server Component](/docs/app/building-your-application/rendering/server-components)である[root レイアウト](/docs/app/building-your-application/routing/layouts-and-templates#root-layout-required)ファイルが含まれている必要があります。 +Next.js の [App Router](/docs/app) アプリケーションには、すべてのページをラップする [root レイアウト](/docs/app/building-your-application/routing/layouts-and-templates#root-layout-required) ファイルが含まれている必要があります。これは、すべてのページをラップする [React Server Component](/docs/app/building-your-application/rendering/server-components) です。 -CRAアプリケーションでのroot レイアウトファイルに最も近いものは、`<html>`、`<head>`、および`<body>`タグを含む`public/index.html`です。 +CRA アプリケーションでの root レイアウトファイルに最も近いものは、`<html>`、`<head>`、および `<body>` タグを含む `public/index.html` です。 -1. `src`ディレクトリ内に新しい`app`ディレクトリを作成します(または、`app`をルートに配置する場合はプロジェクトのルートに作成します)。 -2. `app`ディレクトリ内に`layout.tsx`(または`layout.js`)ファイルを作成します。 +1. `src` ディレクトリ内に新しい `app` ディレクトリを作成します(または、`app` を root に配置する場合はプロジェクトの root に作成します)。 +2. `app` ディレクトリ内に `layout.tsx`(または `layout.js`)ファイルを作成します: <Tabs> <TabItem value="tsx" label="TypeScript"> @@ -110,7 +108,7 @@ export default function RootLayout({ children }) { </TabItem> </Tabs> -次に、古い`index.html`の内容をこの`<RootLayout>`コンポーネントにコピーします。`body div#root`(および`body noscript`)を`<div id="root">{children}</div>`に置き換えます。 +次に、古い `index.html` の内容をこの `<RootLayout>` コンポーネントにコピーします。`body div#root`(および `body noscript`)を `<div id="root">{children}</div>` に置き換えます。 <Tabs> <TabItem value="tsx" label="TypeScript"> @@ -163,11 +161,11 @@ export default function RootLayout({ children }) { </TabItem> </Tabs> -> **Good to know**: Next.jsは、CRAの`public/manifest.json`、追加のアイコン、および[テスト設定](/docs/app/building-your-application/testing)をデフォルトで無視します。これらが必要な場合、Next.jsは[Metadata API](/docs/app/building-your-application/optimizing/metadata)と[Testing](/docs/app/building-your-application/testing)のセットアップでサポートしています。 +> **Good to know**: Next.js はデフォルトで CRA の `public/manifest.json`、追加のアイコン、および[テスト設定](/docs/app/building-your-application/testing)を無視します。これらが必要な場合、Next.js には [Metadata API](/docs/app/building-your-application/optimizing/metadata) と[テスト](/docs/app/building-your-application/testing)のセットアップでサポートがあります。 -### ステップ4: メタデータ {#step-4-metadata} +### ステップ 4: メタデータ {#step-4-metadata} -Next.jsは`<meta charset="UTF-8" />`と`<meta name="viewport" content="width=device-width, initial-scale=1" />`タグを自動的に含めるため、`<head>`から削除できます。 +Next.js は `<meta charset="UTF-8" />` と `<meta name="viewport" content="width=device-width, initial-scale=1" />` タグを自動的に含めるため、`<head>` から削除できます: <Tabs> <TabItem value="tsx" label="TypeScript"> @@ -216,7 +214,7 @@ export default function RootLayout({ children }) { </TabItem> </Tabs> -`favicon.ico`、`icon.png`、`robots.txt`などの[メタデータファイル](/docs/app/building-your-application/optimizing/metadata#file-based-metadata)は、`app`ディレクトリのトップレベルに配置されている限り、アプリケーションの`<head>`タグに自動的に追加されます。すべての[サポートされているファイル](/docs/app/building-your-application/optimizing/metadata#file-based-metadata)を`app`ディレクトリに移動した後、それらの`<link>`タグを安全に削除できます。 +`favicon.ico`、`icon.png`、`robots.txt` などの[メタデータファイル](/docs/app/building-your-application/optimizing/metadata#file-based-metadata)は、`app` ディレクトリのトップレベルに配置されている限り、アプリケーションの `<head>` タグに自動的に追加されます。[すべてのサポートされているファイル](/docs/app/building-your-application/optimizing/metadata#file-based-metadata)を `app` ディレクトリに移動した後、それらの `<link>` タグを安全に削除できます: <Tabs> <TabItem value="tsx" label="TypeScript"> @@ -263,7 +261,7 @@ export default function RootLayout({ children }) { </TabItem> </Tabs> -最後に、Next.jsは[Metadata API](/docs/app/building-your-application/optimizing/metadata)を使用して最後の`<head>`タグを管理できます。最終的なメタデータ情報をエクスポートされた[`metadata`オブジェクト](/docs/app/api-reference/functions/generate-metadata#metadata-object)に移動します。 +最後に、Next.js は [Metadata API](/docs/app/building-your-application/optimizing/metadata) を使用して最後の `<head>` タグを管理できます。最終的なメタデータ情報をエクスポートされた [`metadata` オブジェクト](/docs/app/api-reference/functions/generate-metadata#metadata-object) に移動します: <Tabs> <TabItem value="tsx" label="TypeScript"> @@ -314,13 +312,13 @@ export default function RootLayout({ children }) { </TabItem> </Tabs> -上記の変更により、`index.html`ですべてを宣言することから、フレームワークに組み込まれたNext.jsの規約ベースのアプローチ([Metadata API](/docs/app/building-your-application/optimizing/metadata))を使用するようにシフトしました。このアプローチにより、ページのSEOとWebの共有性をより簡単に向上させることができます。 +上記の変更により、`index.html` にすべてを宣言するのではなく、Next.js のフレームワークに組み込まれた規約ベースのアプローチを使用するようにシフトしました。このアプローチにより、ページの SEO と Web の共有性をより簡単に向上させることができます。 -### ステップ5: スタイル {#step-5-styles} +### ステップ 5: スタイル {#step-5-styles} -CRAと同様に、Next.jsは[CSSモジュール](/docs/app/building-your-application/styling/css#css-modules)を標準でサポートしています。また、[グローバルCSSのインポート](/docs/app/building-your-application/styling/css#global-styles)もサポートしています。 +CRA と同様に、Next.js は [CSS Modules](/docs/app/building-your-application/styling/css#css-modules) を標準でサポートしています。また、[グローバル CSS インポート](/docs/app/building-your-application/styling/css#global-styles) もサポートしています。 -グローバルCSSファイルがある場合は、`app/layout.tsx`にインポートします。 +グローバル CSS ファイルがある場合は、`app/layout.tsx` にインポートします: <Tabs> <TabItem value="tsx" label="TypeScript"> @@ -351,15 +349,15 @@ export default function RootLayout({ </TabItem> </Tabs> -Tailwind CSSを使用している場合は、[インストールドキュメント](/docs/app/building-your-application/styling/tailwind-css)を参照してください。 +Tailwind CSS を使用している場合は、[インストールドキュメント](/docs/app/building-your-application/styling/tailwind-css)を参照してください。 -### ステップ6: エントリーポイントページを作成する {#step-6-create-the-entrypoint-page} +### ステップ 6: エントリーポイントページを作成する {#step-6-create-the-entrypoint-page} -Create React Appは`src/index.tsx`(または`index.js`)をエントリーポイントとして使用します。Next.js(App Router)では、`app`ディレクトリ内の各フォルダーがルートに対応し、各フォルダーには`page.tsx`が必要です。 +Create React App は `src/index.tsx`(または `index.js`)をエントリーポイントとして使用します。Next.js(App Router)では、`app` ディレクトリ内の各フォルダーがルートに対応し、各フォルダーには `page.tsx` が必要です。 -アプリをSPAとして保持し、**すべて**のルートをインターセプトしたいので、[optional catch-all route](/docs/app/building-your-application/routing/dynamic-routes#optional-catch-all-segments)を使用します。 +アプリを SPA として保持し、**すべての**ルートをインターセプトしたいので、[オプショナルキャッチオールルート](/docs/app/building-your-application/routing/dynamic-routes#optional-catch-all-segments) を使用します。 -1. **`app`内に`[[...slug]]`ディレクトリを作成します。** +1. **`app` 内に `[[...slug]]` ディレクトリを作成します。** ```bash app @@ -368,7 +366,7 @@ app ┣ layout.tsx ``` -2. **`page.tsx`に次の内容を追加します。** +2. **`page.tsx` に次の内容を追加します**: <Tabs> <TabItem value="tsx" label="TypeScript"> @@ -399,13 +397,13 @@ export default function Page() { </TabItem> </Tabs> -これはNext.jsに、空のスラッグ(`/`)に対して単一のルートを生成するように指示し、**すべて**のルートを同じページにマッピングします。このページは[Server Component](/docs/app/building-your-application/rendering/server-components)であり、静的HTMLにプリレンダリングされます。 +これは Next.js に空のスラッグ(`/`)のための単一のルートを生成するように指示し、**すべての**ルートを同じページにマッピングします。このページは[Server Component](/docs/app/building-your-application/rendering/server-components)であり、静的 HTML にプリレンダリングされます。 -### ステップ7: クライアント専用のエントリーポイントを追加する {#step-7-add-a-client-only-entrypoint} +### ステップ 7: クライアント専用のエントリーポイントを追加する {#step-7-add-a-client-only-entrypoint} -次に、CRAのroot Appコンポーネントを[Client Component](/docs/app/building-your-application/rendering/client-components)内に埋め込み、すべてのロジックをクライアントサイドに保持します。Next.jsを初めて使用する場合、クライアントコンポーネント(デフォルトでは)はまだサーバーでプリレンダリングされていることを知っておく価値があります。クライアントサイドのJavaScriptを実行する追加の機能を持っていると考えることができます。 +次に、CRA の root App コンポーネントを[Client Component](/docs/app/building-your-application/rendering/client-components)内に埋め込み、すべてのロジックをクライアントサイドに保持します。Next.js を初めて使用する場合、クライアントコンポーネント(デフォルトでは)もサーバーでプリレンダリングされることを知っておく価値があります。クライアントサイドの JavaScript を実行する追加の機能を持っていると考えることができます。 -`app/[[...slug]]/`に`client.tsx`(または`client.js`)を作成します。 +`app/[[...slug]]/` に `client.tsx`(または `client.js`)を作成します: <Tabs> <TabItem value="tsx" label="TypeScript"> @@ -440,10 +438,10 @@ export function ClientOnly() { </TabItem> </Tabs> -- `'use client'`ディレクティブは、このファイルを**Client Component**にします。 -- `dynamic`インポートと`ssr: false`は、`<App />`コンポーネントのサーバーサイドレンダリングを無効にし、純粋にクライアント専用(SPA)にします。 +- `'use client'` ディレクティブは、このファイルを**Client Component**にします。 +- `dynamic` インポートと `ssr: false` は `<App />` コンポーネントのサーバーサイドレンダリングを無効にし、真にクライアント専用(SPA)にします。 -次に、`page.tsx`(または`page.js`)を更新して新しいコンポーネントを使用します。 +次に、`page.tsx`(または `page.js`)を更新して新しいコンポーネントを使用します: <Tabs> <TabItem value="tsx" label="TypeScript"> @@ -478,9 +476,9 @@ export default function Page() { </TabItem> </Tabs> -### ステップ8: 静的画像インポートを更新する {#step-8-update-static-image-imports} +### ステップ 8: 静的画像インポートを更新する {#step-8-update-static-image-imports} -CRAでは、画像ファイルをインポートすると、その公開URLが文字列として返されます。 +CRA では、画像ファイルをインポートすると、その公開 URL が文字列として返されます: ```tsx import image from './img.png' @@ -490,45 +488,45 @@ export default function App() { } ``` -Next.jsでは、静的画像インポートはオブジェクトを返します。このオブジェクトはNext.jsの[`<Image>`コンポーネント](/docs/app/api-reference/components/image)で直接使用することができ、または既存の`<img>`タグでオブジェクトの`src`プロパティを使用することができます。 +Next.js では、静的画像インポートはオブジェクトを返します。このオブジェクトは Next.js の [`<Image>` コンポーネント](/docs/app/api-reference/components/image) で直接使用することができ、または既存の `<img>` タグでオブジェクトの `src` プロパティを使用することができます。 -`<Image>`コンポーネントには[自動画像最適化](/docs/app/building-your-application/optimizing/images)の追加の利点があります。`<Image>`コンポーネントは、画像の寸法に基づいて結果の`<img>`の`width`と`height`属性を自動的に設定します。これにより、画像が読み込まれるときのレイアウトシフトが防止されます。ただし、アプリに寸法の一方のみがスタイルされ、他方が`auto`にスタイルされていない画像が含まれている場合、問題が発生する可能性があります。`auto`にスタイルされていない場合、寸法は`<img>`の寸法属性の値にデフォルト設定され、画像が歪んで表示される可能性があります。 +`<Image>` コンポーネントには[自動画像最適化](/docs/app/building-your-application/optimizing/images)の利点があります。`<Image>` コンポーネントは、画像の寸法に基づいて結果の `<img>` の `width` と `height` 属性を自動的に設定します。これにより、画像が読み込まれる際のレイアウトシフトを防ぎます。ただし、アプリに寸法の一方のみがスタイル設定され、他方が `auto` にスタイル設定されていない画像が含まれている場合、問題が発生する可能性があります。`auto` にスタイル設定されていない場合、寸法は `<img>` の寸法属性の値にデフォルト設定され、画像が歪んで表示される可能性があります。 -`<img>`タグを保持することで、アプリケーションの変更を減らし、上記の問題を防ぐことができます。その後、[ローダーを設定する](/docs/app/building-your-application/optimizing/images#loaders)ことで画像を最適化するために`<Image>`コンポーネントに移行するか、または自動画像最適化を備えたデフォルトのNext.jsサーバーに移行することができます。 +`<img>` タグを保持することで、アプリケーションの変更を減らし、上記の問題を防ぐことができます。その後、[ローダーを設定](/docs/app/building-your-application/optimizing/images#loaders)するか、画像を自動的に最適化するデフォルトの Next.js サーバーに移行することで、画像を最適化するために `<Image>` コンポーネントに移行することができます。 -**`/public`からインポートされた画像の絶対インポートパスを相対インポートに変換します。** +**`/public` からインポートされた画像の絶対インポートパスを相対インポートに変換します:** ```tsx -// 変更前 +// Before import logo from '/logo.png' -// 変更後 +// After import logo from '../public/logo.png' ``` -**画像オブジェクト全体ではなく、画像の`src`プロパティを`<img>`タグに渡します。** +**画像オブジェクト全体ではなく、画像の `src` プロパティを `<img>` タグに渡します:** ```tsx -// 変更前 +// Before <img src={logo} /> -// 変更後 +// After <img src={logo.src} /> ``` -または、ファイル名に基づいて画像アセットの公開URLを参照することもできます。たとえば、`public/logo.png`はアプリケーションの`/logo.png`で画像を提供し、これが`src`値になります。 +または、ファイル名に基づいて画像アセットの公開 URL を参照することもできます。たとえば、`public/logo.png` はアプリケーションの `/logo.png` で画像を提供し、これが `src` 値になります。 -> **警告:** TypeScriptを使用している場合、`src`プロパティにアクセスするときに型エラーが発生する可能性があります。これを修正するには、`tsconfig.json`ファイルの[`include`配列](https://www.typescriptlang.org/tsconfig#include)に`next-env.d.ts`を追加する必要があります。Next.jsは、ステップ9でアプリケーションを実行するときにこのファイルを自動的に生成します。 +> **Warning:** TypeScript を使用している場合、`src` プロパティにアクセスするときに型エラーが発生する可能性があります。これを修正するには、`tsconfig.json` ファイルの [`include` 配列](https://www.typescriptlang.org/tsconfig#include) に `next-env.d.ts` を追加する必要があります。Next.js は、ステップ 9 でアプリケーションを実行するときにこのファイルを自動的に生成します。 -### ステップ9: 環境変数を移行する {#step-9-migrate-environment-variables} +### ステップ 9: 環境変数を移行する {#step-9-migrate-environment-variables} -Next.jsはCRAと同様に[環境変数](/docs/app/building-your-application/configuring/environment-variables)をサポートしていますが、ブラウザで公開したい変数には`NEXT_PUBLIC_`プレフィックスが**必要**です。 +Next.js は CRA と同様に[環境変数](/docs/app/building-your-application/configuring/environment-variables)をサポートしていますが、ブラウザで公開したい変数には `NEXT_PUBLIC_` プレフィックスが**必要**です。 -主な違いは、クライアントサイドで環境変数を公開するために使用されるプレフィックスです。`REACT_APP_`プレフィックスを持つすべての環境変数を`NEXT_PUBLIC_`に変更します。 +主な違いは、クライアントサイドで環境変数を公開するために使用されるプレフィックスです。`REACT_APP_` プレフィックスを持つすべての環境変数を `NEXT_PUBLIC_` に変更します。 -### ステップ10: `package.json`のスクリプトを更新する {#step-10-update-scripts-in-package-json} +### ステップ 10: `package.json` のスクリプトを更新する {#step-10-update-scripts-in-package-json} -`package.json`のスクリプトをNext.jsのコマンドに更新します。また、`.next`と`next-env.d.ts`を`.gitignore`に追加します。 +`package.json` のスクリプトを Next.js コマンドに更新します。また、`.next` と `next-env.d.ts` を `.gitignore` に追加します: ```json title="package.json" { @@ -546,29 +544,29 @@ Next.jsはCRAと同様に[環境変数](/docs/app/building-your-application/conf next-env.d.ts ``` -次のコマンドを実行できます。 +次のコマンドを実行できます: ```bash npm run dev ``` -[http://localhost:3000](http://localhost:3000)を開きます。Next.js(SPAモード)でアプリケーションが実行されているのが確認できるはずです。 +[http://localhost:3000](http://localhost:3000) を開きます。Next.js(SPA モード)でアプリケーションが実行されているのが確認できるはずです。 -### ステップ11: クリーンアップ {#step-11-clean-up} +### ステップ 11: クリーンアップ {#step-11-clean-up} -Create React Appに特有のアーティファクトを削除できます。 +Create React App に特有のアーティファクトを削除できます: - `public/index.html` - `src/index.tsx` - `src/react-app-env.d.ts` -- `reportWebVitals`のセットアップ -- `react-scripts`の依存関係(`package.json`からアンインストールします) +- `reportWebVitals` のセットアップ +- `react-scripts` の依存関係(`package.json` からアンインストール) ## 追加の考慮事項 {#additional-considerations} -### CRAでカスタム`homepage`を使用する {#using-a-custom-homepage-in-cra} +### CRA でカスタム `homepage` を使用する {#using-a-custom-homepage-in-cra} -CRAの`package.json`で`homepage`フィールドを使用してアプリを特定のサブパスで提供していた場合、Next.jsの[`basePath`設定](/docs/app/api-reference/config/next-config-js/basePath)を使用して`next.config.ts`でそれを再現できます。 +CRA の `package.json` で `homepage` フィールドを使用してアプリを特定のサブパスで提供していた場合、Next.js の `next.config.ts` で [`basePath` 設定](/docs/app/api-reference/config/next-config-js/basePath) を使用してそれを再現できます: ```ts title="next.config.ts" import { NextConfig } from 'next' @@ -581,13 +579,13 @@ const nextConfig: NextConfig = { export default nextConfig ``` -### カスタム`Service Worker`の処理 {#handling-a-custom-service-worker} +### カスタム `Service Worker` の処理 {#handling-a-custom-service-worker} -CRAのサービスワーカー(例:`create-react-app`の`serviceWorker.js`)を使用していた場合、Next.jsで[プログレッシブウェブアプリケーション(PWA)](/docs/app/building-your-application/configuring/progressive-web-apps)を作成する方法を学ぶことができます。 +CRA のサービスワーカー(例:`create-react-app` の `serviceWorker.js`)を使用していた場合、Next.js で[プログレッシブウェブアプリケーション (PWA)](/docs/app/building-your-application/configuring/progressive-web-apps) を作成する方法を学ぶことができます。 -### APIリクエストのプロキシ {#proxying-api-requests} +### API リクエストのプロキシ {#proxying-api-requests} -CRAアプリが`package.json`の`proxy`フィールドを使用してバックエンドサーバーへのリクエストを転送していた場合、`next.config.ts`で[Next.jsのリライト](/docs/app/api-reference/config/next-config-js/rewrites)を使用してこれを再現できます。 +CRA アプリで `package.json` の `proxy` フィールドを使用してバックエンドサーバーへのリクエストを転送していた場合、`next.config.ts` で [Next.js のリライト](/docs/app/api-reference/config/next-config-js/rewrites) を使用してこれを再現できます: ```ts title="next.config.ts" import { NextConfig } from 'next' @@ -604,16 +602,16 @@ const nextConfig: NextConfig = { } ``` -### カスタムWebpack / Babel設定 {#custom-webpack-babel-config} +### カスタム Webpack / Babel 設定 {#custom-webpack-babel-config} -CRAでカスタムのwebpackまたはBabel設定を持っていた場合、`next.config.ts`でNext.jsの設定を拡張できます。 +CRA でカスタム webpack または Babel 設定を持っていた場合、`next.config.ts` で Next.js の設定を拡張できます: ```ts title="next.config.ts" import { NextConfig } from 'next' const nextConfig: NextConfig = { webpack: (config, { isServer }) => { - // ここでwebpack設定を変更します + // ここで webpack 設定を変更します return config }, } @@ -621,11 +619,11 @@ const nextConfig: NextConfig = { export default nextConfig ``` -> **注意**: これには、`dev`スクリプトから`--turbopack`を削除してTurbopackを無効にする必要があります。 +> **Note**: これには `dev` スクリプトから `--turbopack` を削除して Turbopack を無効にする必要があります。 -### TypeScriptのセットアップ {#typescript-setup} +### TypeScript のセットアップ {#typescript-setup} -Next.jsは`tsconfig.json`がある場合、自動的にTypeScriptをセットアップします。`tsconfig.json`の`include`配列に`next-env.d.ts`がリストされていることを確認してください。 +Next.js は `tsconfig.json` がある場合、自動的に TypeScript をセットアップします。`tsconfig.json` の `include` 配列に `next-env.d.ts` がリストされていることを確認してください: ```json { @@ -635,25 +633,25 @@ Next.jsは`tsconfig.json`がある場合、自動的にTypeScriptをセットア ## バンドラーの互換性 {#bundler-compatibility} -Create React AppとNext.jsの両方がデフォルトでwebpackをバンドリングに使用します。Next.jsはまた、ローカル開発を高速化するために[Turbopack](/docs/app/api-reference/config/next-config-js/turbo)を提供しています。 +Create React App と Next.js はどちらもデフォルトで webpack をバンドリングに使用します。Next.js はまた、ローカル開発を高速化するために [Turbopack](/docs/app/api-reference/config/next-config-js/turbopack) を提供しています: ```bash next dev --turbopack ``` -CRAから高度なwebpack設定を移行する必要がある場合は、[カスタムwebpack設定](/docs/app/api-reference/config/next-config-js/webpack)を提供することもできます。 +CRA から高度な webpack 設定を移行する必要がある場合、[カスタム webpack 設定](/docs/app/api-reference/config/next-config-js/webpack) を提供することもできます。 ## 次のステップ {#next-steps} -すべてが正常に動作した場合、現在、シングルページアプリケーションとして動作するNext.jsアプリケーションがあります。まだNext.jsのサーバーサイドレンダリングやファイルベースのルーティングなどの機能を活用していませんが、段階的に行うことができます。 +すべてが正常に動作した場合、現在はシングルページアプリケーションとして動作する Next.js アプリケーションがあります。まだサーバーサイドレンダリングやファイルベースのルーティングなどの Next.js の機能を活用していませんが、これらを段階的に行うことができます: -- **React Routerから**[Next.js App Router](/docs/app/building-your-application/routing)に移行して、以下を実現します。 +- [Next.js App Router](/docs/app/building-your-application/routing) に**React Router から移行**して: - 自動コード分割 - [ストリーミングサーバーレンダリング](/docs/app/building-your-application/routing/loading-ui-and-streaming) - [React Server Components](/docs/app/building-your-application/rendering/server-components) -- **画像を最適化**するために[`<Image>`コンポーネント](/docs/app/building-your-application/optimizing/images)を使用します。 -- **フォントを最適化**するために[`next/font`](/docs/app/building-your-application/optimizing/fonts)を使用します。 -- **サードパーティのスクリプトを最適化**するために[`<Script>`コンポーネント](/docs/app/building-your-application/optimizing/scripts)を使用します。 -- **ESLintを有効化**して、Next.js推奨ルールを使用し、`npx next lint`を実行してプロジェクトのニーズに合わせて設定します。 +- [`<Image>` コンポーネント](/docs/app/building-your-application/optimizing/images) で**画像を最適化** +- [`next/font`](/docs/app/building-your-application/optimizing/fonts) で**フォントを最適化** +- [`<Script>` コンポーネント](/docs/app/building-your-application/optimizing/scripts) で**サードパーティスクリプトを最適化** +- `npx next lint` を実行して Next.js 推奨ルールを有効にし、プロジェクトのニーズに合わせて設定することで**ESLint を有効化** -> **注意**: 静的エクスポート(`output: 'export'`)を使用すると、`useParams`フックや他のサーバー機能が[現在サポートされていません](https://github.com/vercel/next.js/issues/54393)。Next.jsのすべての機能を使用するには、`next.config.ts`から`output: 'export'`を削除してください。 +> **Note**: 静的エクスポート(`output: 'export'`)を使用すると、`useParams` フックやその他のサーバー機能が[現在サポートされていません](https://github.com/vercel/next.js/issues/54393)。Next.js のすべての機能を使用するには、`next.config.ts` から `output: 'export'` を削除してください。 diff --git a/docs/01-app/04-api-reference/04-functions/use-link-status.mdx b/docs/01-app/04-api-reference/04-functions/use-link-status.mdx deleted file mode 100644 index d6ce6d72..00000000 --- a/docs/01-app/04-api-reference/04-functions/use-link-status.mdx +++ /dev/null @@ -1,250 +0,0 @@ ---- -title: 'useLinkStatus' -description: 'useLinkStatus フックのAPIリファレンス。' ---- - -`useLinkStatus`は、ナビゲーション中に`Link`コンポーネントの読み込み状態を追跡するための**Client Component**フックです。特に[prefetching](/docs/app/building-your-application/routing/linking-and-navigating#2-prefetching)が無効になっている場合や、リンクされたルートに読み込み状態がない場合に、ページ遷移中の読み込みインジケーターを表示するために使用できます。 - -<Tabs> -<TabItem value="tsx" label="TypeScript"> - -```tsx title="app/loading-indicator.tsx" switcher -'use client' - -import { useLinkStatus } from 'next/navigation' - -export default function LoadingIndicator() { - const { pending } = useLinkStatus() - return pending ? <span>⌛</span> : null -} -``` - -</TabItem> -<TabItem value="jsx" label="JavaScript"> - -```jsx title="app/loading-indicator.js" switcher -'use client' - -import { useLinkStatus } from 'next/navigation' - -export default function LoadingIndicator() { - const { pending } = useLinkStatus() - return pending ? <span>⌛</span> : null -} -``` - -</TabItem> -</Tabs> - -<Tabs> -<TabItem value="tsx" label="TypeScript"> - -```tsx title="app/header.tsx" switcher -import Link from 'next/link' -import LoadingIndicator from './loading-indicator' - -export default function Header() { - return ( - <header> - <Link href="/dashboard" prefetch={false}> - Dashboard <LoadingIndicator /> - </Link> - </header> - ) -} -``` - -</TabItem> -<TabItem value="jsx" label="JavaScript"> - -```jsx title="app/header.js" switcher -import Link from 'next/link' -import LoadingIndicator from './loading-indicator' - -export default function Header() { - return ( - <header> - <Link href="/dashboard" prefetch={false}> - Dashboard <LoadingIndicator /> - </Link> - </header> - ) -} -``` - -</TabItem> -</Tabs> - -> **Good to know**: -> -> - `useLinkStatus`は、`Link`コンポーネントの子孫コンポーネント内で使用する必要があります -> - このフックは、`Link`コンポーネントで`prefetch={false}`が設定されている場合に最も有用です -> - リンクされたルートが事前にフェッチされている場合、pending状態はスキップされます -> - 短時間で複数のリンクをクリックした場合、最後のリンクのpending状態のみが表示されます -> - このフックはPages Routerではサポートされておらず、常に`{ pending: false }`を返します - -## パラメータ {#parameters} - -```tsx -const { pending } = useLinkStatus() -``` - -`useLinkStatus`はパラメータを受け取りません。 - -## 戻り値 {#returns} - -`useLinkStatus`は、1つのプロパティを持つオブジェクトを返します: - -| プロパティ | 型 | 説明 | -| ---------- | ------- | ------------------------------------------- | -| pending | boolean | 履歴が更新される前は`true`、更新後は`false` | - -## 例 {#examples} - -### 新しいクエリパラメータでのナビゲーション時のユーザーエクスペリエンスの向上 {#improving-the-user-experience-when-navigating-with-new-query-parameters} - -この例では、カテゴリ間のナビゲーションがクエリ文字列(例:?category=books)を更新します。しかし、ページが応答しないように見えることがあります。これは、`<PageSkeleton />`フォールバックが既存のコンテンツを置き換えないためです([不要な読み込みインジケーターの防止](https://react.dev/reference/react/useTransition#preventing-unwanted-loading-indicators)を参照)。 - -`useLinkStatus`フックを使用して、アクティブなリンクの横に軽量な読み込みインジケーターをレンダリングし、データがフェッチされている間にユーザーに即時のフィードバックを提供できます。 - -<Tabs> -<TabItem value="tsx" label="TypeScript"> - -```tsx title="app/components/loading-indicator.tsx" switcher -'use client' - -import { useLinkStatus } from 'next/navigation' - -export default function LoadingIndicator() { - const { pending } = useLinkStatus() - return pending ? <span>⌛</span> : null -} -``` - -</TabItem> -<TabItem value="jsx" label="JavaScript"> - -```jsx title="app/components/loading-indicator.js" switcher -'use client' - -import { useLinkStatus } from 'next/navigation' - -export default function LoadingIndicator() { - const { pending } = useLinkStatus() - return pending ? <span>⌛</span> : null -} -``` - -</TabItem> -</Tabs> - -<Tabs> -<TabItem value="tsx" label="TypeScript"> - -```tsx title="app/page.tsx" switcher -import { useSearchParams } from 'next/navigation' -import Link from 'next/link' -import { Suspense } from 'react' -import LoadingIndicator from './loading-indicator' - -function MenuBar() { - return ( - <div> - <Link href="?category=electronics"> - Electronics <LoadingIndicator /> - </Link> - <Link href="?category=clothing"> - Clothing <LoadingIndicator /> - </Link> - <Link href="?category=books"> - Books <LoadingIndicator /> - </Link> - </div> - ) -} - -async function ProductList({ category }: { category: string }) { - const products = await fetchProducts(category) - - return ( - <ul> - {products.map((product) => ( - <li key={product}>{product}</li> - ))} - </ul> - ) -} - -export default async function ProductCategories({ - searchParams, -}: { - searchParams: Promise<{ - category: string - }> -}) { - const { category } = await searchParams - - return ( - <Suspense fallback={<PageSkeleton />}> - <MenuBar /> - <ProductList category={category} /> - </Suspense> - ) -} -``` - -</TabItem> -<TabItem value="jsx" label="JavaScript"> - -```jsx title="app/page.js" switcher -import { useSearchParams } from 'next/navigation' -import Link from 'next/link' -import { Suspense } from 'react' -import LoadingIndicator from './loading-indicator' - -function MenuBar() { - return ( - <div> - <Link href="?category=electronics"> - Electronics <LoadingIndicator /> - </Link> - <Link href="?category=clothing"> - Clothing <LoadingIndicator /> - </Link> - <Link href="?category=books"> - Books <LoadingIndicator /> - </Link> - </div> - ) -} - -async function ProductList({ category }) { - const products = await fetchProducts(category) - - return ( - <ul> - {products.map((product) => ( - <li key={product}>{product}</li> - ))} - </ul> - ) -} - -export default async function ProductCategories({ searchParams }) { - const { category } = await searchParams - - return ( - <Suspense fallback={<PageSkeleton />}> - <MenuBar /> - <ProductList category={category} /> - </Suspense> - ) -} -``` - -</TabItem> -</Tabs> - -| バージョン | 変更内容 | -| ---------- | --------------------------------- | -| `v15.3.0` | `useLinkStatus`が導入されました。 | diff --git a/docs/01-app/04-api-reference/08-turbopack.mdx b/docs/01-app/04-api-reference/08-turbopack.mdx deleted file mode 100644 index 245404de..00000000 --- a/docs/01-app/04-api-reference/08-turbopack.mdx +++ /dev/null @@ -1,170 +0,0 @@ ---- -title: 'Turbopack' -description: 'Turbopackは、JavaScriptとTypeScriptに最適化されたインクリメンタルバンドラーで、Rustで書かれ、Next.jsに組み込まれています。' ---- - -{/* このドキュメントの内容は、app routerとpages routerの間で共有されています。Pages Routerに特化したコンテンツを追加するには、`<PagesOnly>Content</PagesOnly>`コンポーネントを使用できます。共有コンテンツはコンポーネントでラップしないでください。 */} - -Turbopackは、JavaScriptとTypeScriptに最適化された**インクリメンタルバンドラー**で、Rustで書かれ、**Next.js**に組み込まれています。Turbopackを使用することで、Pages RouterとApp Routerの両方で**非常に高速な**ローカル開発体験を得ることができます。 - -## なぜTurbopackなのか? {#why-turbopack} - -私たちは、Next.jsのパフォーマンスを向上させるためにTurbopackを開発しました。以下の点を含みます: - -- **統一されたグラフ:** Next.jsは複数の出力環境(例:クライアントとサーバー)をサポートしています。複数のコンパイラを管理し、バンドルをつなぎ合わせるのは面倒です。Turbopackは、すべての環境に対して**単一の統一されたグラフ**を使用します。 -- **バンドリング vs ネイティブESM:** 一部のツールは開発時にバンドリングをスキップし、ブラウザのネイティブESMに依存します。これは小規模なアプリには適していますが、ネットワークリクエストが多すぎるため、大規模なアプリでは遅くなる可能性があります。Turbopackは開発時に**バンドル**しますが、大規模なアプリを高速に保つために最適化されています。 -- **インクリメンタル計算:** Turbopackは作業をコア間で並列化し、結果を関数レベルまで**キャッシュ**します。一度作業が完了すると、Turbopackはそれを繰り返しません。 -- **遅延バンドリング:** Turbopackは、開発サーバーによって実際に要求されたものだけをバンドルします。この遅延アプローチにより、初期のコンパイル時間とメモリ使用量を削減できます。 - -## はじめに {#getting-started} - -Next.jsプロジェクトでTurbopackを有効にするには、開発サーバーを実行する際に`--turbopack`フラグを使用します: - -```json title="package.json" highlight={3} -{ - "scripts": { - "dev": "next dev --turbopack", - "build": "next build", - "start": "next start" - } -} -``` - -現在、Turbopackは`next dev`のみをサポートしています。ビルド(`next build`)は**まだ**サポートされていません。Turbopackが安定性に近づくにつれて、プロダクションサポートに向けて積極的に取り組んでいます。 - -## サポートされている機能 {#supported-features} - -Next.jsのTurbopackは、一般的なユースケースに対して**ゼロコンフィグレーション**です。以下は、標準でサポートされている機能の概要と、必要に応じてTurbopackをさらに構成する方法に関するいくつかの参考情報です。 - -### 言語機能 {#language-features} - -| 機能 | ステータス | 備考 | -| --------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| **JavaScript & TypeScript** | **サポート済み** | SWCを内部で使用しています。型チェックはTurbopackでは行われません(`tsc --watch`を実行するか、IDEに型チェックを依存してください)。 | -| **ECMAScript (ESNext)** | **サポート済み** | Turbopackは最新のECMAScript機能をサポートしており、SWCのカバレッジに一致しています。 | -| **CommonJS** | **サポート済み** | `require()`構文は標準で処理されます。 | -| **ESM** | **サポート済み** | 静的および動的な`import`が完全にサポートされています。 | -| **Babel** | 部分的にサポート外 | TurbopackにはデフォルトでBabelは含まれていません。ただし、[Turbopackの設定を通じて`babel-loader`を構成することができます](/docs/app/api-reference/config/next-config-js/turbo#configuring-webpack-loaders)。 | - -### フレームワークとReactの機能 {#framework-and-react-features} - -| 機能 | ステータス | 備考 | -| --------------------------------- | ---------------- | ------------------------------------------------------------------------------------------------------ | -| **JSX / TSX** | **サポート済み** | SWCがJSX/TSXのコンパイルを処理します。 | -| **Fast Refresh** | **サポート済み** | 設定は不要です。 | -| **React Server Components (RSC)** | **サポート済み** | Next.jsのApp Router用です。Turbopackは正しいサーバー/クライアントのバンドリングを保証します。 | -| **root レイアウトの作成** | サポート外 | App Routerでのroot レイアウトの自動作成はサポートされていません。Turbopackは手動での作成を指示します。 | - -### CSSとスタイリング {#css-and-styling} - -| 機能 | ステータス | 備考 | -| ------------------- | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **グローバルCSS** | **サポート済み** | `.css`ファイルをアプリケーションに直接インポートします。 | -| **CSSモジュール** | **サポート済み** | `.module.css`ファイルはネイティブに動作します(Lightning CSS)。 | -| **CSSネスティング** | **サポート済み** | Lightning CSSは[最新のCSSネスティング](https://lightningcss.dev/)をサポートしています。 | -| **@import構文** | **サポート済み** | 複数のCSSファイルを組み合わせます。 | -| **PostCSS** | **サポート済み** | Node.jsワーカープールで`postcss.config.js`を自動的に処理します。Tailwind、Autoprefixerなどに便利です。 | -| **Sass / SCSS** | **サポート済み** (Next.js) | Next.jsでは、Sassは標準でサポートされています。将来的には、Turbopackのスタンドアロン使用にはローダー設定が必要になる可能性があります。 | -| **Less** | プラグインを通じて計画中 | デフォルトではまだサポートされていません。カスタムローダーが安定したら、ローダー設定が必要になる可能性があります。 | -| **Lightning CSS** | **使用中** | CSS変換を処理します。低使用率のCSSモジュール機能(スタンドアロンの擬似クラスとしての`:local/:global`など)はまだサポートされていません。[詳細は以下を参照してください。](#unsupported-and-unplanned-features) | - -### アセット {#assets} - -| 機能 | ステータス | 備考 | -| --------------------------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------- | -| **静的アセット** (画像、フォント) | **サポート済み** | `import img from './img.png'`のインポートは標準で動作します。Next.jsでは、`<Image />`コンポーネント用のオブジェクトを返します。 | -| **JSONインポート** | **サポート済み** | `.json`からの名前付きまたはデフォルトのインポートがサポートされています。 | - -### モジュール解決 {#module-resolution} - -| 機能 | ステータス | 備考 | -| ------------------ | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **パスエイリアス** | **サポート済み** | `tsconfig.json`の`paths`と`baseUrl`を読み取り、Next.jsの動作に一致します。 | -| **手動エイリアス** | **サポート済み** | [`next.config.js`で`resolveAlias`を構成します](/docs/app/api-reference/config/next-config-js/turbo#resolving-aliases)(`webpack.resolve.alias`に類似)。 | -| **カスタム拡張子** | **サポート済み** | [`next.config.js`で`resolveExtensions`を構成します](/docs/app/api-reference/config/next-config-js/turbo#resolving-custom-extensions)。 | -| **AMD** | 部分的にサポート済み | 基本的な変換は動作しますが、高度なAMDの使用は制限されています。 | - -### パフォーマンスとFast Refresh {#performance-and-fast-refresh} - -| 機能 | ステータス | 備考 | -| -------------------------------- | ---------------- | --------------------------------------------------------------------------------------------------- | -| **Fast Refresh** | **サポート済み** | JavaScript、TypeScript、CSSをフルリフレッシュなしで更新します。 | -| **インクリメンタルバンドリング** | **サポート済み** | Turbopackは開発サーバーによって要求されたものだけを遅延的にビルドし、大規模なアプリを高速化します。 | - -## サポートされていない機能と計画されていない機能 {#unsupported-and-unplanned-features} - -一部の機能はまだ実装されていないか、計画されていません: - -- **プロダクションビルド** (`next build`) - Turbopackは現在`next dev`のみをサポートしています。プロダクションビルドのサポートは積極的に開発中です。 -- **レガシーCSSモジュール機能** - - スタンドアロンの`:local`および`:global`擬似クラス(関数バリアントの`:global(...)`のみがサポートされています)。 - - `@value`ルール(CSS変数に置き換えられました)。 - - `:import`および`:export`のICSSルール。 -- **`next.config.js`での`webpack()`設定** - Turbopackはwebpackを置き換えるため、`webpack()`設定は認識されません。代わりに[`experimental.turbo`設定](/docs/app/api-reference/config/next-config-js/turbo)を使用してください。 -- **AMP** - Next.jsでのTurbopackサポートは計画されていません。 -- **Yarn PnP** - Next.jsでのTurbopackサポートは計画されていません。 -- **`experimental.urlImports`** - Turbopackでは計画されていません。 -- **`experimental.esmExternals`** - 計画されていません。TurbopackはNext.jsのレガシー`esmExternals`設定をサポートしていません。 -- **一部のNext.js実験的フラグ** - - `experimental.typedRoutes` - - `experimental.nextScriptWorkers` - - `experimental.sri.algorithm` - - `experimental.fallbackNodePolyfills` - これらは将来的に実装する予定です。 - -各機能フラグとそのステータスの詳細な内訳については、[Turbopack APIリファレンス](/docs/app/api-reference/config/next-config-js/turbo)を参照してください。 - -## 設定 {#configuration} - -Turbopackは、`next.config.js`(または`next.config.ts`)の`experimental.turbo`キーの下で構成できます。設定オプションには以下が含まれます: - -- **`rules`** - ファイル変換のための追加の[webpackローダー](/docs/app/api-reference/config/next-config-js/turbo#configuring-webpack-loaders)を定義します。 -- **`resolveAlias`** - 手動エイリアスを作成します(webpackの`resolve.alias`に類似)。 -- **`resolveExtensions`** - モジュール解決のためのファイル拡張子を変更または拡張します。 -- **`moduleIdStrategy`** - モジュールIDの生成方法を設定します(`'named'` vs `'deterministic'`)。 -- **`treeShaking`** - 開発および将来のプロダクションビルドでのツリーシェイキングを有効または無効にします。 -- **`memoryLimit`** - Turbopackのメモリ制限(バイト単位)を設定します。 - -```js title="next.config.js" -module.exports = { - experimental: { - turbo: { - // 例:エイリアスとカスタムファイル拡張子の追加 - resolveAlias: { - underscore: 'lodash', - }, - resolveExtensions: ['.mdx', '.tsx', '.ts', '.jsx', '.js', '.json'], - }, - }, -} -``` - -より詳細な設定例については、[Turbopack設定ドキュメント](/docs/app/api-reference/config/next-config-js/turbo)を参照してください。 - -## パフォーマンスデバッグのためのトレースファイルの生成 {#generating-trace-files-for-performance-debugging} - -パフォーマンスやメモリの問題が発生し、Next.jsチームがそれを診断するのを手助けしたい場合は、開発コマンドに`NEXT_TURBOPACK_TRACING=1`を追加してトレースファイルを生成できます: - -```bash -NEXT_TURBOPACK_TRACING=1 next dev --turbopack -``` - -これにより、`.next/trace-turbopack`ファイルが生成されます。そのファイルを[Next.jsリポジトリ](https://github.com/vercel/next.js)でGitHubの問題を作成する際に含めてください。調査の手助けになります。 - -## まとめ {#summary} - -Turbopackは、特に大規模なアプリケーションにおいて、ローカル開発とビルドを高速化するために設計された**Rustベース**の**インクリメンタル**バンドラーです。Next.jsに統合されており、ゼロコンフィグのCSS、React、TypeScriptサポートを提供します。 - -Turbopackの改善とプロダクションビルドサポートの追加に向けて、今後の更新をお楽しみに。それまでの間、`next dev --turbopack`を試して、フィードバックをお寄せください。 diff --git a/docs/01-app/04-deep-dive/index.mdx b/docs/01-app/04-deep-dive/index.mdx new file mode 100644 index 00000000..705ec874 --- /dev/null +++ b/docs/01-app/04-deep-dive/index.mdx @@ -0,0 +1,4 @@ +--- +title: 'Deep Dive' +description: 'Next.jsがどのように内部で動作するかを学びましょう。' +--- diff --git a/docs/01-app/04-api-reference/01-directives/index.mdx b/docs/01-app/05-api-reference/01-directives/index.mdx similarity index 100% rename from docs/01-app/04-api-reference/01-directives/index.mdx rename to docs/01-app/05-api-reference/01-directives/index.mdx diff --git a/docs/01-app/04-api-reference/01-directives/use-cache.mdx b/docs/01-app/05-api-reference/01-directives/use-cache.mdx similarity index 53% rename from docs/01-app/04-api-reference/01-directives/use-cache.mdx rename to docs/01-app/05-api-reference/01-directives/use-cache.mdx index 677a5232..599a27aa 100644 --- a/docs/01-app/04-api-reference/01-directives/use-cache.mdx +++ b/docs/01-app/05-api-reference/01-directives/use-cache.mdx @@ -3,7 +3,7 @@ title: 'use cache' description: 'Next.jsアプリケーションでデータをキャッシュするためのuse cacheディレクティブの使い方を学びます。' version: 'canary' related: - title: 'Related' + title: '関連' description: '関連するAPIリファレンスを表示します。' links: - app/api-reference/config/next-config-js/useCache @@ -14,11 +14,11 @@ related: - app/api-reference/functions/revalidateTag --- -`use cache`ディレクティブは、コンポーネントや関数をキャッシュするために指定します。ファイルの先頭で使用すると、そのファイル内のすべてのエクスポートがキャッシュ可能であることを示します。また、関数やコンポーネントの先頭でインラインで使用すると、Next.jsに対してその戻り値をキャッシュし、後続のリクエストで再利用することを通知します。これはNext.jsの実験的な機能であり、Reactのネイティブ機能である[`use client`](/docs/app/api-reference/directives/use-client)や[`use server`](/docs/app/api-reference/directives/use-server)とは異なります。 +`use cache`ディレクティブを使用すると、ルート、Reactコンポーネント、または関数をキャッシュ可能としてマークできます。ファイルの先頭で使用すると、そのファイル内のすべてのエクスポートがキャッシュされることを示し、関数やコンポーネントの先頭でインラインで使用すると、戻り値をキャッシュします。 ## 使用法 {#usage} -`next.config.ts`ファイルで[`useCache`](/docs/app/api-reference/config/next-config-js/useCache)フラグを使用して、`use cache`ディレクティブのサポートを有効にします: +`use cache`は現在、実験的な機能です。有効にするには、`next.config.ts`ファイルに[`useCache`](/docs/app/api-reference/config/next-config-js/useCache)オプションを追加します: <Tabs> <TabItem value="ts" label="TypeScript"> @@ -52,9 +52,9 @@ module.exports = nextConfig </TabItem> </Tabs> -さらに、[`dynamicIO`](/docs/app/api-reference/config/next-config-js/dynamicIO)フラグが設定されている場合も、`use cache`ディレクティブが有効になります。 +> **Good to know:** `use cache`は[`dynamicIO`](/docs/app/api-reference/config/next-config-js/dynamicIO)オプションでも有効にできます。 -その後、ファイル、コンポーネント、または関数レベルで`use cache`ディレクティブを使用できます: +次に、ファイル、コンポーネント、または関数レベルで`use cache`を追加します: ```tsx // ファイルレベル @@ -78,22 +78,79 @@ export async function getData() { } ``` -## Good to know {#good-to-know} +## `use cache`の動作 {#how-use-cache-works} -- `use cache`はNext.jsの実験的な機能であり、Reactのネイティブ機能である[`use client`](/docs/app/api-reference/directives/use-client)や[`use server`](/docs/app/api-reference/directives/use-server)とは異なります。 -- キャッシュされた関数に渡される[シリアライズ可能](https://react.dev/reference/rsc/use-server#serializable-parameters-and-return-values)な引数(またはprops)や、親スコープから読み取るシリアライズ可能な値は、JSONのような形式に変換され、自動的にキャッシュキーの一部になります。 -- シリアライズ不可能な引数、props、または閉じ込められた値は、キャッシュされた関数内で不透明な参照に変わり、通過させることはできますが、検査や変更はできません。これらのシリアライズ不可能な値はリクエスト時に埋め込まれ、キャッシュキーの一部にはなりません。 - - 例えば、キャッシュされた関数はJSXを`children` propとして受け取り、`<div>{children}</div>`を返すことができますが、実際の`children`オブジェクトを内省することはできません。 -- キャッシュ可能な関数の戻り値もシリアライズ可能でなければなりません。これにより、キャッシュされたデータが正しく保存および取得されることが保証されます。 -- `use cache`ディレクティブを使用する関数は、副作用を持ってはいけません。例えば、状態の変更、DOMの直接操作、タイマーを設定してコードを定期的に実行することなどです。 -- [Partial Prerendering](/docs/app/building-your-application/rendering/partial-prerendering)と一緒に使用する場合、`use cache`を持つセグメントは静的HTMLシェルの一部としてプリレンダリングされます。 -- [`unstable_cache`](/docs/app/api-reference/functions/unstable_cache)がJSONデータのみをサポートするのとは異なり、`use cache`はReactがレンダリングできる任意のシリアライズ可能なデータ、コンポーネントのレンダリング出力を含むデータをキャッシュできます。 +### キャッシュキー {#cache-keys} + +キャッシュエントリのキーは、その入力のシリアライズされたバージョンを使用して生成されます。これには以下が含まれます: + +- ビルドID(各ビルドで生成される) +- 関数ID(関数に固有の安全な識別子) +- [シリアライズ可能な](https://react.dev/reference/rsc/use-server#serializable-parameters-and-return-values)関数の引数(またはprops) + +キャッシュされた関数に渡される引数や、親スコープから読み取る値は自動的にキーの一部になります。つまり、入力が同じである限り、同じキャッシュエントリが再利用されます。 + +## シリアライズ不可能な引数 {#non-serializable-arguments} + +シリアライズ不可能な引数、props、または閉じ込められた値は、キャッシュされた関数内で参照に変わり、通過することはできますが、検査や変更はできません。これらのシリアライズ不可能な値はリクエスト時に埋め込まれ、キャッシュキーの一部にはなりません。 + +たとえば、キャッシュされた関数はJSXを`children` propとして受け取り、`<div>{children}</div>`を返すことができますが、実際の`children`オブジェクトを内省することはできません。これにより、キャッシュされたコンポーネント内にキャッシュされていないコンテンツをネストすることができます。 + +<Tabs> +<TabItem value="tsx" label="TypeScript"> + +```tsx title="app/ui/cached-component.tsx" switcher +function CachedComponent({ children }: { children: ReactNode }) { + 'use cache' + return <div>{children}</div> +} +``` + +</TabItem> +<TabItem value="jsx" label="JavaScript"> + +```jsx title="app/ui/cached-component.js" switcher +function CachedComponent({ children }) { + 'use cache' + return <div>{children}</div> +} +``` + +</TabItem> +</Tabs> + +## 戻り値 {#return-values} + +キャッシュ可能な関数の戻り値はシリアライズ可能でなければなりません。これにより、キャッシュされたデータが正しく保存および取得されることが保証されます。 + +## ビルド時の`use cache` {#use-cache-at-build-time} + +[layout](/docs/app/api-reference/file-conventions/layout)や[page](/docs/app/api-reference/file-conventions/page)の先頭で使用すると、ルートセグメントがプリレンダリングされ、後で[再検証](#during-revalidation)できるようになります。 + +これは、`use cache`が`cookies`や`headers`のような[リクエスト時API](/docs/app/building-your-application/rendering/server-components#dynamic-apis)と一緒に使用できないことを意味します。 + +## 実行時の`use cache` {#use-cache-at-runtime} + +**サーバー**では、個々のコンポーネントや関数のキャッシュエントリがメモリ内にキャッシュされます。 + +その後、**クライアント**では、サーバーキャッシュから返されたコンテンツがセッションの間、または[再検証](#during-revalidation)されるまでブラウザのメモリに保存されます。 + +## 再検証中 {#during-revalidation} + +デフォルトでは、`use cache`はサーバー側の再検証期間が**15分**です。この期間は頻繁な更新を必要としないコンテンツに役立ちますが、`cacheLife`と`cacheTag` APIを使用して、個々のキャッシュエントリが再検証されるタイミングを設定できます。 + +- [`cacheLife`](/docs/app/api-reference/functions/cacheLife): キャッシュエントリの有効期間を設定します。 +- [`cacheTag`](/docs/app/api-reference/functions/cacheTag): オンデマンドで再検証するためのタグを作成します。 + +これらのAPIはクライアントとサーバーのキャッシングレイヤー全体で統合されており、1か所でキャッシングのセマンティクスを設定し、どこでも適用されるようにできます。 + +詳細については、[`cacheLife`](/docs/app/api-reference/functions/cacheLife)と[`cacheTag`](/docs/app/api-reference/functions/cacheTag)のAPIドキュメントを参照してください。 ## 例 {#examples} -### `use cache`を使用したルート全体のキャッシュ {#caching-entire-routes-with-use-cache} +### `use cache`を使用したルート全体のキャッシュ {#caching-an-entire-route-with-use-cache} -ルート全体をプリレンダリングするには、`layout`と`page`ファイルの両方の先頭に`use cache`を追加します。これらの各セグメントはアプリケーション内の個別のエントリーポイントとして扱われ、独立してキャッシュされます。 +ルート全体をプリレンダリングするには、`layout`と`page`ファイルの両方の先頭に`use cache`を追加します。これらの各セグメントはアプリケーション内の個別のエントリポイントとして扱われ、独立してキャッシュされます。 <Tabs> <TabItem value="tsx" label="TypeScript"> @@ -167,13 +224,14 @@ export default function Page() { </TabItem> </Tabs> -> これは、以前[`export const dynamic = "force-static"`](/docs/app/api-reference/file-conventions/route-segment-config#dynamic)オプションを使用していたアプリケーションに推奨され、ルート全体がプリレンダリングされることを保証します。 - -### `use cache`を使用したコンポーネント出力のキャッシュ {#caching-component-output-with-use-cache} +> **Good to know**: +> +> - `use cache`が`layout`または`page`のみに追加された場合、そのルートセグメントとそこにインポートされたコンポーネントのみがキャッシュされます。 +> - ルート内のネストされた子が[Dynamic APIs](/docs/app/building-your-application/rendering/server-components#dynamic-apis)を使用する場合、ルートはプリレンダリングから除外されます。 -コンポーネントレベルで`use cache`を使用して、そのコンポーネント内で行われるフェッチや計算をキャッシュできます。アプリケーション全体でコンポーネントを再利用する際、propsが同じ構造を維持する限り、同じキャッシュエントリを共有できます。 +### `use cache`を使用したコンポーネントの出力のキャッシュ {#caching-a-component-s-output-with-use-cache} -propsはシリアライズされ、キャッシュキーの一部を形成し、シリアライズされたpropsが各インスタンスで同じ値を生成する限り、キャッシュエントリが再利用されます。 +コンポーネントレベルで`use cache`を使用して、そのコンポーネント内で実行されるフェッチや計算をキャッシュできます。シリアライズされたpropsが各インスタンスで同じ値を生成する限り、キャッシュエントリは再利用されます。 <Tabs> <TabItem value="tsx" label="TypeScript"> @@ -210,9 +268,9 @@ export async function Bookings({ type = 'haircut' }) { </TabItem> </Tabs> -### `use cache`を使用した関数出力のキャッシュ {#caching-function-output-with-use-cache} +### `use cache`を使用した関数の出力のキャッシュ {#caching-function-output-with-use-cache} -非同期関数に`use cache`を追加できるため、コンポーネントやルートだけでなく、ネットワークリクエストやデータベースクエリをキャッシュしたり、非常に遅い計算を行ったりすることもできます。この種の作業を含む関数に`use cache`を追加することで、キャッシュ可能になり、再利用時には同じキャッシュエントリを共有します。 +非同期関数に`use cache`を追加できるため、コンポーネントやルートのキャッシュに限定されません。ネットワークリクエスト、データベースクエリ、または遅い計算をキャッシュしたい場合があります。 <Tabs> <TabItem value="tsx" label="TypeScript"> @@ -241,25 +299,6 @@ export async function getData() { </TabItem> </Tabs> -### 再検証 {#revalidating} - -デフォルトでは、Next.jsは`use cache`ディレクティブを使用する際に**15分の[再検証期間](/docs/app/building-your-application/data-fetching/fetching#revalidating-cached-data)**を設定します。Next.jsはほぼ無限の有効期限を設定し、頻繁な更新が不要なコンテンツに適しています。 - -この再検証期間は、頻繁に変更されることを期待しないコンテンツに役立つかもしれませんが、`cacheLife`と`cacheTag` APIを使用してキャッシュの動作を設定できます: - -- [`cacheLife`](/docs/app/api-reference/functions/cacheLife): 時間ベースの再検証期間のためのものです。 -- [`cacheTag`](/docs/app/api-reference/functions/cacheTag): キャッシュされたデータにタグを付けるためのものです。 - -これらのAPIはクライアントとサーバーのキャッシングレイヤー全体で統合されており、キャッシングのセマンティクスを1か所で設定し、どこでも適用されるようにできます。 - -詳細については、[`cacheLife`](/docs/app/api-reference/functions/cacheLife)と[`cacheTag`](/docs/app/api-reference/functions/cacheTag)のドキュメントを参照してください。 - -### 無効化 {#invalidating} - -キャッシュされたデータを無効にするには、[`revalidateTag`](/docs/app/api-reference/functions/revalidateTag)関数を使用します。 - -詳細については、[`revalidateTag`](/docs/app/api-reference/functions/revalidateTag)のドキュメントを参照してください。 - ### インターリービング {#interleaving} キャッシュ可能な関数にシリアライズ不可能な引数を渡す必要がある場合は、それらを`children`として渡すことができます。これにより、`children`の参照が変わってもキャッシュエントリに影響を与えません。 @@ -328,7 +367,7 @@ import ClientComponent from './ClientComponent' export default async function Page() { const performUpdate = async () => { 'use server' - // サーバーサイドの更新を実行 + // サーバー側の更新を実行 await db.update(...) } @@ -355,7 +394,7 @@ import ClientComponent from './ClientComponent' export default async function Page() { const performUpdate = async () => { 'use server' - // サーバーサイドの更新を実行 + // サーバー側の更新を実行 await db.update(...) } diff --git a/docs/01-app/04-api-reference/01-directives/use-client.mdx b/docs/01-app/05-api-reference/01-directives/use-client.mdx similarity index 100% rename from docs/01-app/04-api-reference/01-directives/use-client.mdx rename to docs/01-app/05-api-reference/01-directives/use-client.mdx diff --git a/docs/01-app/04-api-reference/01-directives/use-server.mdx b/docs/01-app/05-api-reference/01-directives/use-server.mdx similarity index 100% rename from docs/01-app/04-api-reference/01-directives/use-server.mdx rename to docs/01-app/05-api-reference/01-directives/use-server.mdx diff --git a/docs/01-app/04-api-reference/02-components/font.mdx b/docs/01-app/05-api-reference/02-components/font.mdx similarity index 100% rename from docs/01-app/04-api-reference/02-components/font.mdx rename to docs/01-app/05-api-reference/02-components/font.mdx diff --git a/docs/01-app/04-api-reference/02-components/form.mdx b/docs/01-app/05-api-reference/02-components/form.mdx similarity index 100% rename from docs/01-app/04-api-reference/02-components/form.mdx rename to docs/01-app/05-api-reference/02-components/form.mdx diff --git a/docs/01-app/04-api-reference/02-components/image.mdx b/docs/01-app/05-api-reference/02-components/image.mdx similarity index 100% rename from docs/01-app/04-api-reference/02-components/image.mdx rename to docs/01-app/05-api-reference/02-components/image.mdx diff --git a/docs/01-app/04-api-reference/02-components/index.mdx b/docs/01-app/05-api-reference/02-components/index.mdx similarity index 100% rename from docs/01-app/04-api-reference/02-components/index.mdx rename to docs/01-app/05-api-reference/02-components/index.mdx diff --git a/docs/01-app/04-api-reference/02-components/link.mdx b/docs/01-app/05-api-reference/02-components/link.mdx similarity index 100% rename from docs/01-app/04-api-reference/02-components/link.mdx rename to docs/01-app/05-api-reference/02-components/link.mdx diff --git a/docs/01-app/04-api-reference/02-components/script.mdx b/docs/01-app/05-api-reference/02-components/script.mdx similarity index 100% rename from docs/01-app/04-api-reference/02-components/script.mdx rename to docs/01-app/05-api-reference/02-components/script.mdx diff --git a/docs/01-app/04-api-reference/03-file-conventions/01-metadata/app-icons.mdx b/docs/01-app/05-api-reference/03-file-conventions/01-metadata/app-icons.mdx similarity index 100% rename from docs/01-app/04-api-reference/03-file-conventions/01-metadata/app-icons.mdx rename to docs/01-app/05-api-reference/03-file-conventions/01-metadata/app-icons.mdx diff --git a/docs/01-app/04-api-reference/03-file-conventions/01-metadata/index.mdx b/docs/01-app/05-api-reference/03-file-conventions/01-metadata/index.mdx similarity index 100% rename from docs/01-app/04-api-reference/03-file-conventions/01-metadata/index.mdx rename to docs/01-app/05-api-reference/03-file-conventions/01-metadata/index.mdx diff --git a/docs/01-app/04-api-reference/03-file-conventions/01-metadata/manifest.mdx b/docs/01-app/05-api-reference/03-file-conventions/01-metadata/manifest.mdx similarity index 100% rename from docs/01-app/04-api-reference/03-file-conventions/01-metadata/manifest.mdx rename to docs/01-app/05-api-reference/03-file-conventions/01-metadata/manifest.mdx diff --git a/docs/01-app/04-api-reference/03-file-conventions/01-metadata/opengraph-image.mdx b/docs/01-app/05-api-reference/03-file-conventions/01-metadata/opengraph-image.mdx similarity index 100% rename from docs/01-app/04-api-reference/03-file-conventions/01-metadata/opengraph-image.mdx rename to docs/01-app/05-api-reference/03-file-conventions/01-metadata/opengraph-image.mdx diff --git a/docs/01-app/04-api-reference/03-file-conventions/01-metadata/robots.mdx b/docs/01-app/05-api-reference/03-file-conventions/01-metadata/robots.mdx similarity index 100% rename from docs/01-app/04-api-reference/03-file-conventions/01-metadata/robots.mdx rename to docs/01-app/05-api-reference/03-file-conventions/01-metadata/robots.mdx diff --git a/docs/01-app/04-api-reference/03-file-conventions/01-metadata/sitemap.mdx b/docs/01-app/05-api-reference/03-file-conventions/01-metadata/sitemap.mdx similarity index 100% rename from docs/01-app/04-api-reference/03-file-conventions/01-metadata/sitemap.mdx rename to docs/01-app/05-api-reference/03-file-conventions/01-metadata/sitemap.mdx diff --git a/docs/01-app/04-api-reference/03-file-conventions/default.mdx b/docs/01-app/05-api-reference/03-file-conventions/default.mdx similarity index 100% rename from docs/01-app/04-api-reference/03-file-conventions/default.mdx rename to docs/01-app/05-api-reference/03-file-conventions/default.mdx diff --git a/docs/01-app/04-api-reference/03-file-conventions/error.mdx b/docs/01-app/05-api-reference/03-file-conventions/error.mdx similarity index 100% rename from docs/01-app/04-api-reference/03-file-conventions/error.mdx rename to docs/01-app/05-api-reference/03-file-conventions/error.mdx diff --git a/docs/01-app/04-api-reference/03-file-conventions/forbidden.mdx b/docs/01-app/05-api-reference/03-file-conventions/forbidden.mdx similarity index 100% rename from docs/01-app/04-api-reference/03-file-conventions/forbidden.mdx rename to docs/01-app/05-api-reference/03-file-conventions/forbidden.mdx diff --git a/docs/01-app/04-api-reference/03-file-conventions/index.mdx b/docs/01-app/05-api-reference/03-file-conventions/index.mdx similarity index 100% rename from docs/01-app/04-api-reference/03-file-conventions/index.mdx rename to docs/01-app/05-api-reference/03-file-conventions/index.mdx diff --git a/docs/01-app/04-api-reference/03-file-conventions/instrumentation-client.mdx b/docs/01-app/05-api-reference/03-file-conventions/instrumentation-client.mdx similarity index 100% rename from docs/01-app/04-api-reference/03-file-conventions/instrumentation-client.mdx rename to docs/01-app/05-api-reference/03-file-conventions/instrumentation-client.mdx diff --git a/docs/01-app/04-api-reference/03-file-conventions/instrumentation.mdx b/docs/01-app/05-api-reference/03-file-conventions/instrumentation.mdx similarity index 100% rename from docs/01-app/04-api-reference/03-file-conventions/instrumentation.mdx rename to docs/01-app/05-api-reference/03-file-conventions/instrumentation.mdx diff --git a/docs/01-app/04-api-reference/03-file-conventions/layout.mdx b/docs/01-app/05-api-reference/03-file-conventions/layout.mdx similarity index 100% rename from docs/01-app/04-api-reference/03-file-conventions/layout.mdx rename to docs/01-app/05-api-reference/03-file-conventions/layout.mdx diff --git a/docs/01-app/04-api-reference/03-file-conventions/loading.mdx b/docs/01-app/05-api-reference/03-file-conventions/loading.mdx similarity index 100% rename from docs/01-app/04-api-reference/03-file-conventions/loading.mdx rename to docs/01-app/05-api-reference/03-file-conventions/loading.mdx diff --git a/docs/01-app/04-api-reference/03-file-conventions/mdx-components.mdx b/docs/01-app/05-api-reference/03-file-conventions/mdx-components.mdx similarity index 100% rename from docs/01-app/04-api-reference/03-file-conventions/mdx-components.mdx rename to docs/01-app/05-api-reference/03-file-conventions/mdx-components.mdx diff --git a/docs/01-app/04-api-reference/03-file-conventions/middleware.mdx b/docs/01-app/05-api-reference/03-file-conventions/middleware.mdx similarity index 100% rename from docs/01-app/04-api-reference/03-file-conventions/middleware.mdx rename to docs/01-app/05-api-reference/03-file-conventions/middleware.mdx diff --git a/docs/01-app/04-api-reference/03-file-conventions/not-found.mdx b/docs/01-app/05-api-reference/03-file-conventions/not-found.mdx similarity index 100% rename from docs/01-app/04-api-reference/03-file-conventions/not-found.mdx rename to docs/01-app/05-api-reference/03-file-conventions/not-found.mdx diff --git a/docs/01-app/04-api-reference/03-file-conventions/page.mdx b/docs/01-app/05-api-reference/03-file-conventions/page.mdx similarity index 100% rename from docs/01-app/04-api-reference/03-file-conventions/page.mdx rename to docs/01-app/05-api-reference/03-file-conventions/page.mdx diff --git a/docs/01-app/04-api-reference/03-file-conventions/route-segment-config.mdx b/docs/01-app/05-api-reference/03-file-conventions/route-segment-config.mdx similarity index 100% rename from docs/01-app/04-api-reference/03-file-conventions/route-segment-config.mdx rename to docs/01-app/05-api-reference/03-file-conventions/route-segment-config.mdx diff --git a/docs/01-app/04-api-reference/03-file-conventions/route.mdx b/docs/01-app/05-api-reference/03-file-conventions/route.mdx similarity index 100% rename from docs/01-app/04-api-reference/03-file-conventions/route.mdx rename to docs/01-app/05-api-reference/03-file-conventions/route.mdx diff --git a/docs/01-app/04-api-reference/03-file-conventions/template.mdx b/docs/01-app/05-api-reference/03-file-conventions/template.mdx similarity index 100% rename from docs/01-app/04-api-reference/03-file-conventions/template.mdx rename to docs/01-app/05-api-reference/03-file-conventions/template.mdx diff --git a/docs/01-app/04-api-reference/03-file-conventions/unauthorized.mdx b/docs/01-app/05-api-reference/03-file-conventions/unauthorized.mdx similarity index 100% rename from docs/01-app/04-api-reference/03-file-conventions/unauthorized.mdx rename to docs/01-app/05-api-reference/03-file-conventions/unauthorized.mdx diff --git a/docs/01-app/04-api-reference/04-functions/after.mdx b/docs/01-app/05-api-reference/04-functions/after.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/after.mdx rename to docs/01-app/05-api-reference/04-functions/after.mdx diff --git a/docs/01-app/04-api-reference/04-functions/cacheLife.mdx b/docs/01-app/05-api-reference/04-functions/cacheLife.mdx similarity index 65% rename from docs/01-app/04-api-reference/04-functions/cacheLife.mdx rename to docs/01-app/05-api-reference/04-functions/cacheLife.mdx index 079dcb8f..3a42d6ad 100644 --- a/docs/01-app/04-api-reference/04-functions/cacheLife.mdx +++ b/docs/01-app/05-api-reference/04-functions/cacheLife.mdx @@ -1,6 +1,6 @@ --- title: 'cacheLife' -description: 'キャッシュされた関数やコンポーネントのキャッシュ有効期限を設定するためのcacheLife関数の使い方を学びます。' +description: 'キャッシュされた関数やコンポーネントのキャッシュ有効期限を設定するためのcacheLife関数の使い方を学びましょう。' version: 'canary' related: title: '関連' @@ -12,7 +12,7 @@ related: - app/api-reference/functions/cacheTag --- -`cacheLife`関数は、関数やコンポーネントのキャッシュの有効期間を設定するために使用されます。これは[`use cache`](/docs/app/api-reference/directives/use-cache)ディレクティブと共に、関数やコンポーネントのスコープ内で使用する必要があります。 +`cacheLife`関数は、関数やコンポーネントのキャッシュの有効期間を設定するために使用されます。これは[`use cache`](/docs/app/api-reference/directives/use-cache)ディレクティブと共に、関数やコンポーネントのスコープ内で使用されるべきです。 ## 使用法 {#usage} @@ -84,21 +84,23 @@ export default async function Page() { ### デフォルトのキャッシュプロファイル {#default-cache-profiles} -Next.jsは、さまざまな時間スケールに基づいた名前付きキャッシュプロファイルのセットを提供します。`use cache`ディレクティブと共に`cacheLife`関数でキャッシュプロファイルを指定しない場合、Next.jsは自動的に「default」キャッシュプロファイルを適用します。 +Next.jsは、さまざまな時間スケールに基づいた名前付きキャッシュプロファイルを提供しています。`use cache`ディレクティブと共に`cacheLife`関数でキャッシュプロファイルを指定しない場合、Next.jsは自動的に`default`キャッシュプロファイルを適用します。 ただし、`use cache`ディレクティブを使用する際には、キャッシュの動作を明示的に定義するために、常にキャッシュプロファイルを追加することをお勧めします。 -| **プロファイル** | **Stale** | **Revalidate** | **Expire** | **説明** | -| ---------------- | --------- | -------------- | -------------- | ---------------------------------------------------------- | -| `default` | undefined | 15分 | INFINITE_CACHE | 頻繁な更新が不要なコンテンツに適したデフォルトプロファイル | -| `seconds` | undefined | 1秒 | 1分 | ほぼリアルタイムの更新が必要な急速に変化するコンテンツ向け | -| `minutes` | 5分 | 1分 | 1時間 | 1時間以内に頻繁に更新されるコンテンツ向け | -| `hours` | 5分 | 1時間 | 1日 | 毎日更新されるが、少し古くても問題ないコンテンツ向け | -| `days` | 5分 | 1日 | 1週間 | 毎週更新されるが、1日古くても問題ないコンテンツ向け | -| `weeks` | 5分 | 1週間 | 1ヶ月 | 毎月更新されるが、1週間古くても問題ないコンテンツ向け | -| `max` | 5分 | 1ヶ月 | INFINITE_CACHE | 更新がほとんど不要な非常に安定したコンテンツ向け | +| **プロファイル** | `stale` | `revalidate` | `expire` | **説明** | +| ---------------- | ------- | ------------ | -------- | ---------------------------------------------------------- | +| `default` | 5分 | 15分 | 1年 | 頻繁な更新が不要なコンテンツに適したデフォルトプロファイル | +| `seconds` | 0 | 1秒 | 1秒 | ほぼリアルタイムの更新が必要な急速に変化するコンテンツ向け | +| `minutes` | 5分 | 1分 | 1時間 | 1時間以内に頻繁に更新されるコンテンツ向け | +| `hours` | 5分 | 1時間 | 1日 | 毎日更新されるが、少し古くても問題ないコンテンツ向け | +| `days` | 5分 | 1日 | 1週間 | 週に1回更新されるが、1日古くても問題ないコンテンツ向け | +| `weeks` | 5分 | 1週間 | 30日 | 月に1回更新されるが、1週間古くても問題ないコンテンツ向け | +| `max` | 5分 | 30日 | 1年 | 更新がほとんど不要な非常に安定したコンテンツ向け | -キャッシュプロファイルを参照するために使用される文字列値には固有の意味はありません;代わりに、それらはセマンティックラベルとして機能します。これにより、コードベース内でキャッシュされたコンテンツをより理解しやすく管理できます。 +キャッシュプロファイルを参照するために使用される文字列値には固有の意味はありません。代わりに、セマンティックラベルとして機能し、コードベース内でキャッシュされたコンテンツをより理解しやすく管理できるようにします。 + +> **Good to know:** [`staleTimes`](/docs/app/api-reference/config/next-config-js/staleTimes)および[`expireTime`](/docs/app/api-reference/config/next-config-js/expireTime)の設定オプションを更新すると、`default`キャッシュプロファイルの`stale`および`expire`プロパティも更新されます。 ### カスタムキャッシュプロファイル {#custom-cache-profiles} @@ -106,13 +108,13 @@ Next.jsは、さまざまな時間スケールに基づいた名前付きキャ キャッシュプロファイルは、次のプロパティを含むオブジェクトです: -| **プロパティ** | **値** | **説明** | **要件** | -| -------------- | -------- | ------------------------------------------------------------------------------------------------------ | --------------------------------------------- | -| `stale` | `number` | クライアントがサーバーを確認せずに値をキャッシュする期間。 | 任意 | -| `revalidate` | `number` | サーバーでキャッシュを更新する頻度;再検証中に古い値が提供されることがあります。 | 任意 | -| `expire` | `number` | 動的フェッチに切り替える前に値が古くなることができる最大期間;`revalidate`より長くなければなりません。 | 任意 - `revalidate`より長くなければなりません | +| **プロパティ** | **値** | **説明** | **要件** | +| -------------- | -------- | ------------------------------------------------------------------------------------------------ | --------------------------------------------- | +| `stale` | `number` | クライアントがサーバーを確認せずに値をキャッシュする期間。 | 任意 | +| `revalidate` | `number` | サーバーでキャッシュを更新する頻度。再検証中に古い値が提供されることがあります。 | 任意 | +| `expire` | `number` | 動的フェッチに切り替える前に値が古くなるまでの最大期間。`revalidate`より長くなければなりません。 | 任意 - `revalidate`より長くなければなりません | -"stale"プロパティは、クライアントサイドのrouterキャッシュを特に制御する点で、[`staleTimes`](/docs/app/api-reference/config/next-config-js/staleTimes)設定とは異なります。`staleTimes`は動的データと静的データのすべてのインスタンスに影響を与えるグローバル設定ですが、`cacheLife`設定は関数またはルートごとに"stale"時間を定義することを可能にします。 +"stale"プロパティは、クライアントサイドのrouterキャッシュを特に制御する点で、[`staleTimes`](/docs/app/api-reference/config/next-config-js/staleTimes)設定とは異なります。`staleTimes`は動的データと静的データのすべてのインスタンスに影響を与えるグローバル設定ですが、`cacheLife`設定では、関数やルートごとに"stale"時間を定義できます。 > **Good to know**: "stale"プロパティは`Cache-control: max-age`ヘッダーを設定しません。代わりに、クライアントサイドのrouterキャッシュを制御します。 @@ -120,7 +122,7 @@ Next.jsは、さまざまな時間スケールに基づいた名前付きキャ ### 再利用可能なキャッシュプロファイルの定義 {#defining-reusable-cache-profiles} -`next.config.ts`ファイルに再利用可能なキャッシュプロファイルを定義することで作成できます。使用例に適した名前を選び、`stale`、`revalidate`、`expire`プロパティの値を設定します。必要に応じて、カスタムキャッシュプロファイルをいくつでも作成できます。各プロファイルは、`cacheLife`関数に渡される文字列値としてその名前で参照できます。 +`next.config.ts`ファイルで再利用可能なキャッシュプロファイルを定義することができます。用途に合った名前を選び、`stale`、`revalidate`、`expire`プロパティの値を設定します。必要に応じて、カスタムキャッシュプロファイルをいくつでも作成できます。各プロファイルは、`cacheLife`関数に渡される文字列値としてその名前で参照できます。 <Tabs> <TabItem value="ts" label="TypeScript"> @@ -167,7 +169,7 @@ module.exports = nextConfig </TabItem> </Tabs> -上記の例では、14日間キャッシュし、毎日更新を確認し、14日後にキャッシュが期限切れになります。このプロファイルは、アプリケーション全体でその名前で参照できます: +上記の例では、14日間キャッシュし、毎日更新を確認し、14日後にキャッシュを期限切れにします。このプロファイルは、アプリケーション全体でその名前で参照できます: ```tsx title="app/page.tsx" highlight={5} 'use cache' @@ -181,11 +183,11 @@ export default async function Page() { ### デフォルトのキャッシュプロファイルの上書き {#overriding-the-default-cache-profiles} -デフォルトのキャッシュプロファイルは、キャッシュ可能な出力の新鮮さや古さを考えるのに役立ちますが、アプリケーションのキャッシュ戦略により適合する異なる名前付きプロファイルを好むかもしれません。 +デフォルトのキャッシュプロファイルは、キャッシュ可能な出力の新鮮さや古さを考えるための便利な方法を提供しますが、アプリケーションのキャッシュ戦略により適した異なる名前付きプロファイルを好む場合があります。 デフォルトの名前付きキャッシュプロファイルを上書きするには、デフォルトと同じ名前で新しい設定を作成します。 -以下の例は、デフォルトの「days」キャッシュプロファイルを上書きする方法を示しています: +以下の例は、デフォルトの"days"キャッシュプロファイルを上書きする方法を示しています: ```ts title="next.config.ts" const nextConfig = { @@ -247,11 +249,11 @@ export default async function Page() { </TabItem> </Tabs> -このインラインキャッシュプロファイルは、それが作成された関数またはファイルにのみ適用されます。アプリケーション全体で同じプロファイルを再利用したい場合は、`next.config.ts`ファイルの`cacheLife`プロパティに[設定を追加](#defining-reusable-cache-profiles)できます。 +このインラインキャッシュプロファイルは、それが作成された関数またはファイルにのみ適用されます。アプリケーション全体で同じプロファイルを再利用したい場合は、`next.config.ts`ファイルの`cacheLife`プロパティに[設定を追加](#defining-reusable-cache-profiles)することができます。 ### `use cache`と`cacheLife`のネストされた使用 {#nested-usage-of-use-cache-and-cachelife} -同じルートまたはコンポーネントtreeで複数のキャッシュ動作を定義する場合、内部キャッシュが独自の`cacheLife`プロファイルを指定している場合、外部キャッシュはそれらの中で最も短いキャッシュ期間を尊重します。**これは、外部キャッシュが独自の明示的な`cacheLife`プロファイルを持たない場合にのみ適用されます。** +同じルートやコンポーネントtreeで複数のキャッシュ動作を定義する場合、内部キャッシュが独自の`cacheLife`プロファイルを指定している場合、外部キャッシュはそれらの中で最も短いキャッシュ期間を尊重します。**これは、外部キャッシュが独自の明示的な`cacheLife`プロファイルを持たない場合にのみ適用されます。** たとえば、ページに`use cache`ディレクティブを追加し、キャッシュプロファイルを指定しない場合、デフォルトのキャッシュプロファイルが暗黙的に適用されます(`cacheLife(”default”)`)。ページにインポートされたコンポーネントが独自のキャッシュプロファイルを持つ`use cache`ディレクティブを使用している場合、外部と内部のキャッシュプロファイルが比較され、プロファイルで設定された最短期間が適用されます。 @@ -283,6 +285,6 @@ export async function ChildComponent() { cacheLife('hours') return <div>Child Content</div> - // このコンポーネントのキャッシュは、より短い 'hours' プロファイルを尊重します + // このコンポーネントのキャッシュは、より短い'hours'プロファイルを尊重します } ``` diff --git a/docs/01-app/04-api-reference/04-functions/cacheTag.mdx b/docs/01-app/05-api-reference/04-functions/cacheTag.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/cacheTag.mdx rename to docs/01-app/05-api-reference/04-functions/cacheTag.mdx diff --git a/docs/01-app/04-api-reference/04-functions/connection.mdx b/docs/01-app/05-api-reference/04-functions/connection.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/connection.mdx rename to docs/01-app/05-api-reference/04-functions/connection.mdx diff --git a/docs/01-app/04-api-reference/04-functions/cookies.mdx b/docs/01-app/05-api-reference/04-functions/cookies.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/cookies.mdx rename to docs/01-app/05-api-reference/04-functions/cookies.mdx diff --git a/docs/01-app/04-api-reference/04-functions/draft-mode.mdx b/docs/01-app/05-api-reference/04-functions/draft-mode.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/draft-mode.mdx rename to docs/01-app/05-api-reference/04-functions/draft-mode.mdx diff --git a/docs/01-app/04-api-reference/04-functions/fetch.mdx b/docs/01-app/05-api-reference/04-functions/fetch.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/fetch.mdx rename to docs/01-app/05-api-reference/04-functions/fetch.mdx diff --git a/docs/01-app/04-api-reference/04-functions/forbidden.mdx b/docs/01-app/05-api-reference/04-functions/forbidden.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/forbidden.mdx rename to docs/01-app/05-api-reference/04-functions/forbidden.mdx diff --git a/docs/01-app/04-api-reference/04-functions/generate-image-metadata.mdx b/docs/01-app/05-api-reference/04-functions/generate-image-metadata.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/generate-image-metadata.mdx rename to docs/01-app/05-api-reference/04-functions/generate-image-metadata.mdx diff --git a/docs/01-app/04-api-reference/04-functions/generate-metadata.mdx b/docs/01-app/05-api-reference/04-functions/generate-metadata.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/generate-metadata.mdx rename to docs/01-app/05-api-reference/04-functions/generate-metadata.mdx diff --git a/docs/01-app/04-api-reference/04-functions/generate-sitemaps.mdx b/docs/01-app/05-api-reference/04-functions/generate-sitemaps.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/generate-sitemaps.mdx rename to docs/01-app/05-api-reference/04-functions/generate-sitemaps.mdx diff --git a/docs/01-app/04-api-reference/04-functions/generate-static-params.mdx b/docs/01-app/05-api-reference/04-functions/generate-static-params.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/generate-static-params.mdx rename to docs/01-app/05-api-reference/04-functions/generate-static-params.mdx diff --git a/docs/01-app/04-api-reference/04-functions/generate-viewport.mdx b/docs/01-app/05-api-reference/04-functions/generate-viewport.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/generate-viewport.mdx rename to docs/01-app/05-api-reference/04-functions/generate-viewport.mdx diff --git a/docs/01-app/04-api-reference/04-functions/headers.mdx b/docs/01-app/05-api-reference/04-functions/headers.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/headers.mdx rename to docs/01-app/05-api-reference/04-functions/headers.mdx diff --git a/docs/01-app/04-api-reference/04-functions/image-response.mdx b/docs/01-app/05-api-reference/04-functions/image-response.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/image-response.mdx rename to docs/01-app/05-api-reference/04-functions/image-response.mdx diff --git a/docs/01-app/04-api-reference/04-functions/index.mdx b/docs/01-app/05-api-reference/04-functions/index.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/index.mdx rename to docs/01-app/05-api-reference/04-functions/index.mdx diff --git a/docs/01-app/04-api-reference/04-functions/next-request.mdx b/docs/01-app/05-api-reference/04-functions/next-request.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/next-request.mdx rename to docs/01-app/05-api-reference/04-functions/next-request.mdx diff --git a/docs/01-app/04-api-reference/04-functions/next-response.mdx b/docs/01-app/05-api-reference/04-functions/next-response.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/next-response.mdx rename to docs/01-app/05-api-reference/04-functions/next-response.mdx diff --git a/docs/01-app/04-api-reference/04-functions/not-found.mdx b/docs/01-app/05-api-reference/04-functions/not-found.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/not-found.mdx rename to docs/01-app/05-api-reference/04-functions/not-found.mdx diff --git a/docs/01-app/04-api-reference/04-functions/permanentRedirect.mdx b/docs/01-app/05-api-reference/04-functions/permanentRedirect.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/permanentRedirect.mdx rename to docs/01-app/05-api-reference/04-functions/permanentRedirect.mdx diff --git a/docs/01-app/04-api-reference/04-functions/redirect.mdx b/docs/01-app/05-api-reference/04-functions/redirect.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/redirect.mdx rename to docs/01-app/05-api-reference/04-functions/redirect.mdx diff --git a/docs/01-app/04-api-reference/04-functions/revalidatePath.mdx b/docs/01-app/05-api-reference/04-functions/revalidatePath.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/revalidatePath.mdx rename to docs/01-app/05-api-reference/04-functions/revalidatePath.mdx diff --git a/docs/01-app/04-api-reference/04-functions/revalidateTag.mdx b/docs/01-app/05-api-reference/04-functions/revalidateTag.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/revalidateTag.mdx rename to docs/01-app/05-api-reference/04-functions/revalidateTag.mdx diff --git a/docs/01-app/04-api-reference/04-functions/unauthorized.mdx b/docs/01-app/05-api-reference/04-functions/unauthorized.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/unauthorized.mdx rename to docs/01-app/05-api-reference/04-functions/unauthorized.mdx diff --git a/docs/01-app/04-api-reference/04-functions/unstable_cache.mdx b/docs/01-app/05-api-reference/04-functions/unstable_cache.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/unstable_cache.mdx rename to docs/01-app/05-api-reference/04-functions/unstable_cache.mdx diff --git a/docs/01-app/04-api-reference/04-functions/unstable_noStore.mdx b/docs/01-app/05-api-reference/04-functions/unstable_noStore.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/unstable_noStore.mdx rename to docs/01-app/05-api-reference/04-functions/unstable_noStore.mdx diff --git a/docs/01-app/04-api-reference/04-functions/unstable_rethrow.mdx b/docs/01-app/05-api-reference/04-functions/unstable_rethrow.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/unstable_rethrow.mdx rename to docs/01-app/05-api-reference/04-functions/unstable_rethrow.mdx diff --git a/docs/01-app/05-api-reference/04-functions/use-link-status.mdx b/docs/01-app/05-api-reference/04-functions/use-link-status.mdx new file mode 100644 index 00000000..36b7ad24 --- /dev/null +++ b/docs/01-app/05-api-reference/04-functions/use-link-status.mdx @@ -0,0 +1,262 @@ +--- +title: 'useLinkStatus' +description: 'useLinkStatus フックのAPIリファレンス。' +related: + title: '次のステップ' + description: 'このページで紹介されている機能についてさらに学ぶには、APIリファレンスを参照してください。' + links: + - app/api-reference/components/link + - app/api-reference/file-conventions/loading +--- + +`useLinkStatus` フックは、`<Link>` の**pending**状態を追跡することができます。これを使用して、新しいルートへのナビゲーションが完了するまでの間、ユーザーにインラインの視覚的フィードバック(スピナーやテキストのきらめきなど)を表示することができます。 + +`useLinkStatus` が役立つのは以下の場合です: + +- [Prefetching](/docs/app/building-your-application/routing/linking-and-navigating#2-prefetching) が無効化されているか、進行中でナビゲーションがブロックされている場合 +- 目的地のルートが動的であり、即時ナビゲーションを可能にする [`loading.js`](/docs/app/api-reference/file-conventions/loading) ファイルが含まれていない場合 + +<Tabs> +<TabItem value="tsx" label="TypeScript"> + +```tsx title="app/loading-indicator.tsx" switcher +'use client' + +import { useLinkStatus } from 'next/link' + +export default function LoadingIndicator() { + const { pending } = useLinkStatus() + return pending ? ( + <div role="status" aria-label="Loading" className="spinner" /> + ) : null +} +``` + +</TabItem> +<TabItem value="jsx" label="JavaScript"> + +```jsx title="app/loading-indicator.js" switcher +'use client' + +import { useLinkStatus } from 'next/link' + +export default function LoadingIndicator() { + const { pending } = useLinkStatus() + return pending ? ( + <div role="status" aria-label="Loading" className="spinner" /> + ) : null +} +``` + +</TabItem> +</Tabs> + +<Tabs> +<TabItem value="tsx" label="TypeScript"> + +```tsx title="app/header.tsx" switcher +import Link from 'next/link' +import LoadingIndicator from './loading-indicator' + +export default function Header() { + return ( + <header> + <Link href="/dashboard" prefetch={false}> + Dashboard <LoadingIndicator /> + </Link> + </header> + ) +} +``` + +</TabItem> +<TabItem value="jsx" label="JavaScript"> + +```jsx title="app/header.js" switcher +import Link from 'next/link' +import LoadingIndicator from './loading-indicator' + +export default function Header() { + return ( + <header> + <Link href="/dashboard" prefetch={false}> + Dashboard <LoadingIndicator /> + </Link> + </header> + ) +} +``` + +</TabItem> +</Tabs> + +> **Good to know**: +> +> - `useLinkStatus` は `Link` コンポーネントの子孫コンポーネント内で使用する必要があります +> - このフックは、`Link` コンポーネントで `prefetch={false}` が設定されている場合に最も有用です +> - リンクされたルートが事前取得されている場合、pending 状態はスキップされます +> - 複数のリンクを短時間で連続してクリックした場合、最後のリンクの pending 状態のみが表示されます +> - このフックは Pages Router ではサポートされておらず、常に `{ pending: false }` を返します + +## パラメータ {#parameters} + +```tsx +const { pending } = useLinkStatus() +``` + +`useLinkStatus` はパラメータを受け取りません。 + +## 戻り値 {#returns} + +`useLinkStatus` は、単一のプロパティを持つオブジェクトを返します: + +| プロパティ | 型 | 説明 | +| ---------- | ------- | --------------------------------------------- | +| pending | boolean | 履歴が更新される前は `true`、更新後は `false` | + +## 例 {#example} + +### インラインのローディングインジケーター {#inline-loading-indicator} + +ユーザーが事前取得が完了する前にリンクをクリックした場合、ナビゲーションが行われていることを示す視覚的フィードバックを追加することは有用です。 + +<Tabs> +<TabItem value="tsx" label="TypeScript"> + +```tsx title="app/components/loading-indicator.tsx" switcher +'use client' + +import { useLinkStatus } from 'next/link' + +export default function LoadingIndicator() { + const { pending } = useLinkStatus() + return pending ? ( + <div role="status" aria-label="Loading" className="spinner" /> + ) : null +} +``` + +</TabItem> +<TabItem value="jsx" label="JavaScript"> + +```jsx title="app/components/loading-indicator.js" switcher +'use client' + +import { useLinkStatus } from 'next/link' + +export default function LoadingIndicator() { + const { pending } = useLinkStatus() + return pending ? ( + <div role="status" aria-label="Loading" className="spinner" /> + ) : null +} +``` + +</TabItem> +</Tabs> + +<Tabs> +<TabItem value="tsx" label="TypeScript"> + +```tsx title="app/shop/layout.tsx" switcher +import Link from 'next/link' +import LoadingIndicator from './components/loading-indicator' + +const links = [ + { href: '/shop/electronics', label: 'Electronics' }, + { href: '/shop/clothing', label: 'Clothing' }, + { href: '/shop/books', label: 'Books' }, +] + +function Menubar() { + return ( + <div> + {links.map((link) => ( + <Link key={link.label} href={link.href}> + {link.label} <LoadingIndicator /> + </Link> + ))} + </div> + ) +} + +export default function Layout({ children }: { children: React.ReactNode }) { + return ( + <div> + <Menubar /> + {children} + </div> + ) +} +``` + +</TabItem> +<TabItem value="jsx" label="JavaScript"> + +```jsx title="app/shop/layout.js" switcher +import Link from 'next/link' +import LoadingIndicator from './components/loading-indicator' + +const links = [ + { href: '/shop/electronics', label: 'Electronics' }, + { href: '/shop/clothing', label: 'Clothing' }, + { href: '/shop/books', label: 'Books' }, +] + +function Menubar() { + return ( + <div> + {links.map((link) => ( + <Link key={link.label} href={link.href}> + {link.label} <LoadingIndicator /> + </Link> + ))} + </div> + ) +} + +export default function Layout({ children }) { + return ( + <div> + <Menubar /> + {children} + </div> + ) +} +``` + +</TabItem> +</Tabs> + +## 高速ナビゲーションの優雅な処理 {#gracefully-handling-fast-navigation} + +新しいルートへのナビゲーションが速い場合、ユーザーは不要なローディングインジケーターのフラッシュを見るかもしれません。ユーザーエクスペリエンスを向上させ、ナビゲーションが完了するのに時間がかかる場合にのみローディングインジケーターを表示するための1つの方法は、初期アニメーションの遅延(例:100ms)を追加し、アニメーションを不可視(例:`opacity: 0`)として開始することです。 + +```css title="app/styles/global.css" +.spinner { + /* ... */ + opacity: 0; + animation: + fadeIn 500ms 100ms forwards, + rotate 1s linear infinite; +} + +@keyframes fadeIn { + from { + opacity: 0; + } + to { + opacity: 1; + } +} + +@keyframes rotate { + to { + transform: rotate(360deg); + } +} +``` + +| バージョン | 変更内容 | +| ---------- | ---------------------------------- | +| `v15.3.0` | `useLinkStatus` が導入されました。 | diff --git a/docs/01-app/04-api-reference/04-functions/use-params.mdx b/docs/01-app/05-api-reference/04-functions/use-params.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/use-params.mdx rename to docs/01-app/05-api-reference/04-functions/use-params.mdx diff --git a/docs/01-app/04-api-reference/04-functions/use-pathname.mdx b/docs/01-app/05-api-reference/04-functions/use-pathname.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/use-pathname.mdx rename to docs/01-app/05-api-reference/04-functions/use-pathname.mdx diff --git a/docs/01-app/04-api-reference/04-functions/use-report-web-vitals.mdx b/docs/01-app/05-api-reference/04-functions/use-report-web-vitals.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/use-report-web-vitals.mdx rename to docs/01-app/05-api-reference/04-functions/use-report-web-vitals.mdx diff --git a/docs/01-app/04-api-reference/04-functions/use-router.mdx b/docs/01-app/05-api-reference/04-functions/use-router.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/use-router.mdx rename to docs/01-app/05-api-reference/04-functions/use-router.mdx diff --git a/docs/01-app/04-api-reference/04-functions/use-search-params.mdx b/docs/01-app/05-api-reference/04-functions/use-search-params.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/use-search-params.mdx rename to docs/01-app/05-api-reference/04-functions/use-search-params.mdx diff --git a/docs/01-app/04-api-reference/04-functions/use-selected-layout-segment.mdx b/docs/01-app/05-api-reference/04-functions/use-selected-layout-segment.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/use-selected-layout-segment.mdx rename to docs/01-app/05-api-reference/04-functions/use-selected-layout-segment.mdx diff --git a/docs/01-app/04-api-reference/04-functions/use-selected-layout-segments.mdx b/docs/01-app/05-api-reference/04-functions/use-selected-layout-segments.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/use-selected-layout-segments.mdx rename to docs/01-app/05-api-reference/04-functions/use-selected-layout-segments.mdx diff --git a/docs/01-app/04-api-reference/04-functions/userAgent.mdx b/docs/01-app/05-api-reference/04-functions/userAgent.mdx similarity index 100% rename from docs/01-app/04-api-reference/04-functions/userAgent.mdx rename to docs/01-app/05-api-reference/04-functions/userAgent.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/allowedDevOrigins.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/allowedDevOrigins.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/allowedDevOrigins.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/allowedDevOrigins.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/appDir.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/appDir.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/appDir.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/appDir.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/assetPrefix.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/assetPrefix.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/assetPrefix.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/assetPrefix.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/authInterrupts.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/authInterrupts.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/authInterrupts.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/authInterrupts.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/basePath.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/basePath.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/basePath.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/basePath.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/cacheLife.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/cacheLife.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/cacheLife.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/cacheLife.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/compress.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/compress.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/compress.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/compress.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/crossOrigin.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/crossOrigin.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/crossOrigin.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/crossOrigin.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/cssChunking.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/cssChunking.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/cssChunking.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/cssChunking.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/devIndicators.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/devIndicators.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/devIndicators.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/devIndicators.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/distDir.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/distDir.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/distDir.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/distDir.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/dynamicIO.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/dynamicIO.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/dynamicIO.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/dynamicIO.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/env.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/env.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/env.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/env.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/eslint.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/eslint.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/eslint.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/eslint.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/expireTime.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/expireTime.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/expireTime.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/expireTime.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/exportPathMap.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/exportPathMap.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/exportPathMap.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/exportPathMap.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/generateBuildId.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/generateBuildId.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/generateBuildId.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/generateBuildId.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/generateEtags.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/generateEtags.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/generateEtags.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/generateEtags.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/headers.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/headers.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/headers.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/headers.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/htmlLimitedBots.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/htmlLimitedBots.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/htmlLimitedBots.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/htmlLimitedBots.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/httpAgentOptions.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/httpAgentOptions.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/httpAgentOptions.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/httpAgentOptions.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/images.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/images.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/images.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/images.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/incrementalCacheHandlerPath.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/incrementalCacheHandlerPath.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/incrementalCacheHandlerPath.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/incrementalCacheHandlerPath.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/index.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/index.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/index.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/index.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/inlineCss.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/inlineCss.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/inlineCss.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/inlineCss.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/logging.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/logging.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/logging.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/logging.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/mdxRs.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/mdxRs.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/mdxRs.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/mdxRs.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/onDemandEntries.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/onDemandEntries.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/onDemandEntries.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/onDemandEntries.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/optimizePackageImports.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/optimizePackageImports.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/optimizePackageImports.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/optimizePackageImports.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/output.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/output.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/output.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/output.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/pageExtensions.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/pageExtensions.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/pageExtensions.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/pageExtensions.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/poweredByHeader.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/poweredByHeader.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/poweredByHeader.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/poweredByHeader.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/ppr.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/ppr.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/ppr.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/ppr.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/productionBrowserSourceMaps.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/productionBrowserSourceMaps.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/productionBrowserSourceMaps.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/productionBrowserSourceMaps.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/reactCompiler.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/reactCompiler.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/reactCompiler.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/reactCompiler.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/reactMaxHeadersLength.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/reactMaxHeadersLength.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/reactMaxHeadersLength.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/reactMaxHeadersLength.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/reactStrictMode.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/reactStrictMode.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/reactStrictMode.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/reactStrictMode.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/redirects.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/redirects.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/redirects.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/redirects.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/rewrites.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/rewrites.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/rewrites.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/rewrites.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/sassOptions.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/sassOptions.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/sassOptions.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/sassOptions.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/serverActions.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/serverActions.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/serverActions.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/serverActions.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/serverComponentsHmrCache.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/serverComponentsHmrCache.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/serverComponentsHmrCache.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/serverComponentsHmrCache.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/serverExternalPackages.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/serverExternalPackages.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/serverExternalPackages.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/serverExternalPackages.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/staleTimes.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/staleTimes.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/staleTimes.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/staleTimes.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/staticGeneration.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/staticGeneration.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/staticGeneration.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/staticGeneration.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/trailingSlash.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/trailingSlash.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/trailingSlash.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/trailingSlash.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/transpilePackages.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/transpilePackages.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/transpilePackages.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/transpilePackages.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/turbo.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/turbopack.mdx similarity index 52% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/turbo.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/turbopack.mdx index 9767bd22..914ba0b0 100644 --- a/docs/01-app/04-api-reference/05-config/01-next-config-js/turbo.mdx +++ b/docs/01-app/05-api-reference/05-config/01-next-config-js/turbopack.mdx @@ -1,12 +1,11 @@ --- -title: 'turbo' -description: 'Turbopack固有のオプションでNext.jsを設定する' -version: 'experimental' +title: 'turbopack' +description: 'Next.jsをTurbopack固有のオプションで設定する' --- {/* このドキュメントの内容はapp routerとpages routerの間で共有されています。Pages Routerに特有の内容を追加するには、`<PagesOnly>Content</PagesOnly>`コンポーネントを使用できます。共有される内容はコンポーネントでラップしないでください。 */} -`turbo`オプションを使用すると、さまざまなファイルを変換し、モジュールの解決方法を変更するために[Turbopack](/docs/app/api-reference/turbopack)をカスタマイズできます。 +`turbopack`オプションを使用すると、さまざまなファイルを変換し、モジュールの解決方法を変更するために[Turbopack](/docs/app/api-reference/turbopack)をカスタマイズできます。 <Tabs> <TabItem value="ts" label="TypeScript"> @@ -15,10 +14,8 @@ version: 'experimental' import type { NextConfig } from 'next' const nextConfig: NextConfig = { - experimental: { - turbo: { - // ... - }, + turbopack: { + // ... }, } @@ -31,10 +28,8 @@ export default nextConfig ```js title="next.config.js" switcher /** @type {import('next').NextConfig} */ const nextConfig = { - experimental: { - turbo: { - // ... - }, + turbopack: { + // ... }, } @@ -48,24 +43,22 @@ module.exports = nextConfig > > - Next.jsのTurbopackは、組み込み機能に対してローダーやローダー設定を必要としません。TurbopackはCSSと最新のJavaScriptのコンパイルをサポートしているため、`@babel/preset-env`を使用している場合、`css-loader`、`postcss-loader`、`babel-loader`は不要です。 -## リファレンス {#reference} +## 参照 {#reference} ### オプション {#options} -`turbo`設定で利用可能なオプションは次のとおりです: +`turbopack`設定で利用可能なオプションは以下の通りです: -| オプション | 説明 | -| ------------------- | -------------------------------------------------------------------------------- | -| `rules` | Turbopackを使用する際に適用されるサポートされているwebpackローダーのリストです。 | -| `resolveAlias` | エイリアス化されたインポートをモジュールにマッピングして、代わりにロードします。 | -| `resolveExtensions` | ファイルをインポートする際に解決する拡張子のリストです。 | -| `moduleIdStrategy` | モジュールIDを割り当てます。 | -| `treeShaking` | Turbopackの開発サーバーとビルドのためのtree shakingを有効にします。 | -| `memoryLimit` | turboのターゲットメモリ制限(バイト単位)です。 | +| オプション | 説明 | +| ------------------- | -------------------------------------------------------------------------------------------- | +| `root` | アプリケーションのrootディレクトリを設定します。絶対パスである必要があります。 | +| `rules` | Turbopackを使用する際に適用されるサポートされているwebpackローダーのリストです。 | +| `resolveAlias` | エイリアス化されたインポートをモジュールにマッピングして、それらを読み込む場所を変更します。 | +| `resolveExtensions` | ファイルをインポートする際に解決する拡張子のリストです。 | ### サポートされているローダー {#supported-loaders} -次のローダーは、Turbopackのwebpackローダー実装で動作することが確認されています: +以下のローダーは、Turbopackのwebpackローダー実装で動作することが確認されています: - [`babel-loader`](https://www.npmjs.com/package/babel-loader) - [`@svgr/webpack`](https://www.npmjs.com/package/@svgr/webpack) @@ -77,13 +70,36 @@ module.exports = nextConfig ## 例 {#examples} +### Rootディレクトリ {#root-directory} + +Turbopackはrootディレクトリを使用してモジュールを解決します。プロジェクトのroot外のファイルは解決されません。 + +Next.jsはプロジェクトのrootディレクトリを自動的に検出します。以下のいずれかのファイルを探すことで行います: + +- `pnpm-lock.yaml` +- `package-lock.json` +- `yarn.lock` +- `bun.lock` +- `bun.lockb` + +異なるプロジェクト構造を持っている場合、例えばワークスペースを使用していない場合は、`root`オプションを手動で設定できます: + +```js title="next.config.js" +const path = require('path') +module.exports = { + turbopack: { + root: path.join(__dirname, '..'), + }, +} +``` + ### webpackローダーの設定 {#configuring-webpack-loaders} -組み込みのサポートを超えるローダーが必要な場合、多くのwebpackローダーはすでにTurbopackと連携しています。現在、いくつかの制限があります: +組み込みのサポートを超えるローダーサポートが必要な場合、多くのwebpackローダーはすでにTurbopackで動作します。現在、いくつかの制限があります: - webpackローダーAPIのコアサブセットのみが実装されています。現在、一部の人気のあるローダーに対して十分なカバレッジがあり、将来的にAPIサポートを拡大する予定です。 - JavaScriptコードを返すローダーのみがサポートされています。スタイルシートや画像のようなファイルを変換するローダーは現在サポートされていません。 -- webpackローダーに渡されるオプションは、プレーンなJavaScriptプリミティブ、オブジェクト、および配列でなければなりません。たとえば、`require()`プラグインモジュールをオプション値として渡すことはできません。 +- webpackローダーに渡されるオプションは、純粋なJavaScriptプリミティブ、オブジェクト、および配列でなければなりません。例えば、`require()`プラグインモジュールをオプション値として渡すことはできません。 ローダーを設定するには、インストールしたローダーの名前と任意のオプションを`next.config.js`に追加し、ファイル拡張子をローダーのリストにマッピングします。 @@ -91,95 +107,61 @@ module.exports = nextConfig ```js title="next.config.js" module.exports = { - experimental: { - turbo: { - rules: { - '*.svg': { - loaders: ['@svgr/webpack'], - as: '*.js', - }, + turbopack: { + rules: { + '*.svg': { + loaders: ['@svgr/webpack'], + as: '*.js', }, }, }, } ``` -> **Good to know**: Next.jsバージョン13.4.4以前では、`turbo.rules`は`turbo.loaders`と呼ばれ、`.mdx`のようなファイル拡張子のみを受け入れていました。 +> **Good to know**: Next.jsバージョン13.4.4以前では、`turbo.rules`は`turbo.loaders`と呼ばれ、`*.mdx`の代わりに`.mdx`のようなファイル拡張子のみを受け入れていました。 ### エイリアスの解決 {#resolving-aliases} -Turbopackは、webpackの[`resolve.alias`](https://webpack.js.org/configuration/resolve/#resolvealias)設定に似たエイリアスを通じてモジュール解決を変更するように設定できます。 +Turbopackは、webpackの[`resolve.alias`](https://webpack.js.org/configuration/resolve/#resolvealias)設定に似た方法で、エイリアスを通じてモジュール解決を変更するように設定できます。 -エイリアスを解決するには、インポートされたパターンを`next.config.js`で新しい宛先にマッピングします: +エイリアスの解決を設定するには、インポートされたパターンを`next.config.js`で新しい宛先にマッピングします: ```js title="next.config.js" module.exports = { - experimental: { - turbo: { - resolveAlias: { - underscore: 'lodash', - mocha: { browser: 'mocha/browser-entry.js' }, - }, + turbopack: { + resolveAlias: { + underscore: 'lodash', + mocha: { browser: 'mocha/browser-entry.js' }, }, }, } ``` -これは、`underscore`パッケージのインポートを`lodash`パッケージにエイリアスします。つまり、`import underscore from 'underscore'`は`underscore`の代わりに`lodash`モジュールをロードします。 +これにより、`underscore`パッケージのインポートが`lodash`パッケージにエイリアスされます。つまり、`import underscore from 'underscore'`は`underscore`の代わりに`lodash`モジュールを読み込みます。 Turbopackは、Node.jsの[条件付きエクスポート](https://nodejs.org/docs/latest-v18.x/api/packages.html#conditional-exports)に似た条件付きエイリアスもサポートしています。現在、`browser`条件のみがサポートされています。上記の例では、Turbopackがブラウザ環境をターゲットにする場合、`mocha`モジュールのインポートは`mocha/browser-entry.js`にエイリアスされます。 ### カスタム拡張子の解決 {#resolving-custom-extensions} -Turbopackは、webpackの[`resolve.extensions`](https://webpack.js.org/configuration/resolve/#resolveextensions)設定に似たカスタム拡張子でモジュールを解決するように設定できます。 +Turbopackは、webpackの[`resolve.extensions`](https://webpack.js.org/configuration/resolve/#resolveextensions)設定に似た方法で、カスタム拡張子を持つモジュールを解決するように設定できます。 解決する拡張子を設定するには、`next.config.js`の`resolveExtensions`フィールドを使用します: ```js title="next.config.js" module.exports = { - experimental: { - turbo: { - resolveExtensions: [ - '.mdx', - '.tsx', - '.ts', - '.jsx', - '.js', - '.mjs', - '.json', - ], - }, + turbopack: { + resolveExtensions: ['.mdx', '.tsx', '.ts', '.jsx', '.js', '.mjs', '.json'], }, } ``` これにより、元の解決拡張子が提供されたリストで上書きされます。デフォルトの拡張子を含めることを忘れないでください。 -webpackからTurbopackへのアプリの移行方法についての詳細とガイダンスは、[Turbopackのwebpack互換性に関するドキュメント](https://turbo.build/pack/docs/migrating-from-webpack)を参照してください。 - -### モジュールIDの割り当て {#assigning-module-ids} - -Turbopackは現在、モジュールIDを割り当てるための2つの戦略をサポートしています: - -- `'named'`は、モジュールのパスと機能に基づいて読みやすいモジュールIDを割り当てます。 -- `'deterministic'`は、小さなハッシュ化された数値のモジュールIDを割り当て、ビルド間でほぼ一貫しているため、長期的なキャッシュに役立ちます。 - -設定されていない場合、Turbopackは開発ビルドには`'named'`を、プロダクションビルドには`'deterministic'`を使用します。 - -モジュールID戦略を設定するには、`next.config.js`の`moduleIdStrategy`フィールドを使用します: - -```js title="next.config.js" -module.exports = { - experimental: { - turbo: { - moduleIdStrategy: 'deterministic', - }, - }, -} -``` +webpackからTurbopackへのアプリの移行方法についての詳細情報とガイダンスについては、[Turbopackのwebpack互換性に関するドキュメント](https://turbo.build/pack/docs/migrating-from-webpack)を参照してください。 ## バージョン履歴 {#version-history} -| バージョン | 変更内容 | -| ---------- | -------------------------------------- | -| `13.0.0` | `experimental.turbo`が導入されました。 | +| バージョン | 変更内容 | +| ---------- | --------------------------------------------------- | +| `15.3.0` | `experimental.turbo`が`turbopack`に変更されました。 | +| `13.0.0` | `experimental.turbo`が導入されました。 | diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/typedRoutes.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/typedRoutes.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/typedRoutes.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/typedRoutes.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/typescript.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/typescript.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/typescript.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/typescript.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/urlImports.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/urlImports.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/urlImports.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/urlImports.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/useCache.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/useCache.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/useCache.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/useCache.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/useLightningcss.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/useLightningcss.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/useLightningcss.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/useLightningcss.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/viewTransition.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/viewTransition.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/viewTransition.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/viewTransition.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/webVitalsAttribution.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/webVitalsAttribution.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/webVitalsAttribution.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/webVitalsAttribution.mdx diff --git a/docs/01-app/04-api-reference/05-config/01-next-config-js/webpack.mdx b/docs/01-app/05-api-reference/05-config/01-next-config-js/webpack.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/01-next-config-js/webpack.mdx rename to docs/01-app/05-api-reference/05-config/01-next-config-js/webpack.mdx diff --git a/docs/01-app/04-api-reference/05-config/02-typescript.mdx b/docs/01-app/05-api-reference/05-config/02-typescript.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/02-typescript.mdx rename to docs/01-app/05-api-reference/05-config/02-typescript.mdx diff --git a/docs/01-app/04-api-reference/05-config/03-eslint.mdx b/docs/01-app/05-api-reference/05-config/03-eslint.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/03-eslint.mdx rename to docs/01-app/05-api-reference/05-config/03-eslint.mdx diff --git a/docs/01-app/04-api-reference/05-config/index.mdx b/docs/01-app/05-api-reference/05-config/index.mdx similarity index 100% rename from docs/01-app/04-api-reference/05-config/index.mdx rename to docs/01-app/05-api-reference/05-config/index.mdx diff --git a/docs/01-app/04-api-reference/06-cli/create-next-app.mdx b/docs/01-app/05-api-reference/06-cli/create-next-app.mdx similarity index 100% rename from docs/01-app/04-api-reference/06-cli/create-next-app.mdx rename to docs/01-app/05-api-reference/06-cli/create-next-app.mdx diff --git a/docs/01-app/04-api-reference/06-cli/index.mdx b/docs/01-app/05-api-reference/06-cli/index.mdx similarity index 100% rename from docs/01-app/04-api-reference/06-cli/index.mdx rename to docs/01-app/05-api-reference/06-cli/index.mdx diff --git a/docs/01-app/04-api-reference/06-cli/next.mdx b/docs/01-app/05-api-reference/06-cli/next.mdx similarity index 100% rename from docs/01-app/04-api-reference/06-cli/next.mdx rename to docs/01-app/05-api-reference/06-cli/next.mdx diff --git a/docs/01-app/04-api-reference/07-edge.mdx b/docs/01-app/05-api-reference/07-edge.mdx similarity index 100% rename from docs/01-app/04-api-reference/07-edge.mdx rename to docs/01-app/05-api-reference/07-edge.mdx diff --git a/docs/01-app/05-api-reference/08-turbopack.mdx b/docs/01-app/05-api-reference/08-turbopack.mdx new file mode 100644 index 00000000..f765d8f2 --- /dev/null +++ b/docs/01-app/05-api-reference/08-turbopack.mdx @@ -0,0 +1,173 @@ +--- +title: 'Turbopack' +description: 'Turbopackは、JavaScriptとTypeScriptに最適化されたインクリメンタルバンドラーで、Rustで書かれ、Next.jsに組み込まれています。' +--- + +{/* このドキュメントの内容は、app routerとpages routerの両方で共有されています。Pages Routerに特化した内容を追加するには、`<PagesOnly>Content</PagesOnly>`コンポーネントを使用できます。共有される内容はコンポーネントでラップしないでください。 */} + +Turbopackは、JavaScriptとTypeScriptに最適化された**インクリメンタルバンドラー**で、Rustで書かれ、**Next.js**に組み込まれています。Turbopackを使用することで、Pages RouterとApp Routerの両方で**非常に高速な**ローカル開発体験を得ることができます。 + +## なぜTurbopackなのか? {#why-turbopack} + +私たちはNext.jsのパフォーマンスを向上させるためにTurbopackを開発しました。以下の点を含みます: + +- **統一されたグラフ:** Next.jsは複数の出力環境(例:クライアントとサーバー)をサポートしています。複数のコンパイラを管理し、バンドルをつなぎ合わせるのは面倒です。Turbopackはすべての環境に対して**単一の統一されたグラフ**を使用します。 +- **バンドリング vs ネイティブESM:** 一部のツールは開発時にバンドリングをスキップし、ブラウザのネイティブESMに依存します。これは小規模なアプリには適していますが、大規模なアプリでは過剰なネットワークリクエストのために遅くなることがあります。Turbopackは開発時に**バンドル**しますが、大規模なアプリを高速に保つために最適化されています。 +- **インクリメンタル計算:** Turbopackは作業をコア間で並列化し、結果を関数レベルまで**キャッシュ**します。一度作業が完了すると、Turbopackはそれを繰り返しません。 +- **遅延バンドリング:** Turbopackは開発サーバーによって実際に要求されたものだけをバンドルします。この遅延アプローチにより、初期のコンパイル時間とメモリ使用量を削減できます。 + +## はじめに {#getting-started} + +Next.jsプロジェクトでTurbopackを有効にするには、`package.json`ファイルの`dev`、`build`、`start`スクリプトに`--turbopack`フラグを追加します: + +```json title="package.json" highlight={3} +{ + "scripts": { + "dev": "next dev --turbopack", + "build": "next build --turbopack", + "start": "next start --turbopack" + } +} +``` + +現在、`dev`用のTurbopackは安定していますが、`build`はアルファ版です。Turbopackが安定に近づくにつれて、プロダクションサポートに向けて積極的に取り組んでいます。 + +## サポートされている機能 {#supported-features} + +Next.jsのTurbopackは、一般的なユースケースに対して**ゼロコンフィグレーション**です。以下は、標準でサポートされている機能の概要と、必要に応じてTurbopackをさらに設定する方法のいくつかの参考情報です。 + +### 言語機能 {#language-features} + +| 機能 | ステータス | 備考 | +| --------------------------- | ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **JavaScript & TypeScript** | **サポート** | 内部でSWCを使用しています。型チェックはTurbopackでは行われません(`tsc --watch`を実行するか、IDEに型チェックを依存してください)。 | +| **ECMAScript (ESNext)** | **サポート** | Turbopackは最新のECMAScript機能をサポートしており、SWCのカバレッジに一致しています。 | +| **CommonJS** | **サポート** | `require()`構文は標準で処理されます。 | +| **ESM** | **サポート** | 静的および動的な`import`が完全にサポートされています。 | +| **Babel** | 部分的にサポート外 | TurbopackにはデフォルトでBabelは含まれていません。ただし、[Turbopackの設定を通じて`babel-loader`を設定することができます](/docs/app/api-reference/config/next-config-js/turbopack#configuring-webpack-loaders)。 | + +### フレームワークとReactの機能 {#framework-and-react-features} + +| 機能 | ステータス | 備考 | +| --------------------------------- | ------------ | ------------------------------------------------------------------------------------------------------ | +| **JSX / TSX** | **サポート** | SWCがJSX/TSXのコンパイルを処理します。 | +| **Fast Refresh** | **サポート** | 設定は不要です。 | +| **React Server Components (RSC)** | **サポート** | Next.js App Router用です。Turbopackは正しいサーバー/クライアントのバンドリングを保証します。 | +| **root レイアウトの作成** | サポート外 | App Routerでのroot レイアウトの自動作成はサポートされていません。Turbopackは手動での作成を指示します。 | + +### CSSとスタイリング {#css-and-styling} + +| 機能 | ステータス | 備考 | +| ------------------- | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **グローバルCSS** | **サポート** | `.css`ファイルをアプリケーションに直接インポートします。 | +| **CSSモジュール** | **サポート** | `.module.css`ファイルはネイティブに動作します(Lightning CSS)。 | +| **CSSネスティング** | **サポート** | Lightning CSSは[最新のCSSネスティング](https://lightningcss.dev/)をサポートしています。 | +| **@import構文** | **サポート** | 複数のCSSファイルを組み合わせます。 | +| **PostCSS** | **サポート** | Node.jsワーカープールで`postcss.config.js`を自動的に処理します。Tailwind、Autoprefixerなどに便利です。 | +| **Sass / SCSS** | **サポート** (Next.js) | Next.jsでは、Sassは標準でサポートされています。将来的には、Turbopackのスタンドアロン使用にはローダー設定が必要になる可能性があります。 | +| **Less** | プラグインを通じて計画中 | デフォルトではまだサポートされていません。カスタムローダーが安定したら、ローダー設定が必要になる可能性があります。 | +| **Lightning CSS** | **使用中** | CSS変換を処理します。いくつかの低使用率のCSSモジュール機能(スタンドアロンの擬似クラスとしての`:local/:global`など)はまだサポートされていません。[詳細は以下を参照してください。](#unsupported-and-unplanned-features) | + +### アセット {#assets} + +| 機能 | ステータス | 備考 | +| --------------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------- | +| **静的アセット** (画像、フォント) | **サポート** | `import img from './img.png'`のインポートは標準で動作します。Next.jsでは、`<Image />`コンポーネント用のオブジェクトを返します。 | +| **JSONインポート** | **サポート** | `.json`からの名前付きまたはデフォルトのインポートがサポートされています。 | + +### モジュール解決 {#module-resolution} + +| 機能 | ステータス | 備考 | +| ------------------ | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **パスエイリアス** | **サポート** | `tsconfig.json`の`paths`と`baseUrl`を読み取り、Next.jsの動作に一致します。 | +| **手動エイリアス** | **サポート** | [`next.config.js`で`resolveAlias`を設定する](/docs/app/api-reference/config/next-config-js/turbopack#resolving-aliases)(`webpack.resolve.alias`に類似)。 | +| **カスタム拡張子** | **サポート** | [`next.config.js`で`resolveExtensions`を設定する](/docs/app/api-reference/config/next-config-js/turbopack#resolving-custom-extensions)。 | +| **AMD** | 部分的にサポート | 基本的な変換は動作しますが、高度なAMDの使用は制限されています。 | + +### パフォーマンスとFast Refresh {#performance-and-fast-refresh} + +| 機能 | ステータス | 備考 | +| -------------------------------- | ------------ | --------------------------------------------------------------------------------------------------- | +| **Fast Refresh** | **サポート** | JavaScript、TypeScript、CSSをフルリフレッシュなしで更新します。 | +| **インクリメンタルバンドリング** | **サポート** | Turbopackは開発サーバーによって要求されたものだけを遅延的にビルドし、大規模なアプリを高速化します。 | + +## サポートされていない機能と計画されていない機能 {#unsupported-and-unplanned-features} + +一部の機能はまだ実装されていないか、計画されていません: + +- **レガシーCSSモジュール機能** + - スタンドアロンの`:local`および`:global`擬似クラス(関数バリアントの`:global(...)`のみがサポートされています)。 + - `@value`ルール(CSS変数によって置き換えられました)。 + - `:import`および`:export` ICSSルール。 +- **`next.config.js`での`webpack()`設定** + Turbopackはwebpackを置き換えるため、`webpack()`設定は認識されません。代わりに[`experimental.turbo`設定](/docs/app/api-reference/config/next-config-js/turbopack)を使用してください。 +- **AMP** + Next.jsでのTurbopackサポートは計画されていません。 +- **Yarn PnP** + Next.jsでのTurbopackサポートは計画されていません。 +- **`experimental.urlImports`** + Turbopackでは計画されていません。 +- **`experimental.esmExternals`** + 計画されていません。TurbopackはNext.jsのレガシー`esmExternals`設定をサポートしていません。 +- **一部のNext.js実験的フラグ** + - `experimental.typedRoutes` + - `experimental.nextScriptWorkers` + - `experimental.sri.algorithm` + - `experimental.fallbackNodePolyfills` + これらは将来的に実装する予定です。 + +各機能フラグとそのステータスの詳細な内訳については、[Turbopack APIリファレンス](/docs/app/api-reference/config/next-config-js/turbopack)を参照してください。 + +## 設定 {#configuration} + +Turbopackは、`next.config.js`(または`next.config.ts`)の`turbopack`キーの下で設定できます。設定オプションには以下が含まれます: + +- **`rules`** + ファイル変換のための追加の[webpackローダー](/docs/app/api-reference/config/next-config-js/turbopack#configuring-webpack-loaders)を定義します。 +- **`resolveAlias`** + 手動エイリアスを作成します(webpackの`resolve.alias`に類似)。 +- **`resolveExtensions`** + モジュール解決のためのファイル拡張子を変更または拡張します。 +- **`moduleIds`** + モジュールIDの生成方法を設定します(`'named'` vs `'deterministic'`)。 +- **`treeShaking`** + 開発および将来のプロダクションビルドでのツリーシェイキングを有効または無効にします。 +- **`memoryLimit`** + Turbopackのメモリ制限(バイト単位)を設定します。 + +```js title="next.config.js" +module.exports = { + turbopack: { + // 例:エイリアスとカスタムファイル拡張子の追加 + resolveAlias: { + underscore: 'lodash', + }, + resolveExtensions: ['.mdx', '.tsx', '.ts', '.jsx', '.js', '.json'], + }, +} +``` + +より詳細な設定例については、[Turbopack設定ドキュメント](/docs/app/api-reference/config/next-config-js/turbopack)を参照してください。 + +## パフォーマンスデバッグのためのトレースファイルの生成 {#generating-trace-files-for-performance-debugging} + +パフォーマンスやメモリの問題が発生し、Next.jsチームがそれを診断するのを手助けしたい場合は、開発コマンドに`NEXT_TURBOPACK_TRACING=1`を追加してトレースファイルを生成できます: + +```bash +NEXT_TURBOPACK_TRACING=1 next dev --turbopack +``` + +これにより、`.next/trace-turbopack`ファイルが生成されます。そのファイルを[Next.jsリポジトリ](https://github.com/vercel/next.js)でGitHubの問題を作成する際に含めてください。調査の手助けとなります。 + +## まとめ {#summary} + +Turbopackは、特に大規模なアプリケーションに対して、ローカル開発とビルドを高速化するために設計された**Rustベース**の**インクリメンタル**バンドラーです。Next.jsに統合されており、ゼロコンフィグのCSS、React、TypeScriptサポートを提供します。 + +Turbopackの改善とプロダクションビルドサポートの追加を続けていく中で、さらなる更新をお待ちください。その間に、`next dev --turbopack`を試してみて、フィードバックをお寄せください。 + +## バージョン履歴 {#version-changes} + +| バージョン | 変更内容 | +| ---------- | ------------------------ | +| `v15.3.0` | `build`の実験的サポート | +| `v15.0.0` | `dev`用のTurbopackが安定 | diff --git a/docs/01-app/04-api-reference/index.mdx b/docs/01-app/05-api-reference/index.mdx similarity index 100% rename from docs/01-app/04-api-reference/index.mdx rename to docs/01-app/05-api-reference/index.mdx diff --git a/docs/index.mdx b/docs/index.mdx index 13308bc1..1256f7fa 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -1,75 +1,62 @@ --- title: 'イントロダクション' description: 'Next.js ドキュメントへようこそ。' +related: + title: '次のステップ' + description: 'インストールガイドに従ってNext.jsを始めましょう。' + links: + - app/getting-started/installation --- Next.js ドキュメントへようこそ! -{/* NOTE: このinfoは手動で追加しています。自動翻訳等で更新され消えてしまった場合、必要に応じて再度追加しなおしてください */} -:::info[はじめに] -本サイトは [Next.js](https://nextjs.org) 公式ドキュメントの日本語翻訳サイトです。 -Next.js の公式 X アカウントにも[ポスト](https://twitter.com/nextjs/status/1746921179879735677)頂きました。 +## Next.jsとは? {#what-is-next-js} -現在、本サイトでは <NextJsReleaseVersionLink /> のアップデートに追従し、その内容を翻訳しています。 +Next.jsは、フルスタックWebアプリケーションを構築するためのReactフレームワークです。ユーザーインターフェースを構築するためにReactコンポーネントを使用し、Next.jsを追加機能や最適化のために利用します。 -<NextJsGitHubHashLink label="翻訳している公式ドキュメントの commit hash:" /> -::: +Next.jsは、内部でバンドリングやコンパイルなど、Reactに必要なツールを抽象化し、自動的に設定します。これにより、設定に時間を費やすことなく、アプリケーションの構築に集中できます。 -## Next.js とは?{#what-is-next-js} - -Next.js は、フルスタック Web アプリケーションを構築するための React フレームワークです。ユーザーインターフェースを構築するために React コンポーネントを使用し、Next.js を使用して追加の機能や最適化を行います。 - -Next.js は、内部でバンドルやコンパイルなどの React に必要なツールを抽象化し、自動的に設定します。これにより、設定に時間を費やす代わりに、アプリケーションの構築に集中できます。 - -個人開発者でもチームの一員でも、Next.js はインタラクティブでダイナミック、そして高速な React アプリケーションの構築を支援します。 +個人の開発者であれ、大規模なチームの一員であれ、Next.jsはインタラクティブで動的、かつ高速なReactアプリケーションの構築をサポートします。 ## 主な機能 {#main-features} -Next.js の主な機能のいくつかは次のとおりです: - -| 機能 | 説明 | -| --------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [ルーティング](/docs/app/building-your-application/routing) | layout、入れ子になったルーティング、ロード状態、エラーハンドリングなどをサポートする Server Components 上に構築されたファイルシステムベースのルーターです。 | -| [レンダリング](/docs/app/building-your-application/rendering) | クライアントサイドとサーバーサイドのレンダリングを Client と Server Components で行います。静的および動的レンダリングによってサーバー上でさらに最適化されています。Edge と Node.js ランタイムでストリーミングされます。 | -| [データ取得](/docs/app/building-your-application/data-fetching) | Server Components で async/await によるデータ取得の簡素化、リクエストメモ化、データキャッシュ、再検証のための拡張された `fetch` API を提供します。 | -| [スタイリング](/docs/app/building-your-application/styling) | CSS Modules、Tailwind CSS、CSS-in-JS など、好みのスタイリング方法をサポートします | -| [最適化](/docs/app/building-your-application/optimizing) | 画像、フォント、スクリプトの最適化を通じて、アプリケーションのコア Web バイタルとユーザーエクスペリエンスを向上させます。 | -| [TypeScript](/docs/app/api-reference/config/typescript) | TypeScript のサポートの改善、より良い型チェックとより効率的なコンパイル、カスタム TypeScript プラグインと型チェッカーを備えています。 | - -## このドキュメントの使い方 {#how-to-use-these-docs} - -画面の左側には、ドキュメントのナビゲーションバーがあります。ドキュメントのページは順序よく整理されており、基本から高度な内容へと進むことができますので、アプリケーションを構築する際にはステップごとに進めることができます。しかし、任意の順序で読むことも、特定のユースケースに当てはまるページにスキップすることも可能です。 +Next.jsの主な機能には以下のものがあります: -画面の右側には、ページ内のセクション間を簡単に移動できる目次があります。ページをすばやく見つける必要がある場合は、画面上部の検索バーまたは検索ショートカット(`Ctrl+K` または `Cmd+K`)を使用できます。 +| 機能 | 説明 | +| ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| [ルーティング](/docs/app/building-your-application/routing) | レイアウト、ネストされたルーティング、ローディング状態、エラーハンドリングなどをサポートするServer Components上に構築されたファイルシステムベースのルーター。 | +| [レンダリング](/docs/app/building-your-application/rendering) | Client ComponentsとServer Componentsを使用したクライアントサイドおよびサーバーサイドレンダリング。Next.jsによるサーバー上での静的および動的レンダリングでさらに最適化。EdgeとNode.jsランタイムでのストリーミング。 | +| [データフェッチング](/docs/app/building-your-application/data-fetching) | Server Componentsでのasync/awaitを使用した簡素化されたデータフェッチング、およびリクエストメモ化、データキャッシュ、再検証のための拡張された`fetch` API。 | +| [スタイリング](/docs/app/building-your-application/styling) | CSS Modules、Tailwind CSS、CSS-in-JSを含む、お好みのスタイリング方法をサポート | +| [最適化](/docs/app/building-your-application/optimizing) | アプリケーションのCore Web Vitalsとユーザーエクスペリエンスを向上させるための画像、フォント、スクリプトの最適化。 | +| [TypeScript](/docs/app/api-reference/config/typescript) | 型チェックの改善とより効率的なコンパイルを備えたTypeScriptのサポートの向上、カスタムTypeScriptプラグインと型チェッカーも提供。 | -始めるには、[インストレーション](/docs/app/getting-started/installation)ガイドをチェックしてください。 +## ドキュメントの使い方 {#how-to-use-these-docs} -## App Router と Pages Router {#app-router-vs-pages-router} +画面の左側にはドキュメントのナビバーがあります。ドキュメントのページは基本から応用まで順序立てて整理されているので、アプリケーションを構築する際にステップバイステップで進めることができます。ただし、どの順序でも読めるようになっており、あなたのユースケースに適したページにスキップすることも可能です。 -{/* NOTE: このwarningは手動で追加しています。自動翻訳等で更新され消えてしまった場合、必要に応じて再度追加しなおしてください */} -:::warning[ご注意ください] +画面の右側には、ページ内のセクション間を簡単に移動できる目次があります。ページをすばやく見つける必要がある場合は、上部の検索バーや検索ショートカット(`Ctrl+K`または`Cmd+K`)を使用してください。 -現在、本サイトでは App Router に関するドキュメントのみ翻訳して公開しております。 -そのため、以下に記載のドロップダウンメニューは本サイトにはございません。 +始めるには、[インストール](/docs/app/getting-started/installation)ガイドをチェックしてください。 -::: +## App RouterとPages Router {#app-router-vs-pages-router} -Next.js には、App Router と Pages Router の2種類のルーターがあります。App Router は、Server Components やストリーミングなどの React の最新機能を使用できる新しいルーターです。Pages Router はオリジナルの Next.js ルーターで、サーバーレンダリングされた React アプリケーションを構築でき、古い Next.js アプリケーションに対するサポートを引き続き提供しています。 +Next.jsには、App RouterとPages Routerの2つの異なるルーターがあります。App Routerは、Server Componentsやストリーミングなど、Reactの最新機能を使用できる新しいルーターです。Pages Routerは、サーバーレンダリングされたReactアプリケーションを構築するための元々のNext.jsルーターで、古いNext.jsアプリケーションのために引き続きサポートされています。 -サイドバーの上部には、**App Router** と **Pages Router** の機能を切り替えるドロップダウンメニューが表示されています。各ディレクトリ固有の機能があるため、どのタブが選択されているかを把握することが重要です。 +サイドバーの上部には、**App Router**と**Pages Router**の機能を切り替えることができるドロップダウンメニューがあります。各ディレクトリに固有の機能があるため、どのタブが選択されているかを把握することが重要です。 -ページ上部のパンくずリストは、App Router ドキュメントか Pages Router ドキュメントを表示しているかどうかを示します。 +ページの上部にあるパンくずリストも、App Routerのドキュメントを見ているのか、Pages Routerのドキュメントを見ているのかを示します。 ## 前提知識 {#pre-requisite-knowledge} -私たちのドキュメントは初心者向けに設計されていますが、Next.js 機能に焦点を当て続けるために基準を設定する必要があります。新しい概念を導入する際には、関連するドキュメントへのリンクを必ず提供します。 +私たちのドキュメントは初心者に優しい設計になっていますが、Next.jsの機能に集中できるように基礎を確立する必要があります。新しい概念を紹介する際には、関連するドキュメントへのリンクを提供するようにします。 -私たちのドキュメントを最大限に活用するには、HTML、CSS、および React の基本的な理解を持っていることをお勧めします。React スキルを復習する必要がある場合は、基本を紹介する [React 基礎コース](https://nextjs.org/learn/react-foundations)を確認してください。その後、ダッシュボードアプリケーションを構築して Next.js をさらに詳しく学びます[build a dashboard application](https://nextjs.org/learn/dashboard-app)。 +ドキュメントを最大限に活用するには、HTML、CSS、Reactの基本的な理解が推奨されます。Reactのスキルを磨く必要がある場合は、[React Foundations Course](https://nextjs.org/learn/react-foundations)をチェックして、基礎を学んでください。その後、[ダッシュボードアプリケーションを構築する](https://nextjs.org/learn/dashboard-app)ことでNext.jsについてさらに学びましょう。 ## アクセシビリティ {#accessibility} -ドキュメントを読みながらスクリーンリーダーを使用する場合、最適なアクセシビリティを得るために Firefox と NVDA、または Safari と VoiceOver を使用することをお勧めします。 +ドキュメントを読む際にスクリーンリーダーを使用する場合、最適なアクセシビリティのためにFirefoxとNVDA、またはSafariとVoiceOverを使用することをお勧めします。 -## コミュニティに参加しよう {#join-our-community} +## コミュニティに参加する {#join-our-community} -Next.js に関連する質問があれば、[GitHub Discussions](https://github.com/vercel/next.js/discussions)、[Discord](https://discord.com/invite/bUG2bvbtHy)、[X (Twitter)](https://x.com/nextjs)、[Reddit](https://www.reddit.com/r/nextjs) で、私たちのコミュニティにいつでも聞いてください。 +Next.jsに関連する質問がある場合は、[GitHub Discussions](https://github.com/vercel/next.js/discussions)、[Discord](https://discord.com/invite/bUG2bvbtHy)、[X (Twitter)](https://x.com/nextjs)、[Reddit](https://www.reddit.com/r/nextjs)でコミュニティにいつでも質問できます。 diff --git a/kj-diff.json b/kj-diff.json index 09f29f50..6cf79152 100644 --- a/kj-diff.json +++ b/kj-diff.json @@ -1,11 +1,164 @@ { "submodule": "next.js", "hash": { - "previous": "c08d75d102da5b5a894330c7159120e8b0251768", - "current": "f6557ffc0f85558c2db3a6c3cdc75f2ac3b3bb92" + "previous": "f6557ffc0f85558c2db3a6c3cdc75f2ac3b3bb92", + "current": "7e295075c7aa530d2cf357005769c452dabc422f" }, "diffs": [ - "M\tdocs/01-app/04-api-reference/02-components/link.mdx", - "A\tdocs/01-app/04-api-reference/04-functions/use-link-status.mdx" + "M\tdocs/01-app/01-getting-started/01-installation.mdx", + "M\tdocs/01-app/01-getting-started/02-project-structure.mdx", + "M\tdocs/01-app/01-getting-started/03-layouts-and-pages.mdx", + "M\tdocs/01-app/01-getting-started/04-images-and-fonts.mdx", + "M\tdocs/01-app/01-getting-started/05-css.mdx", + "M\tdocs/01-app/01-getting-started/06-fetching-data.mdx", + "M\tdocs/01-app/01-getting-started/07-updating-data.mdx", + "M\tdocs/01-app/01-getting-started/08-error-handling.mdx", + "M\tdocs/01-app/01-getting-started/10-metadata-and-og-images.mdx", + "M\tdocs/01-app/01-getting-started/12-upgrading.mdx", + "M\tdocs/01-app/03-building-your-application/01-routing/03-layouts-and-templates.mdx", + "M\tdocs/01-app/03-building-your-application/01-routing/08-route-groups.mdx", + "M\tdocs/01-app/03-building-your-application/06-optimizing/14-local-development.mdx", + "M\tdocs/01-app/03-building-your-application/07-configuring/05-mdx.mdx", + "M\tdocs/01-app/03-building-your-application/11-upgrading/06-from-create-react-app.mdx", + "D\tdocs/01-app/04-api-reference/01-directives/use-cache.mdx", + "D\tdocs/01-app/04-api-reference/04-functions/cacheLife.mdx", + "D\tdocs/01-app/04-api-reference/04-functions/use-link-status.mdx", + "D\tdocs/01-app/04-api-reference/05-config/01-next-config-js/turbo.mdx", + "D\tdocs/01-app/04-api-reference/08-turbopack.mdx", + "A\tdocs/01-app/04-deep-dive/index.mdx", + "R100\tdocs/01-app/04-api-reference/01-directives/index.mdx\tdocs/01-app/05-api-reference/01-directives/index.mdx", + "A\tdocs/01-app/05-api-reference/01-directives/use-cache.mdx", + "R100\tdocs/01-app/04-api-reference/01-directives/use-client.mdx\tdocs/01-app/05-api-reference/01-directives/use-client.mdx", + "R100\tdocs/01-app/04-api-reference/01-directives/use-server.mdx\tdocs/01-app/05-api-reference/01-directives/use-server.mdx", + "R100\tdocs/01-app/04-api-reference/02-components/font.mdx\tdocs/01-app/05-api-reference/02-components/font.mdx", + "R100\tdocs/01-app/04-api-reference/02-components/form.mdx\tdocs/01-app/05-api-reference/02-components/form.mdx", + "R100\tdocs/01-app/04-api-reference/02-components/image.mdx\tdocs/01-app/05-api-reference/02-components/image.mdx", + "R100\tdocs/01-app/04-api-reference/02-components/index.mdx\tdocs/01-app/05-api-reference/02-components/index.mdx", + "R100\tdocs/01-app/04-api-reference/02-components/link.mdx\tdocs/01-app/05-api-reference/02-components/link.mdx", + "R100\tdocs/01-app/04-api-reference/02-components/script.mdx\tdocs/01-app/05-api-reference/02-components/script.mdx", + "R100\tdocs/01-app/04-api-reference/03-file-conventions/01-metadata/app-icons.mdx\tdocs/01-app/05-api-reference/03-file-conventions/01-metadata/app-icons.mdx", + "R100\tdocs/01-app/04-api-reference/03-file-conventions/01-metadata/index.mdx\tdocs/01-app/05-api-reference/03-file-conventions/01-metadata/index.mdx", + "R100\tdocs/01-app/04-api-reference/03-file-conventions/01-metadata/manifest.mdx\tdocs/01-app/05-api-reference/03-file-conventions/01-metadata/manifest.mdx", + "R100\tdocs/01-app/04-api-reference/03-file-conventions/01-metadata/opengraph-image.mdx\tdocs/01-app/05-api-reference/03-file-conventions/01-metadata/opengraph-image.mdx", + "R100\tdocs/01-app/04-api-reference/03-file-conventions/01-metadata/robots.mdx\tdocs/01-app/05-api-reference/03-file-conventions/01-metadata/robots.mdx", + "R100\tdocs/01-app/04-api-reference/03-file-conventions/01-metadata/sitemap.mdx\tdocs/01-app/05-api-reference/03-file-conventions/01-metadata/sitemap.mdx", + "R100\tdocs/01-app/04-api-reference/03-file-conventions/default.mdx\tdocs/01-app/05-api-reference/03-file-conventions/default.mdx", + "R100\tdocs/01-app/04-api-reference/03-file-conventions/error.mdx\tdocs/01-app/05-api-reference/03-file-conventions/error.mdx", + "R100\tdocs/01-app/04-api-reference/03-file-conventions/forbidden.mdx\tdocs/01-app/05-api-reference/03-file-conventions/forbidden.mdx", + "R100\tdocs/01-app/04-api-reference/03-file-conventions/index.mdx\tdocs/01-app/05-api-reference/03-file-conventions/index.mdx", + "R100\tdocs/01-app/04-api-reference/03-file-conventions/instrumentation-client.mdx\tdocs/01-app/05-api-reference/03-file-conventions/instrumentation-client.mdx", + "R100\tdocs/01-app/04-api-reference/03-file-conventions/instrumentation.mdx\tdocs/01-app/05-api-reference/03-file-conventions/instrumentation.mdx", + "R100\tdocs/01-app/04-api-reference/03-file-conventions/layout.mdx\tdocs/01-app/05-api-reference/03-file-conventions/layout.mdx", + "R100\tdocs/01-app/04-api-reference/03-file-conventions/loading.mdx\tdocs/01-app/05-api-reference/03-file-conventions/loading.mdx", + "R100\tdocs/01-app/04-api-reference/03-file-conventions/mdx-components.mdx\tdocs/01-app/05-api-reference/03-file-conventions/mdx-components.mdx", + "R100\tdocs/01-app/04-api-reference/03-file-conventions/middleware.mdx\tdocs/01-app/05-api-reference/03-file-conventions/middleware.mdx", + "R100\tdocs/01-app/04-api-reference/03-file-conventions/not-found.mdx\tdocs/01-app/05-api-reference/03-file-conventions/not-found.mdx", + "R100\tdocs/01-app/04-api-reference/03-file-conventions/page.mdx\tdocs/01-app/05-api-reference/03-file-conventions/page.mdx", + "R100\tdocs/01-app/04-api-reference/03-file-conventions/route-segment-config.mdx\tdocs/01-app/05-api-reference/03-file-conventions/route-segment-config.mdx", + "R100\tdocs/01-app/04-api-reference/03-file-conventions/route.mdx\tdocs/01-app/05-api-reference/03-file-conventions/route.mdx", + "R100\tdocs/01-app/04-api-reference/03-file-conventions/template.mdx\tdocs/01-app/05-api-reference/03-file-conventions/template.mdx", + "R100\tdocs/01-app/04-api-reference/03-file-conventions/unauthorized.mdx\tdocs/01-app/05-api-reference/03-file-conventions/unauthorized.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/after.mdx\tdocs/01-app/05-api-reference/04-functions/after.mdx", + "A\tdocs/01-app/05-api-reference/04-functions/cacheLife.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/cacheTag.mdx\tdocs/01-app/05-api-reference/04-functions/cacheTag.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/connection.mdx\tdocs/01-app/05-api-reference/04-functions/connection.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/cookies.mdx\tdocs/01-app/05-api-reference/04-functions/cookies.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/draft-mode.mdx\tdocs/01-app/05-api-reference/04-functions/draft-mode.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/fetch.mdx\tdocs/01-app/05-api-reference/04-functions/fetch.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/forbidden.mdx\tdocs/01-app/05-api-reference/04-functions/forbidden.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/generate-image-metadata.mdx\tdocs/01-app/05-api-reference/04-functions/generate-image-metadata.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/generate-metadata.mdx\tdocs/01-app/05-api-reference/04-functions/generate-metadata.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/generate-sitemaps.mdx\tdocs/01-app/05-api-reference/04-functions/generate-sitemaps.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/generate-static-params.mdx\tdocs/01-app/05-api-reference/04-functions/generate-static-params.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/generate-viewport.mdx\tdocs/01-app/05-api-reference/04-functions/generate-viewport.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/headers.mdx\tdocs/01-app/05-api-reference/04-functions/headers.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/image-response.mdx\tdocs/01-app/05-api-reference/04-functions/image-response.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/index.mdx\tdocs/01-app/05-api-reference/04-functions/index.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/next-request.mdx\tdocs/01-app/05-api-reference/04-functions/next-request.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/next-response.mdx\tdocs/01-app/05-api-reference/04-functions/next-response.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/not-found.mdx\tdocs/01-app/05-api-reference/04-functions/not-found.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/permanentRedirect.mdx\tdocs/01-app/05-api-reference/04-functions/permanentRedirect.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/redirect.mdx\tdocs/01-app/05-api-reference/04-functions/redirect.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/revalidatePath.mdx\tdocs/01-app/05-api-reference/04-functions/revalidatePath.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/revalidateTag.mdx\tdocs/01-app/05-api-reference/04-functions/revalidateTag.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/unauthorized.mdx\tdocs/01-app/05-api-reference/04-functions/unauthorized.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/unstable_cache.mdx\tdocs/01-app/05-api-reference/04-functions/unstable_cache.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/unstable_noStore.mdx\tdocs/01-app/05-api-reference/04-functions/unstable_noStore.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/unstable_rethrow.mdx\tdocs/01-app/05-api-reference/04-functions/unstable_rethrow.mdx", + "A\tdocs/01-app/05-api-reference/04-functions/use-link-status.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/use-params.mdx\tdocs/01-app/05-api-reference/04-functions/use-params.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/use-pathname.mdx\tdocs/01-app/05-api-reference/04-functions/use-pathname.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/use-report-web-vitals.mdx\tdocs/01-app/05-api-reference/04-functions/use-report-web-vitals.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/use-router.mdx\tdocs/01-app/05-api-reference/04-functions/use-router.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/use-search-params.mdx\tdocs/01-app/05-api-reference/04-functions/use-search-params.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/use-selected-layout-segment.mdx\tdocs/01-app/05-api-reference/04-functions/use-selected-layout-segment.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/use-selected-layout-segments.mdx\tdocs/01-app/05-api-reference/04-functions/use-selected-layout-segments.mdx", + "R100\tdocs/01-app/04-api-reference/04-functions/userAgent.mdx\tdocs/01-app/05-api-reference/04-functions/userAgent.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/allowedDevOrigins.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/allowedDevOrigins.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/appDir.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/appDir.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/assetPrefix.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/assetPrefix.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/authInterrupts.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/authInterrupts.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/basePath.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/basePath.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/cacheLife.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/cacheLife.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/compress.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/compress.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/crossOrigin.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/crossOrigin.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/cssChunking.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/cssChunking.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/devIndicators.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/devIndicators.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/distDir.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/distDir.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/dynamicIO.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/dynamicIO.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/env.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/env.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/eslint.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/eslint.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/expireTime.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/expireTime.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/exportPathMap.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/exportPathMap.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/generateBuildId.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/generateBuildId.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/generateEtags.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/generateEtags.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/headers.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/headers.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/htmlLimitedBots.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/htmlLimitedBots.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/httpAgentOptions.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/httpAgentOptions.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/images.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/images.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/incrementalCacheHandlerPath.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/incrementalCacheHandlerPath.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/index.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/index.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/inlineCss.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/inlineCss.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/logging.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/logging.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/mdxRs.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/mdxRs.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/onDemandEntries.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/onDemandEntries.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/optimizePackageImports.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/optimizePackageImports.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/output.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/output.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/pageExtensions.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/pageExtensions.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/poweredByHeader.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/poweredByHeader.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/ppr.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/ppr.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/productionBrowserSourceMaps.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/productionBrowserSourceMaps.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/reactCompiler.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/reactCompiler.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/reactMaxHeadersLength.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/reactMaxHeadersLength.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/reactStrictMode.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/reactStrictMode.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/redirects.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/redirects.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/rewrites.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/rewrites.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/sassOptions.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/sassOptions.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/serverActions.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/serverActions.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/serverComponentsHmrCache.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/serverComponentsHmrCache.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/serverExternalPackages.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/serverExternalPackages.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/staleTimes.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/staleTimes.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/staticGeneration.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/staticGeneration.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/trailingSlash.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/trailingSlash.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/transpilePackages.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/transpilePackages.mdx", + "A\tdocs/01-app/05-api-reference/05-config/01-next-config-js/turbopack.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/typedRoutes.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/typedRoutes.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/typescript.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/typescript.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/urlImports.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/urlImports.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/useCache.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/useCache.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/useLightningcss.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/useLightningcss.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/viewTransition.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/viewTransition.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/webVitalsAttribution.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/webVitalsAttribution.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/01-next-config-js/webpack.mdx\tdocs/01-app/05-api-reference/05-config/01-next-config-js/webpack.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/02-typescript.mdx\tdocs/01-app/05-api-reference/05-config/02-typescript.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/03-eslint.mdx\tdocs/01-app/05-api-reference/05-config/03-eslint.mdx", + "R100\tdocs/01-app/04-api-reference/05-config/index.mdx\tdocs/01-app/05-api-reference/05-config/index.mdx", + "R100\tdocs/01-app/04-api-reference/06-cli/create-next-app.mdx\tdocs/01-app/05-api-reference/06-cli/create-next-app.mdx", + "R100\tdocs/01-app/04-api-reference/06-cli/index.mdx\tdocs/01-app/05-api-reference/06-cli/index.mdx", + "R100\tdocs/01-app/04-api-reference/06-cli/next.mdx\tdocs/01-app/05-api-reference/06-cli/next.mdx", + "R100\tdocs/01-app/04-api-reference/07-edge.mdx\tdocs/01-app/05-api-reference/07-edge.mdx", + "A\tdocs/01-app/05-api-reference/08-turbopack.mdx", + "R100\tdocs/01-app/04-api-reference/index.mdx\tdocs/01-app/05-api-reference/index.mdx", + "M\tdocs/index.mdx" ] } diff --git a/next.js b/next.js index f6557ffc..7e295075 160000 --- a/next.js +++ b/next.js @@ -1 +1 @@ -Subproject commit f6557ffc0f85558c2db3a6c3cdc75f2ac3b3bb92 +Subproject commit 7e295075c7aa530d2cf357005769c452dabc422f diff --git a/static/img/docs/dark/blog-nested-route.avif b/static/img/docs/dark/blog-nested-route.avif index 81f9f7d119610ce54bf8038ee86a2e97db462a71..b4802fc59e8a244c558ade45c23c3b4445600b3e 100644 GIT binary patch delta 8492 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 aPhF)H2psDY)T(`z^GneTLH4KS{*{1}v~KYL delta 12501 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 diff --git a/static/img/docs/dark/blog-post-nested-route.avif b/static/img/docs/dark/blog-post-nested-route.avif index 1365eabd5bf425e05dd7f4638d80a4138bb4b9d7..73b106698011161de9d18bd522dd1eb70b35f765 100644 GIT binary patch delta 11671 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 delta 18049 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 U{q9BtOP>aN7NWXBoRlWEqSKc>t^fc4 diff --git a/static/img/docs/dark/layout-special-file.avif b/static/img/docs/dark/layout-special-file.avif index 9dffa701488a9eba08049c288fe2a1d7c2f510be..847480aaea381617978818ae8b5fb2d808dd7e4d 100644 GIT binary patch delta 5403 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 FS%5@Cn3(_o delta 7811 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 V!M$xNz;!cYyIwSr%E6{oDuA0W7<>Q# diff --git a/static/img/docs/dark/nested-layouts.avif b/static/img/docs/dark/nested-layouts.avif index f4bc6af6fb6346946425954530cc1012df45078e..f06bdfb65958dedd40fb98bf84883047b1a51076 100644 GIT binary patch delta 13162 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 QB&EcQee~0F5#tV5@U&N1^Z)<= delta 19767 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 WG%9BkhX6{aH^#8x?fDzOiz~ILUZAc3 diff --git a/static/img/docs/dark/page-special-file.avif b/static/img/docs/dark/page-special-file.avif index eee515395452f173e1117e597692fe26da18a5bc..d646ee7366b88a7241931c95a46bd9e7c0cb992e 100644 GIT binary patch delta 4244 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 delta 6484 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 diff --git a/static/img/docs/dark/public-folder.avif b/static/img/docs/dark/public-folder.avif index 69c0362c05fa36d22de909ebac9bb7974485548e..39de94e6b9be5033985efce8f55b260ba299fe8b 100644 GIT binary patch delta 3427 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 FK@7SUgvbB@ delta 5007 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 ZdPagz8MBES%=enm(!t;V+O6<QQa}>ni(mi% diff --git a/static/img/docs/dark/route-group-loading.avif b/static/img/docs/dark/route-group-loading.avif index ef79af9969ad680367ab3bd92cdfb98df523109e..5d71be3827475a3127b8768cfca185635d5ec5f8 100644 GIT binary patch delta 6405 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 TV$0)E<AUP#XrFK8p&ufAGaGbk delta 7719 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 diff --git a/static/img/docs/dark/route-group-multiple-layouts.avif b/static/img/docs/dark/route-group-multiple-layouts.avif index 86921aa219d3205ea2653a7f6d3890536296c96e..7295b40ab1c2066951be7fd55120fdb5d41ed17f 100644 GIT binary patch delta 7841 zcmV;S9$w+3I=?@V9|44sAWj{q009610000005$*t000000p0)s000000014~k&8PC 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 delta 7152 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 diff --git a/static/img/docs/dark/route-group-multiple-root-layouts.avif b/static/img/docs/dark/route-group-multiple-root-layouts.avif index b2107af7a97bc3c2f8015a4e1206e135452d6b1a..9e532088a261fbf3e27e8ceed2b34b03523bf930 100644 GIT binary patch delta 6552 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 KA1_-P@b=(wG~6@* delta 5742 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 diff --git a/static/img/docs/dark/route-group-opt-in-layouts.avif b/static/img/docs/dark/route-group-opt-in-layouts.avif index adfc60f5efe7e6cf153de56de0a4b027762cfef8..0b48ed44f6e786edf9055cb5db70a9643bd91e09 100644 GIT binary patch delta 12136 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 delta 10775 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 VJ$he0gN_!kGKe_;o+>tn`+!$G?q&c0 diff --git a/static/img/docs/dark/route-group-organisation.avif b/static/img/docs/dark/route-group-organisation.avif index 9cdb9cc0be81de5d6b4d5da9e0e4e0a58ba60f73..fb8392dd5df230ce9fdc7746a68e988a38c5e7c3 100644 GIT binary patch delta 11869 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%0DHCN$I^a@l~` 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 X%VPbV_-e5yN%3&RpoohOo<vt5_u)2p delta 10344 zcmV-uD3{lSUz<~qcoQT50RR9100GPZ0RR910000d&#{Xa0e>g^ZDe6|5&#MZ8Y*%B zL&Bgk7esIX01yD$K&XJqAo@gy1d>jMiyoao5&#McIx2DhL&5?Y4InbUPegD4f)qed z%cF!+Z_3DNnl1$%4!S+mhxdY$?%5qx<QxGugIy$s^NgHsD4BWY=P2tfC*`V_#wHcH zFAni@Rd&}6+kYir+lV)&I$4@on+7MF!WsHol+~dcVV@aWD(RzYheR&_5z8u~vNA5M zwrHt5{^g@GN<%b=UYt?UC)fT+JicK-B=m8iUTRU~X}v@C+P}Qu2Z!|T_vu-y)onzR z3mLs^yGY}=-16S!_9H&gl75#^$=M#AQ#1SKDGX#b)qm$?TvZJ}bql|)d;}T;XGPaf zw(Paq?vdPo{nlLBmSxhN$!nb|(pO_e3_O~89W*mm&>s+oLen74Xugcew^l{vxP|gN zZptraHB_gg$CM?}%+3hSnF0>%PVaN07d5XSP(4n6j_a8be@s9>IwJ3sA56N6Or9R~ z7?yh+0DrQ0X@o-|q`!D5o{?zr#?(F#Wx#WaVe&pugkPsm9D>NRXNdwWw>vTyu_fa6 zCg)g4pG848zHsUs3o9OofMTQk3ffG&lQhj5_v7Jyyx=E<?!qKB-blOODd|^tlfF$t z`?o>mtvY7tYwBXbBVpqOcUvwiU!=dJIZhLE9)F4i`Hn-x5{noZsQ1v&0bdIyxu%C| z`W(IN+nEUg7`EbAp-6~*beoJx2OzH+hka1@N>76#1?268Ma;Bd0)e(^6&|$GIMKwK zj*E|?U512A6JWRa9|jB9P%hcHYg*W5AyZtC?AeK|&%|hjKF=qlX!d^)vi^E7B;d1r z0)OfE!L8niePW?siob9v*tbj8IazPbX5yM$g0X=6UF@dDajz=mu-L*oo~zzGx=(>{ zB;{ryEJSQ;&s9FBUC40{;Y=yRVtx?^OsxBz?uF-d6xA!h4%k%N8pxNO&sI`1a&VLi znWEu|)Cn>D83Stf4^Z(@rw>Jm*3SMH+J7l%k}ur?WHdDZ^UuOKtR*8~hZ=0}`?075 zIk(+Cmd!}XB#q6LE%&<{6>!BLXV5ij5tVU#I*;1a4rf{7!Nvr54w}*H0N*5;P4aFg zK6(xHI}KPB_1W&Afy6EXqSAalt;?!zPNrl3ZY_u(6}*{sJpJB-kLm-P1E^#YAAi!o z;<K=A<St1AN_8iF1Yz>>>j7G(4Z^XAWULu=U;<JDfRj)cZiTKEXz*AzNRXE`7UCU_ z5rJA*+OrwbpKcAF|FHV6I0peOpO03hvRECC!2H`IcIA<4Al-eT>MBJ1CPCDwUB!Ey z*X|+;OwPNDamvyT^*T4J`WKK2G=Do|gT1A3X1faU6au5!sYK`l!vDt3IWWm2oIu^b z{S%JDh2K#B?+9tbO{y;J7ResP&Wir&53#Z!v4ET9waRMK=Bx1!zgz`le5(^)_rA1j zm1`!d3p?C$Q<oJ`uGsjVP?EKt@>%%UJe4dv(Vzc&To33-im>hc)DM1T$A6yb<AM9x zJUaC=pX2&(0Dxvk{y}w%luul6uH%|(mGVYcHoU$7P13EXA%s9=lj>8omOco^R>kv% zWJbAg3kJIr@74Q*M$}u9ZiX5`2k%nW+KRknTDhYn#*IWfev{7~9a<ZX3%TGZ3_V(6 zye&|6L3X=|1CD7kxqRc`c7McD(sY3+{Q!KC8l%<sGr)D$3U4aWLp0ZBUgO+QdOVnl zII!>S>(*M&MZLkdh`H`%QERt@3Fz{(7{Hn*;JPRY@=@c>Uiba6PUb?)SNT#0R)%`S zi078a--X2~M|Hl|m@ZablO=G55Hy2L70exNaP%_>4x2Jd_1#6P!hbXVp_@C5F496r z63I1JzI40hm$ZDB;y|@9CIiQdxIUBIYy-h99m%r}ee;n(7mr)z8~@Q4+EBg?T+|G_ zcp{4e-LbFr!NrS_|Dh?DW;9GemZUK-sXm=pNMXQ0!EctO9&E%u5Btr<ng!{Z)*!cT zk+Bo(nIh4f52;hMcz+4-HID_P^&t7Q+T!a(1sv>7G>wxcDbV4i!%-ydL-JOR9&y=9 zCqFm9;9&=|j^#hjEJ{mrei-S2tlVSKV2qwds*9!hiuTa<efR`F7_wX3MB9YvArGAe z%#JN@===He<@F`F19W=QW0Mx5vD&KM`fu@t#SK!nfETR)Sbr{2)2J5X3s*I&%TW|a z0f4@~Gng&FLzE<~_#-VbU}oMG0FFD7F{<U2%h9htdfuC1N9nam8W+ONuKp1x?iN3M z^YcGK@r%y;Pvi+clDdL1lggr`U%G}KtrY)+cCY;2qYoEI{b`ICV0d<6q1{I~ff!4L z61;><zau+QXMZo6TNyt8)X(qjV^X4Qe0mFMDk$9v1o8j{3++vcWEKrp)zml_g|a4s z+XvQ}D5Ud!t?9g?9Y8=kw)%T>t1Bam_@+gUwxnc}uOTFIyo3<k`7~qZIFy@36fS8< z?49zT{Qq+mGQ(jCuBaRMGVMAN{!on&^2VDiW`vPbv47Cw@qwJps?IsU5Fz^!qOz+3 zWh3o)NmM%yz#@#!%Qf4amqTL%)&H_UVl2};5u4%(tAlh|XWuu|xC}j#9LUWN)KqL! z<uQQP!e(mQQH<=`oD%zeP6j8|{{YfV6*GaC$u*Xtfny4vLLnryZZoiz{BZ=pTk@H1 zs1*h(Mt>cbm&PHxJOu`mblvEo)%n7qb5d~8)2Bw%I@*uQgl|ku#<yyyb5DD!-05T0 zy<RX)@3=bl5|BYlcLg+6WuD8|@mX@nPdn$v<jlplPV-RC<^u$v6l=M}GWTF15Gioe z%d`x1N=)KN_snbxz4JEX$3H@Eb{HNoT~<@VzJFM+&=b$IrzJIGSuK0Fa(<>dTi|N^ z#I|@c*{IFFH`xjVHmJeka*q>ukijPhP8(E$IjJu$*NP&xiHtoE4iT#5<ca0oun!Za z?(J^7d=_&FCxk3FFVlBP8R0n-aK6WUu{lHe%WAdE#MLi8l?M7ZGPQC)od9C{M}z<W zTz`+;y*%|m8XL3epp>-^KCLVpKtrs$%lKP-vLAEzche<0s+rvBG8SjgQR;OnYPES# zq{?~36fUy;&_db+%G>~imm414)0xoxojyrltT~@`QyA)BRw!bqm`L{sQJ7fBs!yF% zdpE?6KfhQJzYc23ai$!JUC(H$yEi=A4u4IBGGc4Dt6TD4JdNrKP)d-+J_0m}h4P>X z-S(?@{a8dLnq*O;rP7r!#~*#)q809%R;tcfoQb+0UL?!P*g9mat8{}v!Jcj4(ivKg zd&7^XOeo0?rnG=*#Q<C)!r$R#nc>Kn=}atoyyKn?ppuI8xkN_&JZ1~L|C<0B9)H(R z==@_;nSn3;Q@#GcMlNEQzg{GmCE4X(k$i{c?+<d$kY~|eU(V<GY9$0r8<)L?DI$!j zUoDVk8KQ@c-vP)4bB0I3dlP0Fj~gt&!_<(C$GWjx;D#Mna*O~{tyi(};!d)hH}%Z3 zz(0dn>h3@#i!^^~q_>R_XQM+xU4IcTdClRsgPW&_nwd|Xv&_viUEO*LA?UIQ1kubQ z;JK`2O`Js53y>vQV4KiIeUVeo5>@4VH=Djg-+?1MB{T`Q2~1F2s61d7#Qohh<cW*= zla>=0cR|9{8rs5MnsHfn4Y{!deGDFMAmLUAxN8ktp`g>t`(uFb)vkS1rhmBDjcSR) zp{}{wmwl^$E}3bqJFd`;APk|pU=^bT>nS>Jzaj#M?-LlV41`18f+m}9*nJ>~V9TN@ zIV&TbO@3yVXib!Mrn_!`;d<C(-g+*j$b|=YcfUKt_T(tCBp+uVqjPyDUd3bv^+cpP z%7fk;p4kIetEj15kZR*0NPl$j4ez>##Ir4{6#y;W2vpJ<M6c^{QJ`u5g6j%Bq5ipU zLHz-?(?JjTG)l9~c~R<IE>B8O&&HNc{a&Y$vzW8DHBY=3wnF8m_8=hzm;f^<M3nP~ zb2aC})v^b(?F-SVxN0qZ2?|!bIm2X3Ar~%0RORARGDYtS(*s`V<$sErH|PFf;*0lh zJg_{a;8Cy)?D6C{70syOk0cVzx17dT0fpfaKLEN&#<I$v7MF#(d@Ws~UX@d9zAHy( z?;3wCs|*X!PaQ1#Bs~kwc2;ES5toSp$+&ZEb3e_CYWjab#i<}Lm8-M8AVmc~t-hmm z=7jVClOF^aN<&!$xqt6n^yPZN&MVW_ZLW84iW9Nxx8lkz8+7F9QRD4CEc(J7>Xa%P zy}5+(D~K+IX740ws!Va4bmk1Y;-cT&W&|=O8BWkb8HGL}<5TWK9<YS?4g%RU0bAK= zI@X45v~lT7SNCptSGM%(6j7E;R$;*Y<{2x{)m{Gc|0xn!^MBmj<mcq+eJ8oV_Y+q} zDck>@b)~(|t(q~k{_(wDK`cP2YfHhC#O@E0J%5W9_WGEpxhT6g!am4o@Q+|mR!Y>F z(EP3-WVlTb%r}}xno<KNV3J_72|^k2cIdGDNCl=NpGZL4s<ZlJX^uNG0kWlELx8)L zJbr1|yEtSx+<yxQZ7A_qq&V%m{q`#VpU5TluSOx{#2!k#X(iGx1Q!NNLIqsQo*)2^ z4ei@Z*C=l2551?z1Z#|N-_r;Lmc>?q${*Ombj<M=K^%?Sz{)*GINb!j2O6b|q`b&2 zJM9w;6~=wXuf07T(`uA=+WrjpEc|sdH<*GgB^^^|B!8G5-Dm6O_7Ep7#3o*n=q+ma z*(A*`LUR^V#fbBMtreyw;c!BbC>r*Em3Ay|p`ghW_Yf|CFc!2qnqy?<1^2D_5Df)= zcA@lWGTycNK`y~_=$T?;;&sHfD;?bN0X`e0wz_w0MIhlP$j!^!J?#sB4N^V~!5`E? zMdp&ad4EVzS5}K|OKZ)>-~tH|1h%=}c8K)H(-bX#-v)G1BU3-O93Z|ILh<YHb4UI- z-g981kg{b<c30gx6WKwRdl3%JEhE2$>L}7fEniP7g~0lw8?c()rrm)-*jn{Re65Py z4jzhiEhZo2f9(*KKe#&Ni3wlz`c3IoOxa#lN`KlN>Liydkk3iO=c!0VmH{;ClP9<W zE2$DdG49*qRXP<XycFZICuWpQ>X!;Jx}qt^Hr)Lvs6T-q4sjIO#kg)wv&|LYIgR#% z2y<t9j?lsB=qNwb4&$!0A2}lbQy&uY$s=?z%Tzc3HC`C+*T9`Z6hPyCU`EkbDTu@X zTYq)xXnfsh=YPJhGXx}Kn1CLu?`kYr9%jXR068sod6TY3wj0V&29$$1VpTF?Z=^Ir zRpzP50y58wrwFJd^4p5N&jY1|Cf+t`9LxXMq-BWB#y0zJ4Nylt?Tl-9jRn7i22%B0 zP+j0FuYN?Z%0;PXWc&88TXyYKHr%MaU4KCyeDxvTxT&J#Tpu-zMmOSK$z@T)KSpoJ z$cR%4_Rlx?$|lN50*ZX+|EJ?#=?DvpYPZ*L5abCzxtCmEnYsR-7ocXC8=EXZ>NnO% z<SE+^PdDetIzE>qMkfYx#{U{0nywx_UC6THz-9&D=Z6|(0ES5+Ym6WLX<e#xKYym{ zF{sav5;;RMq1k0zHTHs>axI{>XZBPq<2C%#s?KVsI=P{D>EVmC-{As+xta}h5u+X1 zsv@c(Z?*2fa)2+U$qMVXp8aHLA6w>TR}KGhEbL}?D3ru&wenEXn<wv{6we$b;Iu}t zz%4=W8HSYbH=(TWVnc~uP+7i35PvBP$+b-n=KkshQ&<oD)3*JL4;^e;$&xBr9&9K7 zidDOlKbX&-+!VAugaC-%+!0%gOA>JF;xkjao^ZDo)9aM6W56!o`RVCIgK6H78JW@! z9`Qw<B~t=B1tGhkKW(02>q|s=H)*HZ(XH>~m3Ix{&S{Z~%gia<q1Qp#+<$COrIhvv zxLpZvZ?!wn&9N0h{K`Z{CY|ZG!~8_8DsehuF(SChkt^*F8(xa9?G3VpmQHUr$>1Kt zh=<|rz$^BDKdh>w9w*6#IR{j8r0IbB{SCLhwx&&bXh(8kLggRVYC-_US@UHR3XMPe zcDi9k$;z%4rk~ivkqBBxPk+jXm{uteD&7dzED!zQKxZftq?6jcWIGttTG}5p3dy~F z9CLlDfCg^Q=|#|+fL_0R*u)fnt<Y@n$6-cUl+y`~sr5)n4!Xt#;Cvs9M3=kaxM%bs zu#esBeGCiki5l_Ya{a}d4fqX4aZNZ~;%YYdC-YJ!KhxVRfAaEK;(zlB!Uig0FKaS< z)f*t$aMTnq{iQ9q3`_K?7oJ;GL6IMt8nU`nI+=!F<*r#znR^b6kYc+zwy?oR4bMpC zN7TtO>Kp-RRWhJSw*Oq;D#J%Ay4)10Yc=eogbfy}g$fyjWPE&Au%B2k4NX^6fXahu z>4u5{#5Ts|R=}icdVit@N%pJs6gSy}D{x;-;l(ut!!{|`<P07@_t!6K?;^z2jnZm3 zxy^z_gsh*{^7^t|!Ukx+o{dR17_-G8GoF$m_2~as^Jlko+hR(?dxc#+r_)Z9GG%g{ zEyZVEb&*z$U@*iZI3VYRGw~}@YG5kVJo0PFf>JZL)u1@1JAb0zXA+L%0b|!E_6N-< zmcbJf>SW!QiSU6o$m9omD599*AE)}qzcv6pD<cP1FX-E2$=Y*<8{AxMmqJL8rKWh7 zL|faLllsl_{fJx^xijiK_1z|lgwr%KI(~1Z2Df}#x$^y+e3UBX4EA1tYWsmEC=t3J zaXTr{B(B-wjDJaLEz6)k2aV^$hroHaFp7r(M%u%Tv+vV10S`1?>bFI^AXl*fC8u$u zA8AQ|2`SB`OI6nZ&9H@hW$NdPHlH7Yra`>~ZI(s@YLKtGD_$G*#pwHhF!aZ)dJR`` zF^mjLBU_D;CHrz4UQSno4s-ehL2L~=F&DwKfcw0esDG66Z+u8vQJvLvj}i~qx6G`8 z_ki7}OT@{fPd}}aqD9E%es}h`(Ko+Go7=3XlP8&-oR%h{NqINX{*l4WPhq$MuM`z5 z4^~yd?pGCKE}E|EZ4!T)#uD`0IrgI9pnpj29IX!`iztZ%U^ZG<%*`%s*8ZEtrc88= zkv~LLFn{@ZX`cOnO5ZNeFzG@}8AQ+MlN@OG%aFNOkVWkB9BmVO`APUqrV0|G#1tJ? zei58@h7lb`uUky*_Fjz!o(vUh4#}_vfh{X=-)nk%=ba>iId#}++2{6)a~7WfzzB|R z%ZT)87-f5}E~1dbh6x^8**N68M)r}*{d!!RD}OT6%=dfj7ZfK??I_|y_mdi&+}_LS z&8Uy~&pY~XZzqK&vO#(=wqf8Ps${j83>k8UD17~b>xN#7f7<JljOA>Y_#ni#4uaE* zSvG^Qy0VSeFHoFvwZkYp<V>yOow|}+i7Ypa;lc$#brMb|VI$YIZxsbx^zJ?`>A2)u zuz#<@=Ck&y`8Ga-U3;O=*lhS#bh@(=9)#Qk2HFe-Hz@PJBD7mM6oSFTTlwXlxPH^j z5B)fQGxl&iRW`%)_!LmrC!qcDBhnZr_L$;g0&+KKm9ZraFY%Lacd69v&08G}o|h)U zReXd|qjDwkQx^|6{cYD-k0TJU_`ZciJ%6HWp1$DE69-wVK77rZpAglg(n2ylGYPH* z4_$6s<YY52NTgyMILh0L7z0DIBYr;FlOK>me84i|_ivJ9N|{;5x&bBWASyde4DK2| z0ylCV&yd#Z8?h9W!$hY@iWCw3DD<F(q7SAI)t8)wvUfWqS<oA~2Mq2)S!<}Ff`5fl zTg?o*9%>7sZ#r4s|M$n1PK}!}i0P7!A=1UEOGrf4)q0v5F7T{!W71a%RN9PeKM)Fz z7EF(Gf)G(TyMSB>gR9z0=TbCz7R~c|9<ge2IXS^Qev%X&R%enHk;2WX02yiBIF0)( zAr9bWsw1%(H`_EV+`Sd(RULa7Hh;SuXO8$s470wFN)|4?u3?DH=r|nXTafDx{1=Mf zx^MW;pU|Q+AT`@nxX<i*T#5MN@yKnUt)FB{H3TV)R`qD7%9uEeh%BQjMvxH20`JA1 zRKpeU>zSU=V_ne_(t{nB;TrhegZu^s^V;K~bG^)0M@=S{?!$2l1w#m9wSNPbuUrP= zQPjK-_K?!w<*sq}J`;-R#yOQtXUm%>tuMB&1-CK{GaN6Eb6qvQ&bJqGPAJ}G31%1W zzvRdZLgCcK4_i1Q9`~U6Pn%p2Pq>k~PzHF3tBHMf|Kyr!*zTA9%bB9cYJ7@h*i!<p zzBWJH1Go|Nrgtt<pf8liZGVOB@eXt;VoZ9?Y_;^wuyzpMf&!cp`#qZrKH-_ym|ZE; zmKW{vwX+uuQ@C7-XH^ZMB!jSY4$mry*GzCmQEZM3ObeFtcO(coqPx|vDR40pa~XO3 zJ7QGC?#Fn1I<@Ev+!O_r21+)@-AJNChpw@Dh;cNr$hVVh1$GaHb$`al*jhCC*rb{| z;@5EY<8?;;Ox@AOfn1aQ(9N6ojuTW0*Vgyw!&6Jr{|ydSt=SKj3HN%{pg$~>N9P0V zA9I(ll>%B(jpCX6>ru%(TZs?WWYr9_>N5I(Gc1XS9Bpq{>xB<wsrv_)i)XMJ38EuW zYA4u>zY<#S@@S`Fbbk<~>20ven<mtJX@982GkRHhfzFQqIj{nM9G;6o{w9+-ic$A^ zd6?PajCH~_?ZdoRG?kV|lP6GhdVf&v_?9;-`suH(77||ojn-NuGF`(6$(bjf_7kn< zcDDEZ6S2XgmgD)L&%L*po;UxtBk}y=7Xz3clhG{!(*64Dc7I^_UPVliX3O}~>+Amw zm-zhXAGn1Emrr9FLu-yC0Xlru>Vr2u4Mv3eEsJqs;G|>E0;!@WqsIg8dfLDW5L>;# zi@b-Hi6|oR*>W?qwq|&Cv|SW%kPPsv2yty=!6ja45IjG{Harys#iPjKO^>q%L!jt} zLVNEG##Zs?1AjqMZ7QNH+sCU%dj?4-zq)vPz%&7VUY{&E;it}Q_+_If4~(RW9V<21 zcIw53TjE@)-u%h*nVIJR<c~<IjPl%tj;69PH^4WTa)NlK$A8v`rOC8+G4R+3{be<Q zgGfQ{xVx93%egR1$c}9fS1!IB=)(N=AkbJaiPr{PP=8%R%mJi4jZRku<e3klU!aP~ zZR?iMr9I%FU63&r?AAw%tPsAED~z~d6p0i^pYxlozTU-1OTXBYZk+r6*uTtelzE9} zE@`W2G9z_^Bq+RPkCT@>!E|n2)!_sEzCG*F)wWc%BR2ys0-f_6(l{yx#c(SXna`Qr zL3F0)B!9>5_%`mIusu?{A7dz$&o%X8FCNZ*ft+0>d^f@(CjEDR{|LVX<f;_?(6{y^ zPxCOFZ>p-1Y?*>Rji*>;LBCbkMh^A|l_THp{2K<7KRtde3`Rfm@#2Ry6k46aM}z%R zw}>b;%|J0%uFhklkU{$h?1crmiNaY-RJ7S#Tz?w8c)k_3bGJ%QHN<vg*82(wtRbv4 zqN?c3o}!yGt?%&rjYz{3mdpGid^-*r;w;Gy(f{isye9RY2|fMWm0f(OA@ti}SW!L) zzxw!$mv)~CU-!Jec=8Q_Wh`J?;-7hHiV{7MtffenqiZ7=dE~LnrJ4zO+qmPn3yAKJ zkAJ;o4)R)Hc|$L=5ryU`TT7_QC-J%jrngcIL4V+bqax~dduO?L1^F^0z4FB-VFjow zC4iQ6Ht~#MGLqEM&O4>nqoPV>ID4qXf-M5J_tI`HaqWmVB=MUOB5ZDK!qkN;17B44 zFF=oY=~UP3_rM(D9T^X}$Z^;b26q@_S%1QeyBK_I!DYt^MM+})7<fHEPq{S&TpRm^ z3Qv`#W4HhQ2;V3Ro^I}M$O6|%{D;tRX&V~nCq$!5=8-=%A-(jbrp<7!gt;YL1l2$_ zFrb&50jW{+F4(f24ZS^*N&7_u2`K6RthBSq|CqjPc%6=FH6j_1>7(_EHuQ3Y1b@jz z%P{SQLf(Rq@HcA^C!(MVhfGUK=1vr=T!zcUb);m5HQd4e*eqPa2g16g&XHW52xVj$ zyxDiXpNm+=g{uiG+x@tTwOXet^!+8{Ia@;7uLM8aUnF~!ur0WWUedK}TvPg2ArX1L zF*I)8-kgPNWU~HuS|5W<px&Cg2!D<@Bco=)v)B+eh{X!2#}61B=gVILR)KVNXg!UC z86(Dm3qUiM=VyxjZ-xn@4Mf26O?rVv;w+gPwrO;>XpO*v7xg5~Qy%Rte#-k)jbYBk z7zjOd=$61w-iLs!kv3SW)1_*9fx0SGp^WCNM6od5L#3cOvOcv@q$GpK+ka~G<#I}V zn(}Fd?&KCPrt908vSj9_hq1|V+=a4JJqAH`rDCht7cH>h9lm+|Rb+rpta~_<_5ndR zyYfV4oH8LJDuOTaBLUlK!77nL_9A!ctw$cMqZUcmhz)EuyM8o;@bW1<|0q1aAtx3@ zbzs~}S+Y!x0FM9z{)Ag=8Gkj_=S=#w#V^#6hSXo}0=^L1U<$*W1>7Y9;XvXy%t!N2 zc|B`{I&IilFg5x%){7Kf1@p)b40<w}k>`Z(H6WZKhh9lsUY$6R!cE|;f57hN>TOwU zuIMea`Sbf|H_0!kfv*@9N8PYAR#BSG;^tuL-GZU7Byttp&YhL{ZGU9H+|dQa!*?IF z-gS-p3L!}z&>n;3tJqn*FgXLot7~h=5_n!_4L|d>=Xb?c4?+C%mV*3Pcd9rKIbi5l zLz#2`8NHl(eDLf8uRtfGNFrN}mes^1n#$>!HV_BUaXPbQ1`165X?+gd*h4!edTg*0 z7Z2g0wFHg5h=zYl$bYXHUy2xqX+N?rmt&+KboLB>Do-6&w7bf|&~NJgYy_BEy4~B~ zOcq_!KTNuUmeY-;QHrBg_nTDPWS5Axet$f?A`h_|f~Vf6%$*u9qw*z69FK^l0OTDY z`pIPvoFl5nQd6C_NlJJFVmfR^l!?W`*NtyS=w?X83qPAJJbxW}<EoIraBYH++kiia zcj?z~OO{xIwATtk?rX2!3&PtykN@67tSs1h?;XSb%;jj&%%yEw4@Hi~HNMW>k%cWR zh2L}IJD-q%6Iy@*+v+BwS9%tP-m}i5w#n{Ri_rzpT&Rnp>+vHH4On7WPFt3i*%5fs z&KSx#0qiec^M7tDRXU9&enY?&IwkEGHCHU%_hAzQBYkK~@geg<>Fwv1Xxn(BW*sFk z7fMSMryp+8<*}ym-N7dq5-3dJ05rm8V@I6Q!rxb*Fi!NdAk&n-EdEa@4&CN{yM3uk zmdGHD8)i6pic}Kc%xIrT74~$z2+!M%=To!;d3D2;FMqckA-<gk$I5BV^R`O6zy3kB zU7p-l)mOES^H`Fykog>dxH&|oztMfKO&35p+xrq{aZGY+ln3~0s4YzUvgda!nlmfY z0^NjizyOIbDdN8_q-d1gm^`g}JJON)G*=l0!u>fehv-2~VtMPlCa_hEX)ed>oInho zO)VDs3xEIQ)`V@)20<ucQ^I^WiHQsQi^QJ*VU&a7?EL^*JFq}6Da!)oyLXQ1aeLf} z3BXj=`qycF=g7K1T}A%L3$2xKn9&c=JHja>Dk;GefLPNI48)}3h-CFGI)LG*W2uPr zp^ivTTQ79XwX0xD8>xIFJmD0*h?W(aH|n83!hhSF)Vif@5$+e-S+FwkQ3fzS!-!Pc zaS6v@(o(7yinRCKj-FBNmpWPNG1;C#tgk!-v<ij;3o}WF$y~wcQJ5iK0(4uX(vWhW zgis$=vs`clkUQh5D|mFJw0qZ<{)F8om<|c0;ibuG*ca-icjV%o&Q(#$zUIpYz5%b? z5`UKh^t>kSoc|-$Y!n2kPQ%o0oejj}6Al9~H_qb$=T4ywQX(U-{z!ifaDZukz7d-$ zet3FVI&yvkMk})GTF#3Om1z$4elV^@ECFrbX23d%M(&l9FXTo2Hls1}2s4b^xtCbm zPD#DHHVW>XWv2zE2(CqLH357GMX|sXEq}tg07Ou5S=EZsy#t+~s^cPDwZxj~yWcrT z0E1ZCaMyjjl3GWtGw?*}jf4W%$mgK!ghN~OGYm^870!emXvyX!l-&G`S97w-qaLZ9 zq!)<eo9ns!m?-k#pQJTb3beKYj>_$(%KldCg-6Ob59JZnF0MR};019V<Zc*A|9?gf zjIP_ZKu5yWnq(Wom^>#SLiV~%6xQO8v~>yq{5v9OI=T!{nAn_m4SlVwX$|VzqKU&^ z{H5h_Pp>JoX<rv1Lix9z;($_tZlzIT0+ASG`z}_-7+$__un&_l#JW~boAd(R35x3! ze1iI^LK3=gj7ZK}r76uW0L-QP1%EW<+Yc7&$seaHDa$c_>^9MCV#+)5*mtxa_@nAj z^H`q=PRlh)gwXibVk-M0sr8VX<59|c-S?=H8!++J-A)QUVEaeq;XUWJ?V_kJGz>-j z(UY>A@+*0hjxLCU`E__p(a%%8d{w}lSrj>8WM}Wj8IpCFd|9+6D~!zw>wkocNE*1< zcM-t1M%k3&O~zm`twp^K0Z`wP4-@ig?6g;1lV|cmI%9@Tv}Uy+%k$sGOkm0vfZ{@p zq7)itNZ6E1!hKZy9pmkb=bwM!z<4}sBR!4y<-Yc%cqNV0@I@INYgP`~Ek9~dqtB{V zGOAlHdaj?0r1GNr&~Th7D}Ufypy87c_hkk>t~)YdLo}u8S8kMYtGJ$D>vMJbTAH0m zCh5;tU>FhV1fVh0A&N|hZopla;!=5tO!>_7SEc9ICDv@vc|ZLvpWd$MSWYo$u&M}9 z`EK;}yy|IldX<kumhIWhubetU*+_YZ5Z2fAZY9#QsxDOu*(S)z<$t}1`U1Fh(rP|o z*%<tr7pnA%$abDte9zanGq0Y<dstq`VdNhj3lo&gwAOJNCB$^>)sFq_9|ihRZZ=DJ zO-Y3oiN-FJfaW6`7#+d5_KQsrSc_$CB&AEE&5joMyk45oGuE46V_r?z2em-_THD=f z{zdr?55yTFv>%l*aeq84Cou8>lN>Hw%q1VEBUXWj<D~-#(LUU!B)QT*m?rCzeUz;? zDc98osZWZY-}4#sPxqh#D>((&{kT_hs~}}5bsqp(!nCS5j|-B?t;udei4z6WEI-X1 zWKgqme~hi8B8oIc+wS<o{`{Hvcb@n6Ez}`I=8UZcbBgHuwSTbW;I8uw6%Yic^rLte zy&9RR1flJV!JuZ*!;!gpO$MnOH}9%aVwwnpA*FO!tj0pT{f6M)ZHmD}5x=vHP^4@l z7-s3fbRsYRry#eq;hL8d<-OiSYet*un)ZW*BPU}5KaV}+LJTsf7$OwZ#B;77-olw} zNaL86qgKN9d4KYGhwbTMKs7{_;Z|Rn#5n}@!o-?%D$!MT$3TGtdn6@)PWc{R%5BpU zL9;(PG}}qFtOX{bu*J#Tnvs4N^|6F@bX`{!Uenz^L{QxA7<+yP)KJo*VfyI%4{XoZ zJ!#ceVtQzB9;EzB8tw}A*3801G|AA-?qn*Hd@I@qIZ4_|=|LHk*D1=xTW!uc67KGi z&~%@fL@m4TG=iOw9Ipn4i6QH_kYK`2N6OD28P>WzT-N7O0`hELR>FWuA?eFwTrgJ# GQ{ZSX`Wrp~ diff --git a/static/img/docs/light/blog-nested-route.avif b/static/img/docs/light/blog-nested-route.avif index 477f25afc138084dda9842720f3e25b8b4483afc..2c432ea1553ca756c16d93e5419960ef28da4027 100644 GIT binary patch delta 7393 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 TD~NRp+7}7i_a$!ZG%&Q_br4)( delta 10763 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 JCz^lW-SCQm^>Y9K diff --git a/static/img/docs/light/blog-post-nested-route.avif b/static/img/docs/light/blog-post-nested-route.avif index c7111fb17e7cdcbe7e8050a49555febf5b8b2d71..5d0e5ff62022ee99095961e01a4ccaad264a657f 100644 GIT binary patch delta 9877 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 Hi}nzJ?yweu delta 14429 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 diff --git a/static/img/docs/light/layout-special-file.avif b/static/img/docs/light/layout-special-file.avif index 8719f7234db014bd8179981b28471529c23ef9cf..a530b1faeb21607749f9fe5fec749c7db31d1cc2 100644 GIT binary patch delta 4763 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 delta 6970 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 MElNs?iaGWC9K^<F-T(jq diff --git a/static/img/docs/light/nested-layouts.avif b/static/img/docs/light/nested-layouts.avif index ab17babe704c55aa700a2612254ddf35860933ea..1dd2df8c2d6f122b1456771c8b8cbaf6ddaf1213 100644 GIT binary patch delta 11470 zcmV;<EHTr&gaPzhka!a~009610005t0096100000EEJK8WETh=000006lrsCWdHyG z00007fB*mknv(_rPXQ>CRsl>CEL3e|VRRAz3I`f0d;c@SpfW3ywE-f3qSo4@4#{K2 zfD!--3OXu#|1-h@8Vw*agIG*(0`$761uRN0=>Z4~d39v%IQn%Zc4*P$Gi-6Lz-x2U zvA8i<&2XM+Nc~^RCqVcAA)OQ5L0i|q?WS0-pP7f4a+AQeP5x0Qe2^m<6ry`UN=Jlq zrw%k3gk4SiFzSVLCpPeZFXXJlssgRD3@<KOfQf4iKO~*T7QA$=%iTt#EszG9-;<l@ zMd9?Zm8Cv;dC1or!PrDOvP6=?ka8^;PyAzG9P<M7iS#H_4!gS4q6j(o`IA9uXTRh1 zCo?r~c)IcmA^9wTslZBHafRxNKL6q{@bf_-ZV0*pvRl{DP|Z<)G_JN1%{;Hv1;1GA zr}QG}WU({@v<o75no;nHbtZcC9~@WCWB(0Z%1n3vBo-Htopc;puv#p$2+JRZl!;sQ z{xgtYZtb5hlMgB*?E};vAw|8FM7HMYL3=Z#_g&{cTzk5ULga?pO$)*Pp}Q>x8*R1p z97$_%o#K3sMRF8>HS^kU!oqTX{&$4MKSrie)J!wEbA=gnYacxlhv-{#Rk@`c#!sne zBm8oZLyEJ0fF4GVZ(kLNuVzE}^q&iP;IVje#hgJPxFA7W;ThP__d1yYnR3fEi#f^6 zw*kW%sJ1Oj{zR3i$NeQwpUV|hus)~CG|lEw<W$16B(rRP2M?wteebj=G;$QdqyJ}t zL}axKNvEn~8$)9yQZZ56?}iB$HxSCP8SY3`IbjkoB%~eVqIo8&n!7-2uvie+D4EN} z<31mpTLE6BHH<hwqk=yxvHhOxt!@7(dwj&RxOgz8>5eaMN|=kHtcMF@Da`;Sh!s92 z6`=ZkU{scWiCbd~tmLK``)nEKbhhgcs1qQjHxc;IBTH!o!+lEN3i>xysp-ODqV(oq zC_N6J3VmbaH)>8b9}~1+E<2$@Ps|7K9{QJMMV8{)v<$o7N*cgORU!ku@&xErV#_tO z@qIO(6E-;Zy&<CJ@P6yyPJNzxI7w6@)dN_rs!}n3&GGr!4muyR@X#kCchc2(oXt(L z_MRTEzXra7Q`x$i{B74J{S|C!)uKK)oAsRz6AH85RHPNI)!C3=W(&U#w{X^S(8VIw zKMjw2$>arL9Sp0Oh%XWmH6?J7f1}j(q$H4TIk>A57EmIwn8F%#lH-VEn+Nhd0YS4$ z1HjjRY<rCbAFjfex9Az^t1DQfsNYihhTZE#G%*Fnwmax<JFn0yk6DPtV=0&&Lm2vk zp3c*VD1!g=!DCXIz)QRs6M|}_Gbozh8qmmgn{&G!<pubm%TTDbwQ;nPIoB)!*b0mD z@?gkH&DL>A>%i))^5J%iwQ);!;mht5-{iA@zZ{lr!EGCGSu?S9+|8i>d?z7+GX_Iv zA}QKd;-$QH08g)X$M>p}8*?s9@-}mQn6PTo8Vfb%95nqHAi&2(ROqWgKF4}`gcowx z``eNZo@_YV?7w;iLPXmw*$>P(_sfI~Ij7!$aYS0*q3k#cwb2}5KPz~PvT<O60mNm0 zcs=lw@+IzwzVs07m07=6Ho+ogoRWm>SvxhY!%$G@99cg-MnaiWp=d3F*=q1vM6$)b zaqkh-Oe>qIM`9U)T8>l`$40ou4HC=`nf<)s6)=lWU9}JPgetV;NlP;w{xZtC0kUV6 zNSF0YOfhB|5%9xy?dHa2uEYBCs?EHA>W&h^>M1;D+vA3jl`S6TA(GeEkO;z+gx#sa zcNLcib)sKJySaoB=ApkLVi1tL-`S><$=`CsHy4is{c3#LmvfTGeFV3y%&&AIdI9d> z)3RETLQ!RG4B-a|hx|OO1HnIYkbx)Qj|fXu*h`cQA>T@{8ehHujj}pCrN|0@8_Nr^ z@p<>Hbgh2l!Lw^A!udoF+tr-Xe-W)l@n+)t)(5#|-;a%C8cnJJo`0HY!#xs5?t2~n zf$E~Jb&$D^5`C$sO>qiq9sjMy&vUl`tF&;8E#jLMR?sIzj<pfC+1U<IafhOhnr11O z4YPCkN(VBWIW<MGeA*EiBN-BZ2WQ(B+khSqw0_F%`E66A(`v^IubJROvc(7@ea(wg zsd@oJoQqA@qC^>qjc$%a#ayA1`5ap1a|r|E146YA0%7yeAKB~YLDW;#>{R(M^M?8k zs3<$Nho16vMB5<@Yb-b%^|^_VRBwfT)7L18GB!%6aNz}_9i*iWC$!>!)FKd9*@89q zi3mGnt-a?op^YWRg=&0+<-u2?1vUzz8@9MWq<0xEt%#CrQSn6z{E6}&0FDvy*?dZB zavQfnls8y5dKsq!Q0Sab2A>VSKqKJ2s$aAW@-oZa3NO~6f8PLHszD|}+-+wws80=1 zj=xrLb-NJ334qt)WbliB7zV_%TZP1rV7lc+UW7=&wadPK@&*O7aYYJKBa`F=grqg9 z=~sZN4g2U^oYu@0B#GXiBrT5a<`giI0AvjUZ^9a&$FbO;H=ScPv;AdqsipoJ7y@#i zyoJ;@!6a@eyh-al{dmpVb92R9s-5X4FnG4{mY#nn{7lBWoml37?!mFK6q=T}w@G@K zm@fhg#U~@(Xud_pQxigh;(i$-K8mU8Krpu5%1XLlas3sD$@nUX+R0I8psJNqR{wnU zoOL;RSfv3g_H&Y)BA<S<!zj)@P=-0yeteN+;s?MVcleI$usS#v0*5sMTjPMKnBIZp zv`aURvR$UDdI05rgb%2OAxFH+(dDvuf=0NINjB1YV~gIJd7;4NPq1Kp7uKVQ!-+@z zVhRaQuQlplknm|x{#2M$zm#jPVdn3=En*o2ymkqc!dM=fy=L0RlC``19wdtkD;tg% zAUs3bEY1kh8SMbctLI`{6?$emvYxS&3oW>s?~5`6pNdR>V4?tKP1^*#bFqC%5dF0S zoEtGX9YyJ*8fYN>)tuBT3O>lx6U4?}J5~^yrOOs4v+M=t%rGn8H=ZUAe~9ld!i9O9 z5zRA|43nb;EpG*uh$ripdYY_LP<_b!Ez$<1g9V9kHga1x10q-a^~THlC-cug!@=4k z*|K-K+=}6UJCb4I_){H?+#P4|x00E*70|A7`y@WaeVgXpweQ2E<=J)y9PynPoF}|6 zfGYN&uL?SD(iS0tnDsx*cd(cXmU2^pfYfoHrs+$fz^9h0?>#NJtkXF-USIr=q*&2- zNE~ge6Gqq1U+=9Ck19UhtPjlKp-2ciihmgDxM!e$SE#+^0AjyfLy;0~_?vC5of6I6 zZ<^?sY`gNT7yS>?n7U<rdjzI|y-Z<J(-x~JCp4%sl0;T2zu0B#zk5@I(W?Nwzv1xZ zeao)G)d`7@?NPa6;I1rj&pmOqQ-UC5csSO_TU*cd5C|M-Pg*c82tIsFyW8dezwh7w zbu2P}6;XAzpKJT15&SRZ(&9>suC(;gUuG}xo1;WyTUw?t+sAJ@)zMb7e;ey&2ObKf zy8kAqDqh=<RX9|Dnk$VQ690E<WZdD_hkYp)K9m|&;wfsvNW)Wdk21lc9qIJ+a%Y%> zDVJ#fB}pxJEWlN<@k1MKyjGzGdCg5FjfAs*9BfI7*2$NU{|@Mv<8}9bCFPu2bcNnG z7?>K!_ArI<qsM`0V-XJ{@74x@_QO)GRL-@g+fu!t2s#<?#$J$(k&&v#F#9OjtE8^$ zGv<&w2guc4a3TSaSYNZ~R`cG8;)P~%kGVtU1;k=c)j2Z`Y@TH)A-HxQN4VvZL(Xr1 z*ZC>(nU@Lju9t}8L$FScyEz#$A*v)=Xm}hPFOhA>{w*|D4H3(fwN%4eLIF{B{>E!! zc=b#r4GchvT(b3wYcx;!2d*B;717OKbTFRDMP{)HI2%Q_b-+QWjsu$~r{#|n^uB1a ztGGif6TZ>I0y*ygE?jV!M^x?LgzgM~tsyT3!yyk4v{mv#MUOePC1eDf0b$#sIgA?1 zf;catM6C_kLC&70RTNKYEshTUNG^>CHipGjB9W@NJV#yWeX@F+c89Wpi=-;As$li$ zli;_AQ%LTAU=U(!$XdhzH_7=#?J_hym1e8YzhR533<H@ex@nkTS-NXyO-n$3#4ToQ zaN7=61@tgpE`_Xpv)0uPy6Q5<bpm^KuZ9SGdhZLOCv86|Bl~i^qxZkNG8c<dOAu?S z)escS;dYQYOqUcD`3qzAK|bzSRBUZ>qQD&6h@Kgz38wBA_djOeShXeHjB$4m)LPi5 zs{xvW(fR%&P(<wv=Q?<O(t(D5T7u!;2XwOL*LY6}JGC};6TBH#3R~#NvGwg`(czn4 zqKp&yS<J8YiPn`RKx_;*rPa$pnz0X(X7Ltb;(zsX09~t`2l0Kz&{nOHB_?hfXj20Z zP%k4LHC8NdzRCRN8xhOS5C{2x1@sHK9ooE^`HI!ymMQ=KwlO1%=g&@m`m)TE5;WgX z{|M5+gF^~opz^p_m_G&WV?;x-K5bP74haPYmE+gxId`ZC;$D9v9$GkP_mJf{FWjJb zAUU0u;S6tms$Rb;#Ur?-Xgva3K<|_F*%{#w9__7j3caa`j%d71uMJy8O=7nf>A1}e zZS|1V-`VqQv+np;wh0Y?5`~#uu$ZI;f6U|U)UX9VnJhNurb3|{fMuy46DDj$!|KDd z9Lp)=3Vp+~@rRCDoH|7Q2_aW630vlF%UkD7`dy}2k3Oep-@x$ZeK<gG7>x`mVEckU zg7+)&e1_<nM#(&!PBJCWTyQ>d4)@vIb9|>W(_S|v(RuGLKTGa^fsV`oy-l0>gp%=T zPSnTaTD9xylA0B^lF>}xcydzJCMQR1q)hoE_uEd}_d}CElKPMYWetc2YJjZ>^aUJ* zP^(a7CUtX>(c&fy|MHIHSAp`i4<I4fhg%KAnLZGZ!S)=%E=!wI;=GGVjHBmt^w)ff zk&`&~*{cI+psfafa2VJB!2tplTCDm9WNWz~mrOKb?*8dJRYBdOTG$CNFxGaxS$Kz& zzm8M<k|v`VUD1;;=Yh592{tS%p>+%Z?BY*!ri-Uc$1l-&Ysl|k4`Ogo{RIS-3M|n* zG@r0YPus@-Lks~a@#U28YdA06umu01_;2|Z$Ug!57822aM(>cw3(qKOn$LM$ly{@0 zF;fZG7U-MWAAP$um%TC-eW%t(;ECRE&E73>S)*l2+(D-=>}%fc9*&#RvQO|APy5`2 z{&A_EBs>fK$Q#FqyD`sT0VnoVk25n$84~@<=69|3$KE&d(C2Zx!`*<9cQX_J$tCdz zlSYPIloq9bbQlX~*Qn40a3X~~Ap;un?8|#vId#%r4ov$Pi<MNVKdv(@?|ZunUAfF( z;Ooz^5Q+H%1kjsryk!Do(<IulDGKv0;SUv(yLt-)hx&iy?F`PDX{^4WB|T9le{w}l zbSB_Mcf?YFW@3H?N)Yl**}kRT%T=y}%#(Oq9?Nxq%<Qk|WMK^VnUK?|RYP3u0Wv;T zt1&w7q^BOCYgFIen4L-XW@tP9p~}i!5}>h_tWPz|5QO`wrGZeozhWXN0Q>kd`VBYc zY18LM)8tK!J>`}y06@bag@jhnl5jUd<|+vI2a`Q_i6=Q?*Dg2dmw~tDn7!RF5l#G7 z`lcd(WcVwc(1mnmK|;%l&4jY%^=>;e@Z)^j&mgg|aVQ(v&%XRS+`7=4AJG?m>17Bv z6|*=))rZ~(OAc(}VB+%YLu${x1_6}7U06L$DOdzD30$4=QyQ0k%Zvn>8%RX=zK)f@ z!9=VJs;wS}V%Z__w?_|0@%4+XypEGggG_IK9V}3K-BtGxmb(BMBwS!plQviTj)=Wv zXR?H&uh`j>!GtK^9L7m6t^Li$_T{2BW_(bmLqK(tv`t4pa|j%YHO}s)Rm@u_4peyL z!?cqQXr}rnY=xC32<&Mki@h_qMc(dfeR%_?w<zyKs~6Tf@AV|8@82{|e$G}DJ|T*K z_^`ZTsi)M3R%E?^TWap$amF;r2?7)mHpQi-)M3V9E`1<RtjX)b7Q~fk%YI)v6io`T z6KFcS9UD|26&ZB^Z)dm*6gSzpS9eV-9S?aW#rfm~`=U{Hr+3U(h5vqa%VwXQNt&X6 zs>g;dS~g@y9|n@%5tA=}?5zJ0wG3*1LCyep**r^177i!k=p6y#$3{?&HM201Igg7J zl#(F@jJ%72@}536DD7$Gk&o%QxCEk#izWhE2FqG2cF{thU3P<MiD)kLg1lrLhjz}L z<>;O_?@_$&4;mpXoX`>d%QxtR&69m8lNt=_t?1BjkCmhh0}DFH+mvoW(=9`PRnj~_ zl=Mkr13M=98_kMc8A@|ola6=&e6PTM@c2Ku9tsc$8hq!asx1!v$z}b9_!V%$EOqjL z*f0AHLa`^Arz*Wv{PFS!{RJYDZ(H-56hB`}e4|20V_Q-JVt4YEpshwS)zKscx@cY( zYb9AHCi{=pya2}>aO#+CeY979dXLK)bDsvINOqN2Hf0fvSED4inzz0YDDe>)O|AmR z)j(|0cAmDZVV9COh1Fu^oyE(LcN)vMopQI|-Wj6(&>Ne%_12UFDcuR_oU$=lT&=d1 za+MiY|C?^!eu0fHj`np5ul8#qTa9^0uPl=xUe@T4fn;b4G#G^@6F)D1$mQ7U9g!hK zA`-Nw6(KJ2N{0(r-ARcpl6uSlydky8tT%=_5P2<QVb-cS{(Mv*f2rQc-K2EH-bl2; zt#TiKIlXZini-bjn&1><<s)l~lzrJ{9Y1C;!`#1m5HoVAH+{HN>Z&wF`T}nZ91Z3{ zh7i0fEJ7n2(~Q?Q`Y+sn31Wg)eG3?cRB%Mdsto{WsF`GI6#vRJ%TbjVVY!f6FQ|D` zNc4fQDFj^Qw#IcYI*|5%{G~c_PzEz~Dt)lhOEW(lLS;$KZ0Xe#m@6SwqlVF8itYYL zq?Ys@sf4WCT#_zcRcBZL&Tfq5ygbUhTSr#HNCCYzD}iHXx@T#Bw`=e?w21)(Jc@~; z%)WZzVU3{=Whmsf4x!({>gRL}ClsIYI5eX25JmX(as1Iwxw!+8Mg{pXGZEaV@v*BL z>iXot6Mq>9I9@%E$)aiir3YD(=6DI=1$2?IlNE!2GCM=Nq;~!#eJ_Hi=Z?+k?;_1| z0Xyu5zJMN?R6c}%>PS=+dzxbpX0Zsf_#1x<8YZA6>_ihV_K(ta_WvLJCuwpdNrz_3 z8GM${TI-efx$}uvh*Qo*mjtp`HWO^1Pfh0mVxkyKr$=FyPJ6}VXvFoL^Km)eXdihi zfbEUbFxg@4Mc*l>%(ufMzFq+%rSSi|b(r{7cxY2bqSnHHr%-ad!=3$T;jU+9){!Qd zf)MVJkGC0;R0~9H&{F=uB`^1ZTkTOt3e`L~cOE`tTDOBS>GLS=OMd!Em~+nex#%^% zc=9L$5oYok?c^LpX;15wv2H%t^h%z6;O|c;)6@DkBhx%<;jwOT>9~d>hv-?~J?km0 zKo$QYDknF8BB_$}5D&1u)y})aWqA~AFHxgj6mxY&`Fe$000RJqH92P=i7RBW3aGIl zdo@~*%VFPakMX4AB-{ZFy&K~+EW1H;2PCU%Iiwu8{`R_7*}r!~6mp7S00TbgXFXY8 zx4iKqDcAV!#x%g5%|a|dMbcE8PTKE_@5J^K8>HKRb8;4`lje^&!3lH5>pVmv4p)v| zJbQ;i<oonneA`qO#i?i;!}CHNd?(6MFmoZ%6}9$2zfAE-A0JWMue}&J2va_aCyiOd z=C<;H{Ykaq4;uwPhXFI5_o&7v_XcX?N)oGp;|<dG4k4lP-|BX!*_Hmns)~D6-H_95 zeyCJ`ZuU2;3Z|~;W&PLj=+BDzfCV`G78()bv+80n?gjO|`L1-nxf(INoljIb@HIXw zUtf9p3GXil!VL6b?`_{}2e~G^*YNz0fhE@qgaq`YCmhEa$XE_xu~aaabRDO5_g*u- zFp*-==&7--A|AS+sA_uNitdwTPOGcuEfCg!FESIl|5LyEKfOm1MjK3(8Xv!Y5T||c z#JXek&SA<)?$zis1rT@;v_l0huG#(!B6#snU@xUGY5^%|2G_XxZMP#uL{L`=Mr6j| z*#+P^9TSL%w=R|iqMGG{)h`23-4fUUYG1hawo@yR0!}N)A9Qi7NEQ9>evK*}&M9Vp z{{~lYOg8(*<Gv@eOnC;{q-2+)#M|M!XzpMEi^S;dU}@-W5Z=U+SjgDuT|%)wh;A)g z&T-wUw^z(yB*AJkIkSMJWr#ZPO8Q#?t|VQtzS>gJsmzs=Y?<!q*ajLLOadq+Caqef z*Syb_<cR;Mm0c2ZnezoNrAf4qIGh`QWmqr=5c-;rMxOR$qWH<P7BK5g)b_=#@jEQk z;&}qzsgV-eNANpLQ*Yg)Kw^<Pqa6(EB60~PVA8mPTdq00LH~(esaB{lx=F}mHEZ3Y zw+7<r3q9-F&$;Z55HfZOHPQG`)0~R_(t_vxp(ke|y*dJ<;#<y>auY$abkwhZlReq~ z*ScM3RRIJXGN{tvDlHCJe8bh&%}I@$H;2fS`&BAU8sa}Bo$&1`FPgYMn0fW_d(Gm( z6>&L@=_F<s1(*l<tWMFS!NQotS39;^AbdbW)ARB6Q%Tbbb49YiF2BtlEv{6f*{Pt$ zS120@SX7)5Rh$vDw_^T<Q(Vq}8AlSOM_?uhn?NLL$_e*WxExz5+e<6VGn`9FuGa-o zr}0R9rzAoW+R^z8`DV3(K=*U0JQ0363yS?PSX;HPc`-2`?${o|0gjU{-VWyCx9})r zR|&uYYL~Fi(Hsg~H9P|Od)Pp@xyz+EXlx#X1I1fsSS;UC5978+SX(!LQo)CoL5Pje zsk*QDaxWT0rv@w>3he+uM3`A)`G1&r|7PR{C{Mq)5<l_~AX=Sg3{HIqVm*>eRxC|o zAhi`pe|ExVK#&Z0Lv5H;ETikw^s__YHyM{EY{0cvy<7+Ascz$~Cnhdi%Z$tn1If+* zDbC=^gFKgI9BZ-Yh%PLDfRyZY<luv8C0ZWvVq*%)Sd?vlZJ2&Y3XAVSbT)3Oe7ac6 zaf8@7M|z0HH*(7oS&UlESi^{FKhv2;vR_KxcRA%eI3>zJ6#R;a$fVwxRXZ=T`p&C< zGQ)DV<pp3I_N$+=2o>eq96RB#x=bSw>H_o4>6R~iQaD?B<d#Bz=$Kj#euTmd=d3h- zx7`P4{-TV-OVEF3U07YiC+k)92Bqy2haE$g4Id9fBsUpd`XJgUkp1hp3HpFS*cgKj zg?gQ%_a?$VjR(ab#3{SZY5eeVR5Ao)06nOGBMRK{+g(Vr2rWRxd!kA`yLo1x7jIvz z)RXy3L1EoI=em}EFsNVRGGj9O8Z3h(vmS(%MI3R|AFSyHv-^?eVmTz_><3sKbOB?- z93c3tfO$5iCq=++aA>alRTE@TuaU5f^g!B|4a*a@h6Azw=%twR-S?rpZP`Ju<Zj~_ zck`=sf;v)%KE+G533|<}IhW&=@v#$6`%7hU>v-Op%Ec>xL>hhKioZp?!|2u5Dfmv; z-ov#-wMYq7*?G@i_@Im$q(GgdW=T*Td%qr2@n2mZ;f%eolAqlH$e9Im)!*t^Vb6|p z3RQ7VTg~U+9!1vfFti+eljDtKdywSLREEVDqaXOj)UhQn0EXATcNleT6cAgcf|fvX z*_#dDGsii9)^|Pw>&Qc7jm{2Az{$}Y!6v9@r5Ndp58>r!zzlE{TnP7)tjjlQeBlmU z%KOK>?tuae!wHP&lhuY#44gpf31Sdju9`rLfZ+ShMwR-)p&rHc@1iT}LXriJnuX-B z@*||A;~kIf+1yFkQDc5fO{1WE_YjzimzJGc&zxR=2V0jp%vIrnQju6Sr~?s-vtd}N z;A;7Gy9f_%A{W!^XE?*70DHd6s3BU0Fkf~${e6Y4aaB9R6^94Y5ms<c84d`xBSd#- zqQzgWn%fjC^8OOqOSTs^mw85vB1)AXL}#%Jq|hc(v=rBn6v6RT8}q^k|4|V}u9$gP zk8$sRhBbB6P|uYT_q>s;@KJt-u^m-MwU%+>5B_FbC<L{rQ%yFC4XDLXI{@yOu$Fd? zeOUa?^+Y#YTVF(bRK%o{^!k!WSrwlD>MswNO>rX$k!7Lk1Oa#ts&5Qo&N3FX9=&=V zD$?TWkiq~y8K2^INS*dlt%u-q^>p64Trxm^$jFz4Ie1u?Ri@i6k%uElv>CJP-X~m; zk_hW8Ue8P2w_Cp)RprhIwpdb2`fb+z#<{5^4%0jGw}>5QNU`4No4w`;DzL}5kkb0h zjr}w40LywMCNF1Sfh`u~V&i1si$Z>)G?w7ej^JbKXhP2S*fb`#$F{Kb#Up$&4i%4o zxK++C|6y~_3@VJu@XKa5#2@y(i8Ok%coixA&XAZfM|>!lfqs#1JU3ny6aT`SH5vR> zJg65@z3LDA;OR!ud$->>9Y&&|t|D+c5KHFbq&F=yQ<^~V&hug{9-gT#c_{I1-<o(R z_K^t4^I44^oWL8FW7?m}8@WCk2@bM<8M8*I1M{>!4Zb`Q$AS5g-P$5|oRUjH4jM~L zd!N!LJ9)>4MLe+1x*w>af<gK|=4P3EPdsUGcI>@!kfZn*oCWPrGgI&-WbJgF6@^+P zhmq3TKX$F>Mz?JN2n5e}k?lguz`pZ`c$(Xt99_^*X_E{@IWFtK@2a-tNq8%N)fnqX z(R=Z5%{x`xI2=z3dc&AM58Li652#?4!*xc2&GFOIXr*ui(wv{YgJh0+5i}MR;0+n( z*}tZ#aDtlq=7ZvB3%A2|cAU+0x{lW`DI`22CpPTcG$k(CZ9t74YYVe_VJb91BAR$d z8GN5?6v3k_Lf|vRprHtJepw%XlvMoMrFh+fkb3eoKQzU=nAWm=2IJ6=2Vx>+Lw;;$ zCYnG$Mj*<k8{dtP^xOlQ#=+SKUB!8x<n(cjUJ4<#U=wk~J0Gpf&cC^11TH~V9v(G( zV@3P-w@r%d61atafL=Ug8R02rE_IBYZow3a<M1GvTnOl7YI#q}9WZ%+j7uu;idIJ0 z1<)rAMK=Ut@Gl&2GKF)&tOUb!aO1Ls_L%>1jWOLs`vu3-=R`*b?X>j%1-xGHX-VZI zf99FKM)3gj;yI|JQ2!Qlj@<Db*e4MyMRMjGl7|v$vqRUC>lGAi?}uVD0liuwlta82 zE$N}Ir+<Vh<%kqj>A}Q*tYhZ_^%~*Em-OQPI3I}D>u|D7y<a3cEfdKW_VNjymY}FZ z&0`E2TT!?H5u;FYelH|reen{#gHi?AOKrAA3<KMoyBNa72C&6*izzI+Kc5H$L9_&p z!J{zcM&OHf3R&A8*v{92O8eu)kO_HT*Z70!%TwgfvfC9Q;9T8*l-OzCU@`tO9}b6J zauYofh>2YH7hTgP&vz=?$TLTKD^V?ky`}RAD;HgGhIHYYI!uX_a8Dp`OiYMqd@;xR z?<|jgj|NOFvNU!=1@vn+*i&CjwI{w4V*h{03I6Rm4(-;FC!JW0$`lQ)^y@#8Akw-P zVvLzFIaYPbodKqQc}hAH)~Z2sH~z7Uarw6DJ@feN|NoQ(US~LYzR||()EqZj(6gkQ zi2YQ0=A)i;W$h(=k@vZw^U2Ju{_XvmxO3OJB?(2G?O{Wd{mkS_$GnICXG`op$wTiN zn_7KQmml_d_o9n2+?L$eu`>NDnT0EMYK%$2WnCZ@H@6pm>5bVK>qY!}4`&daUU@F& z3yt*T?8<knch@>|84GQJ5F@gxUd0@^zb2B~OcM~}%p8BVnPq8A2Y<INiL-w`R$vxm zO_PJy^}|#ia&n#(^3>@V(z&tZJ7k$Fxcw^qXdSekT2uC&vQ}9(@z_X9>c&@SIxH-S z!yS@BynkVT3{xGVlC@Ix$|k<l={1`O{eDk6X0&UsY0{*o%D1KYASByiZuU|MbeLou z9ln6{TwB9PEI|+So;9P}z8KlnSFSR|_Z=D)5u}pBLN<rIg?DtuwWm_H@U0GC@>jSo z5n8CN<GEu`L1j)Cz1$#@L6?l4yzu8fz=;xP@S9+NpE8cwLfuec`c@~5TNPL=(2Q-C z6bAbv48ir=H5u*ZBZMje?)8*}4|&43nufv9D1R~nse8OqAlYdG2Mj89tq$wNWI~v9 znR_RXXp9*EcUuP6h#3IpIWu^g_>N?kdWx3ldSH*`24##_y#rBCaM~^5Rm4ejZGhWC z-I64K=bhr(XR`{k$P>+*sSR<M8PM!lFZj7QPNJ5plxHf9e$v;*iV}uRh81(q%cDBs zFk(PJa~D@Mvf18+-G!>hx$pK30bxHj7Y%}`M2Rq-(oJYbca_gSTzxwl0iLBNN!*mr zKps*lB_5*)C@{Fk;N`Zl0<jINN{`ww`jFIrV|q9@Mco_tR8*57pOG1ySGWp~)~{zK zwu6N60HhbHAPWtZ{N`K~_PP;*uzvxq&-%8ni{dB9O<q{Yzxd#{6DO6D>Doh*U(LwR zMQVRM&0eV2j5zO*cT^VMVgNMLVL5%qYep*hQvyvsY8?C$b^Zhhr;eDI9H3pfa?>1t zYTTUHpE5cZihXF|!tZ;y5c$60w})Q%VNG6njvnx0v->3jKRsgRIqp0t%|`n5o65Xy zptFv|e(MIGyows1LQ4nV3<)(>Z8GhRG$MO$YHW(^pf2ku5|flZjkyn`#b7#LTjve( zxq8N^y1f|a-0<w8qkbU3_f8iu&Dvpq3FGG|R*pKICoJv>u1IVB;oQ?2umV`9Sk<~p zPH=;mYU#E=%MdN@#l9;%b`j%Y8C>Izi__*%mdAZAM^2Vx52|bDw}z0KJ;mf*teaJQ zd*Dl66%ZqF)&2f)^g{h*kF?sZ(9N#}VtDZ31{lZ-%`3GnIe<*9*Kf~8{WD{KViM?Q zf>iOU9p3wEfLYuYaCCAH^P)+!(I(D@DihmAuF$_PoS2drwxAWF_6l6bzd6m0EZ-^& zj=sQYY+&vebQb=_G8LerW>H05Qf+V5BoB}o%bViGi<ih=4#qwnJ>w4#`Z@Oqz=}YZ zq>)ucxcoGfNXm;XyYFi0tT<VJz(Z#HWSKN#&2o(}9N0=Y#N?hM-%Z(ATKN-)l)ZU5 zZ(>|=!M8RHn!Nmsh~_GsRthv$U7SP^*IAU8y~xHfsC{U6BbFviD<t_4qGr4SAiREC z^K55}VI)OTCm|#D(H_#4@&eMJPLID13<P;64dt4Hh{k0BJ|?d7?&AS}ARYz5z~VD) zPr3zu0giEG;jZ}H%7Lx1EzZug5I9c2R((9W?1PR8=gF3?x_0|Nq?%W%-Pe{^7%&>J zeeu%(b(21*BV1-)sGC@*Hg-G|k<1VO>&3+*@wI(CWG@Q4xU4mb2XXMmF!@cn?-Vm= zzw0;=h{6m8BKTn&YHyc+wRf|OWg-afVeUh7_)Ll1rjzj7RliYHED-)8VPhd^d_SH= z#P><&@h4yI7s4YzDMd2iRdn2e3bK<?z^F<WfB*hnE&+OSsk*4XpqXO(b0px)531R< zjZK@Ubzjhgw)dl%v-XL^H{pG_5lmwhl@}Lw+jhLlagx4*NYv1O7+#BsR+up9D1S(9 z+uj3|*L```wOx;u_`nk_C2~$|`v|<}DHY-~ZK+M=oglPk(IlXoUyxw>M*s%gx<44| z1WcQn)PW`v*INDr3}+Vq-p(U__Vdm~{_5DNF#_$uR-N48UR>@pBBGYMvppt{{tEex zlAE!!)7hZ5$ZxfOO1W}<_nWhbtnf6J1_36agJ0m(imxwg)13}riA!BE2U(v56Z;F6 zF-VDzYqsoJx=MJH<A2aovWndpLVlhjDFSHTze5Vj==tW0*UV4~a#hN1H4N!u*CMx5 ztZXdUpi=|3v=2vk%gZ#>B^drtul?ZC^nz=L@8RF?5yyCcavk?t3N?g^b_%tjQB_p~ zTKY(d!3)mUG9`FPV(u2zP0=5(Mi8ePGm(Z-KhA#@Ddy^TlUCCe?}h*E5lSLbf?M`D zP{$bLvfgI7v(7fj?+p_?APz9mjk6FhgRH@hGB+HT8-Qtp@htrE+G@N*e&eP&x;87$ zXuFKEqbB@+r?sjtR7{h;?t^TWt-1Hc58E7+jGGj~|G@E4#AVMHDvS*Ya{nf=X{x?3 z{PCXhK!2<5V%39UX#@jk7_Q34|66fYjYbx^nW!MpDc!z`%&Uo#dAhH|9e{Hbx+ENb z>f5CxKs#Z{$p5N8p){d9Gl7*bE$+x~7B4`<X0LmHxxXJGi^|5wI*h`ZU&qCu&cDPr z2<}?4jm6opG|$NV@;0@AEJSS;jMdU&MsSN9MXQgV+Uf^s19(WX|Hupa)rZYAmX-y< zFW6d4;2ZiydTBHoE_Hf+{`IO`VMme_c`8RHH8uTA^(ShX06^=Gz;<;}rc~X25h7JJ zmhCZrYlZS-%AQ}t5r=XTVgq|Vj7e@2%Nt*{ILf>Jz*S;Cy#olmqGA7IFWBf=k8Qpq zuk)WTL`S%u>_S1~%zno^#)}X<O>vtcSSO%Q!FD)O6d&wgKAG;g`Hb-n8T^28guKa; zd=spTkz67<t+`I6X0fBdwwERb?d%`Fw6BhTPXvP^H#1s=Ql|Rrb@Q~iJudV66jRsE zTf32sr<0}oZ<MIRaY+h06;yqHh~RQ$j_>=loaP(S$R>rJS$EjLuwXf#@aR(UU;?NT z2t6?6cP{71==3-#ZZ?b=Cq9%gTxUu{J{$UMk}Y?=(<<$5b3XN%3P2Nvu=K{VxW?Ll za4ejxBY_$77EZAg`X<$R(%g^c1w&xbw5EYHUQY?EL*Z1hpHCG~0u7TC3j{)0z?~wL zdouA-0Q#}w;`1wwOxm*Uvr4ove9wsPa7gr16n0|K4;LY<o;+SO6O-pa>&nlA7rkIr zVDHU25wBu#*yR>W>=VkBjWh5aY^ybOcZ`$SC|jzY%!+)m%G91Cu7dTz;9cv`8b~nu z-X5VVBi0M3;Iyz3tHH+zkIB|4gT;*Sw7qX@J-r#|K8yO-wT!Ia;=kL7;!+x6*7w8B oFvICuc;9Mu1Oyef2VlE<z6_aDWxP+he7|sa?gr504|YFVR8cP)o&W#< delta 16702 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 Z8<WF14_xnrprXrIX2*G^#y8TN8Zh#AnxX&z diff --git a/static/img/docs/light/page-special-file.avif b/static/img/docs/light/page-special-file.avif index 494b12d64bca193347dcfcce8af0b4a8e7e2e428..2524f07d52e0fd142ab60e9c8cf9f3ac81d2c1cb 100644 GIT binary patch delta 3707 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 ZF*!Yievtcdk4EtC!U>fIO|LK^mw;{O8qfd$ delta 5771 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 JM-(lHl7NmEN>2a) diff --git a/static/img/docs/light/public-folder.avif b/static/img/docs/light/public-folder.avif index e4156adf74f7b210f830c4d5b2f41b927985d174..24f6c4b8c13ced202f017778f9f31e6ddb1aa25c 100644 GIT binary patch delta 2665 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 Xa)qxP;S}7JUPMqmBuS(=7CiDBIQRZp delta 4079 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 diff --git a/static/img/docs/light/route-group-loading.avif b/static/img/docs/light/route-group-loading.avif index 12164c22f38c716a788be355e4fe802f0751d9ae..0862c263e8c198bdcc7842b13cb48141bacf67f1 100644 GIT binary patch delta 5955 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 delta 6950 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 diff --git a/static/img/docs/light/route-group-multiple-layouts.avif b/static/img/docs/light/route-group-multiple-layouts.avif index 8177209e3970fecbda6ee58249786e695f5fc4fb..e73634eac247b18a71e932dfd3e1a7611d99704b 100644 GIT binary patch delta 5950 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 delta 4989 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 HZuhWA7K55m diff --git a/static/img/docs/light/route-group-multiple-root-layouts.avif b/static/img/docs/light/route-group-multiple-root-layouts.avif index 27fc04fb10b28d44b251f2030666529c54f0a22d..593f54b4edf0ef0c590f9150354d429ccc4e4d8f 100644 GIT binary patch delta 4922 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 delta 4207 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 FK!8qU2r~cx diff --git a/static/img/docs/light/route-group-opt-in-layouts.avif b/static/img/docs/light/route-group-opt-in-layouts.avif index 5b8859cfd34266fb7ae3ad2229f06b249629de55..2a2ff9a64eb00c1207cb2b20a83f2eda5dd97383 100644 GIT binary patch delta 9384 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 delta 8911 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 diff --git a/static/img/docs/light/route-group-organisation.avif b/static/img/docs/light/route-group-organisation.avif index 0d64742b221792346981925ebb638b179c3ee7f3..3e3bc6720a7573ad5d5fbd9358b37640cede4f90 100644 GIT binary patch delta 8800 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 Wz{z_RX|VqulH`^%<0~8`hBgr9SNS#o delta 7835 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