[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f30r277ag21rfj":3,"-docs-4-x-guide-going-further-experimental-features":2735,"versions":8907},[4,1298,1908,2479],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":106},"Docs","i-lucide-book-marked","\u002Fdocs\u002F3.x","1.getting-started\u002F01.introduction",[10,107,248,458,1048,1154,1191,1241,1294],{"title":11,"titleTemplate":12,"icon":13,"path":14,"stem":8,"children":15,"page":106},"Get Started","%s · Get Started with Nuxt","i-lucide-rocket","\u002Fdocs\u002F3.x\u002Fgetting-started",[16,21,26,31,36,41,46,51,56,61,66,71,76,81,86,91,96,101],{"title":17,"description":18,"path":19,"stem":8,"icon":20},"Introduction","Nuxt's goal is to make web development intuitive and performant with a great Developer Experience in mind.","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fintroduction","i-lucide-info",{"title":22,"description":23,"path":24,"stem":25},"Installation","Get started with Nuxt quickly with our online starters or start locally with your terminal.","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Finstallation","1.getting-started\u002F02.installation",{"title":27,"description":28,"path":29,"stem":30},"Configuration","Nuxt is configured with sensible defaults to make you productive.","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F03.configuration",{"title":32,"description":33,"path":34,"stem":35},"Views","Nuxt provides several component layers to implement the user interface of your application.","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fviews","1.getting-started\u002F04.views",{"title":37,"description":38,"path":39,"stem":40},"Assets","Nuxt offers two options for your assets.","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fassets","1.getting-started\u002F05.assets",{"title":42,"description":43,"path":44,"stem":45},"Styling","Learn how to style your Nuxt application.","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fstyling","1.getting-started\u002F06.styling",{"title":47,"description":48,"path":49,"stem":50},"Routing","Nuxt file-system routing creates a route for every file in the pages\u002F directory.","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Frouting","1.getting-started\u002F07.routing",{"title":52,"description":53,"path":54,"stem":55},"SEO and Meta","Improve your Nuxt app's SEO with powerful head config, composables and components.","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fseo-meta","1.getting-started\u002F08.seo-meta",{"title":57,"description":58,"path":59,"stem":60},"Transitions","Apply transitions between pages and layouts with Vue or native browser View Transitions.","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Ftransitions","1.getting-started\u002F09.transitions",{"title":62,"description":63,"path":64,"stem":65},"Data Fetching","Nuxt provides composables to handle data fetching within your application.","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fdata-fetching","1.getting-started\u002F10.data-fetching",{"title":67,"description":68,"path":69,"stem":70},"State Management","Nuxt provides powerful state management libraries and the useState composable to create a reactive and SSR-friendly shared state.","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fstate-management","1.getting-started\u002F11.state-management",{"title":72,"description":73,"path":74,"stem":75},"Error Handling","Learn how to catch and handle errors in Nuxt.","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Ferror-handling","1.getting-started\u002F12.error-handling",{"title":77,"description":78,"path":79,"stem":80},"Server","Build full-stack applications with Nuxt's server framework. You can fetch data from your database or another server, create APIs, or even generate static server-side content like a sitemap or a RSS feed - all from a single codebase.","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fserver","1.getting-started\u002F13.server",{"title":82,"description":83,"path":84,"stem":85},"Layers","Nuxt provides a powerful system that allows you to extend the default files, configs, and much more.","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Flayers","1.getting-started\u002F14.layers",{"title":87,"description":88,"path":89,"stem":90},"Prerendering","Nuxt allows pages to be statically rendered at build time to improve certain performance or SEO metrics","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fprerendering","1.getting-started\u002F15.prerendering",{"title":92,"description":93,"path":94,"stem":95},"Deployment","Learn how to deploy your Nuxt application to any hosting provider.","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fdeployment","1.getting-started\u002F16.deployment",{"title":97,"description":98,"path":99,"stem":100},"Testing","How to test your Nuxt application.","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Ftesting","1.getting-started\u002F17.testing",{"title":102,"description":103,"path":104,"stem":105},"Upgrade Guide","Learn how to upgrade to the latest Nuxt version.","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fupgrade","1.getting-started\u002F18.upgrade",false,{"title":108,"titleTemplate":109,"icon":110,"path":111,"stem":112,"children":113,"page":106},"Directory Structure","%s · Nuxt Directory Structure","i-vscode-icons-default-folder","\u002Fdocs\u002F3.x\u002Fdirectory-structure","2.directory-structure\u002F0.nuxt",[114,118,123,128,133,138,143,148,153,158,163,168,173,178,183,188,193,198,203,208,213,218,223,228,233,238,243],{"title":115,"description":116,"path":117,"stem":112},".nuxt","Nuxt uses the .nuxt\u002F directory in development to generate your Vue application.","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxt",{"title":119,"description":120,"path":121,"stem":122},".output","Nuxt creates the .output\u002F directory when building your application for production.","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Foutput","2.directory-structure\u002F0.output",{"title":124,"description":125,"path":126,"stem":127},"assets","The assets\u002F directory is used to add all the website's assets that the build tool will process.","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fassets","2.directory-structure\u002F1.assets",{"title":129,"description":130,"path":131,"stem":132},"components","The components\u002F directory is where you put all your Vue components.","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fcomponents","2.directory-structure\u002F1.components",{"title":134,"description":135,"path":136,"stem":137},"composables","Use the composables\u002F directory to auto-import your Vue composables into your application.","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fcomposables","2.directory-structure\u002F1.composables",{"title":139,"description":140,"path":141,"stem":142},"content","Use the content\u002F directory to create a file-based CMS for your application.","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fcontent","2.directory-structure\u002F1.content",{"title":144,"description":145,"path":146,"stem":147},"layers","Use the layers\u002F directory to organize and auto-register local layers within your application.","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Flayers","2.directory-structure\u002F1.layers",{"title":149,"description":150,"path":151,"stem":152},"layouts","Nuxt provides a layouts framework to extract common UI patterns into reusable layouts.","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Flayouts","2.directory-structure\u002F1.layouts",{"title":154,"description":155,"path":156,"stem":157},"middleware","Nuxt provides middleware to run code before navigating to a particular route.","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fmiddleware","2.directory-structure\u002F1.middleware",{"title":159,"description":160,"path":161,"stem":162},"modules","Use the modules\u002F directory to automatically register local modules within your application.","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fmodules","2.directory-structure\u002F1.modules",{"title":164,"description":165,"path":166,"stem":167},"node_modules","The package manager stores the dependencies of your project in the node_modules\u002F directory.","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnode_modules","2.directory-structure\u002F1.node_modules",{"title":169,"description":170,"path":171,"stem":172},"pages","Nuxt provides file-based routing to create routes within your web application.","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fpages","2.directory-structure\u002F1.pages",{"title":174,"description":175,"path":176,"stem":177},"plugins","Nuxt has a plugins system to use Vue plugins and more at the creation of your Vue application.","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fplugins","2.directory-structure\u002F1.plugins",{"title":179,"description":180,"path":181,"stem":182},"public","The public\u002F directory is used to serve your website's static assets.","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fpublic","2.directory-structure\u002F1.public",{"title":184,"description":185,"path":186,"stem":187},"server","The server\u002F directory is used to register API and server handlers to your application.","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fserver","2.directory-structure\u002F1.server",{"title":189,"description":190,"path":191,"stem":192},"shared","Use the shared\u002F directory to share functionality between the Vue app and the Nitro server.","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fshared","2.directory-structure\u002F1.shared",{"title":194,"description":195,"path":196,"stem":197},"utils","Use the utils\u002F directory to auto-import your utility functions throughout your application.","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Futils","2.directory-structure\u002F1.utils",{"title":199,"description":200,"path":201,"stem":202},".env","A .env file specifies your build\u002Fdev-time environment variables.","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fenv","2.directory-structure\u002F2.env",{"title":204,"description":205,"path":206,"stem":207},".gitignore","A .gitignore file specifies intentionally untracked files that git should ignore.","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fgitignore","2.directory-structure\u002F2.gitignore",{"title":209,"description":210,"path":211,"stem":212},".nuxtignore","The .nuxtignore file lets Nuxt ignore files in your project’s root directory during the build phase.","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxtignore","2.directory-structure\u002F2.nuxtignore",{"title":214,"description":215,"path":216,"stem":217},".nuxtrc","The .nuxtrc file allows you to define nuxt configurations in a flat syntax.","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxtrc","2.directory-structure\u002F2.nuxtrc",{"title":219,"description":220,"path":221,"stem":222},"app.vue","The app.vue file is the main component of your Nuxt application.","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fapp","2.directory-structure\u002F3.app",{"title":224,"description":225,"path":226,"stem":227},"app.config.ts","Expose reactive configuration within your application with the App Config file.","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fapp-config","2.directory-structure\u002F3.app-config",{"title":229,"description":230,"path":231,"stem":232},"error.vue","The error.vue file is the error page in your Nuxt application.","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Ferror","2.directory-structure\u002F3.error",{"title":234,"description":235,"path":236,"stem":237},"nuxt.config.ts","Nuxt can be easily configured with a single nuxt.config file.","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxt-config","2.directory-structure\u002F3.nuxt-config",{"title":239,"description":240,"path":241,"stem":242},"package.json","The package.json file contains all the dependencies and scripts for your application.","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fpackage","2.directory-structure\u002F3.package",{"title":244,"description":245,"path":246,"stem":247},"tsconfig.json","Learn how Nuxt manages TypeScript configuration across different parts of your project.","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Ftsconfig","2.directory-structure\u002F3.tsconfig",{"title":249,"icon":250,"path":251,"stem":252,"children":253,"page":106},"Guide","i-lucide-book-open","\u002Fdocs\u002F3.x\u002Fguide","3.guide\u002F1.concepts\u002F1.rendering",[254,294,315,331,377,403],{"title":255,"titleTemplate":256,"icon":257,"path":258,"stem":252,"children":259,"page":106},"Key Concepts","%s · Nuxt Concepts","i-lucide-medal","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts",[260,264,269,274,279,284,289],{"title":261,"description":262,"path":263,"stem":252},"Rendering Modes","Learn about the different rendering modes available in Nuxt.","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Frendering",{"title":265,"description":266,"path":267,"stem":268},"Nuxt Lifecycle","Understanding the lifecycle of Nuxt applications can help you gain deeper insights into how the framework operates, especially for both server-side and client-side rendering.","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","3.guide\u002F1.concepts\u002F2.nuxt-lifecycle",{"title":270,"description":271,"path":272,"stem":273},"Auto-imports","Nuxt auto-imports components, composables, helper functions and Vue APIs.","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fauto-imports","3.guide\u002F1.concepts\u002F3.auto-imports",{"title":275,"description":276,"path":277,"stem":278},"Server Engine","Nuxt is powered by a new server engine: Nitro.","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fserver-engine","3.guide\u002F1.concepts\u002F4.server-engine",{"title":280,"description":281,"path":282,"stem":283},"Modules","Nuxt provides a module system to extend the framework core and simplify integrations.","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fmodules","3.guide\u002F1.concepts\u002F5.modules",{"title":285,"description":286,"path":287,"stem":288},"TypeScript","Nuxt is fully typed and provides helpful shortcuts to ensure you have access to accurate type information when you are coding.","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Ftypescript","3.guide\u002F1.concepts\u002F8.typescript",{"title":290,"description":291,"path":292,"stem":293},"Code Style","Nuxt supports ESLint out of the box","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fcode-style","3.guide\u002F1.concepts\u002F9.code-style",{"title":295,"titleTemplate":296,"icon":297,"path":298,"stem":299,"children":300,"page":106},"Best Practices","%s · Best Practices","i-lucide-square-check","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices","3.guide\u002F2.best-practices\u002Fhydration",[301,305,310],{"title":302,"description":303,"path":304,"stem":299},"Nuxt and hydration","Why fixing hydration issues is important","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices\u002Fhydration",{"title":306,"description":307,"path":308,"stem":309},"Nuxt performance","Best practices for improving performance of Nuxt apps.","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices\u002Fperformance","3.guide\u002F2.best-practices\u002Fperformance",{"title":311,"description":312,"path":313,"stem":314},"Nuxt Plugins","Best practices when using Nuxt plugins.","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices\u002Fplugins","3.guide\u002F2.best-practices\u002Fplugins",{"title":316,"titleTemplate":317,"icon":318,"path":319,"stem":320,"children":321,"page":106},"Working with AI","Working with AI: %s","i-lucide-bot","\u002Fdocs\u002F3.x\u002Fguide\u002Fai","3.guide\u002F3.ai\u002F1.mcp",[322,326],{"title":323,"description":324,"path":325,"stem":320},"Nuxt MCP Server","Use Nuxt documentation in your AI assistants with Model Context Protocol support.","\u002Fdocs\u002F3.x\u002Fguide\u002Fai\u002Fmcp",{"title":327,"description":328,"path":329,"stem":330},"Nuxt LLMs.txt","How to get AI tools like Cursor, Windsurf, GitHub Copilot, ChatGPT, and Claude to understand Nuxt concepts, APIs, and best practices.","\u002Fdocs\u002F3.x\u002Fguide\u002Fai\u002Fllms-txt","3.guide\u002F3.ai\u002F2.llms-txt",{"title":332,"titleTemplate":333,"icon":334,"path":335,"stem":336,"children":337,"page":106},"Module Author Guide","%s · Nuxt Modules Author Guide","i-lucide-box","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules","3.guide\u002F4.modules\u002F1.getting-started",[338,342,347,352,357,362,367,372],{"title":339,"description":340,"path":341,"stem":336},"Create Your First Module","Learn how to create your first Nuxt module using the official starter template.","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fgetting-started",{"title":343,"description":344,"path":345,"stem":346},"Understand Module Structure","Learn how Nuxt modules are structured and how to define them.","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","3.guide\u002F4.modules\u002F2.module-anatomy",{"title":348,"description":349,"path":350,"stem":351},"Add Plugins, Components & More","Learn how to inject plugins, components, composables and server routes from your module.","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Frecipes-basics","3.guide\u002F4.modules\u002F3.recipes-basics",{"title":353,"description":354,"path":355,"stem":356},"Module Dependencies","Declare dependencies on other modules with version constraints and configuration merging.","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fmodule-dependencies","3.guide\u002F4.modules\u002F4.module-dependencies",{"title":358,"description":359,"path":360,"stem":361},"Use Hooks & Extend Types","Master lifecycle hooks, virtual files and TypeScript declarations in your modules.","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","3.guide\u002F4.modules\u002F5.recipes-advanced",{"title":363,"description":364,"path":365,"stem":366},"Test Your Module","Learn how to test your Nuxt module with unit, integration and E2E tests.","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Ftesting","3.guide\u002F4.modules\u002F6.testing",{"title":368,"description":369,"path":370,"stem":371},"Follow Best Practices","Build performant and maintainable Nuxt modules with these guidelines.","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fbest-practices","3.guide\u002F4.modules\u002F7.best-practices",{"title":373,"description":374,"path":375,"stem":376},"Publish & Share Your Module","Join the Nuxt module ecosystem and publish your module to npm.","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fecosystem","3.guide\u002F4.modules\u002F8.ecosystem",{"title":378,"titleTemplate":379,"icon":380,"path":381,"stem":382,"children":383,"page":106},"Recipes","%s · Recipes","i-lucide-cooking-pot","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes","3.guide\u002F5.recipes\u002F1.custom-routing",[384,388,393,398],{"title":385,"description":386,"path":387,"stem":382},"Custom Routing","In Nuxt, your routing is defined by the structure of your files inside the pages directory. However, since it uses vue-router under the hood, Nuxt offers you several ways to add custom routes in your project.","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fcustom-routing",{"title":389,"description":390,"path":391,"stem":392},"Using Vite Plugins in Nuxt","Learn how to integrate Vite plugins into your Nuxt project.","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fvite-plugin","3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":394,"description":395,"path":396,"stem":397},"Custom useFetch in Nuxt","How to create a custom fetcher for calling your external API in Nuxt.","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":399,"description":400,"path":401,"stem":402},"Sessions and Authentication","Authentication is an extremely common requirement in web apps. This recipe will show you how to implement basic user registration and authentication in your Nuxt app.","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","3.guide\u002F5.recipes\u002F4.sessions-and-authentication",{"title":404,"titleTemplate":405,"icon":406,"path":407,"stem":408,"children":409,"page":106},"Going Further","%s · Nuxt Advanced","i-lucide-star","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further","3.guide\u002F6.going-further\u002F1.events",[410,414,419,424,429,434,439,443,448,453],{"title":411,"description":412,"path":413,"stem":408},"Creating Custom Events","Nuxt provides a powerful event system powered by hookable.","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fevents",{"title":415,"description":416,"path":417,"stem":418},"Experimental Features","Enable Nuxt experimental features to unlock new possibilities.","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","3.guide\u002F6.going-further\u002F1.experimental-features",{"title":420,"description":421,"path":422,"stem":423},"Features","Enable or disable optional Nuxt features to unlock new possibilities.","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Ffeatures","3.guide\u002F6.going-further\u002F1.features",{"title":425,"description":426,"path":427,"stem":428},"Lifecycle Hooks","Nuxt provides a powerful hooking system to expand almost every aspect using hooks.","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fhooks","3.guide\u002F6.going-further\u002F2.hooks",{"title":430,"description":431,"path":432,"stem":433},"Nuxt Kit","@nuxt\u002Fkit provides features for module authors.","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fkit","3.guide\u002F6.going-further\u002F4.kit",{"title":435,"description":436,"path":437,"stem":438},"NuxtApp","In Nuxt, you can access runtime app context within composables, components and plugins.","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":440,"description":83,"path":441,"stem":442},"Authoring Nuxt Layers","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Flayers","3.guide\u002F6.going-further\u002F7.layers",{"title":444,"description":445,"path":446,"stem":447},"Debugging","In Nuxt, you can get started with debugging your application directly in the browser as well as in your IDE.","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fdebugging","3.guide\u002F6.going-further\u002F9.debugging",{"title":449,"description":450,"path":451,"stem":452},"Runtime Config","Nuxt provides a runtime config API to expose configuration and secrets within your application.","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","3.guide\u002F6.going-further\u002F10.runtime-config",{"title":454,"description":455,"path":456,"stem":457},"Nightly Release Channel","The nightly release channel allows using Nuxt built directly from the latest commits to the repository.","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fnightly-release-channel","3.guide\u002F6.going-further\u002F11.nightly-release-channel",{"title":459,"titleTemplate":460,"icon":461,"path":462,"stem":463,"children":464,"page":106},"API","%s · Nuxt API","i-lucide-code-xml","\u002Fdocs\u002F3.x\u002Fapi","4.api\u002F1.components\u002F1.client-only",[465,544,695,845,941,1030,1043],{"title":466,"titleTemplate":467,"icon":334,"path":468,"stem":463,"children":469,"page":106},"Components","%s · Nuxt Components","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents",[470,474,479,484,489,494,499,504,509,514,519,524,529,534,539],{"title":471,"description":472,"path":473,"stem":463},"\u003CClientOnly>","Render components only in client-side with the \u003CClientOnly> component.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fclient-only",{"title":475,"description":476,"path":477,"stem":478},"\u003CDevOnly>","Render components only during development with the \u003CDevOnly> component.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fdev-only","4.api\u002F1.components\u002F1.dev-only",{"title":480,"description":481,"path":482,"stem":483},"\u003CNuxtClientFallback>","Nuxt provides the \u003CNuxtClientFallback> component to render its content on the client if any of its children trigger an error in SSR","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":485,"description":486,"path":487,"stem":488},"\u003CNuxtPage>","The \u003CNuxtPage> component is required to display pages located in the pages\u002F directory.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","4.api\u002F1.components\u002F2.nuxt-page",{"title":490,"description":491,"path":492,"stem":493},"\u003CNuxtLayout>","Nuxt provides the \u003CNuxtLayout> component to show layouts on pages and error pages.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","4.api\u002F1.components\u002F3.nuxt-layout",{"title":495,"description":496,"path":497,"stem":498},"\u003CNuxtLink>","Nuxt provides \u003CNuxtLink> component to handle any kind of links within your application.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","4.api\u002F1.components\u002F4.nuxt-link",{"title":500,"description":501,"path":502,"stem":503},"\u003CNuxtLoadingIndicator>","Display a progress bar between page navigations.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":505,"description":506,"path":507,"stem":508},"\u003CNuxtErrorBoundary>","The \u003CNuxtErrorBoundary> component handles client-side errors happening in its default slot.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":510,"description":511,"path":512,"stem":513},"\u003CNuxtWelcome>","The \u003CNuxtWelcome> component greets users in new projects made from the starter template.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","4.api\u002F1.components\u002F7.nuxt-welcome",{"title":515,"description":516,"path":517,"stem":518},"\u003CNuxtIsland>","Nuxt provides the \u003CNuxtIsland> component to render a non-interactive component without any client JS.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","4.api\u002F1.components\u002F8.nuxt-island",{"title":520,"description":521,"path":522,"stem":523},"\u003CNuxtImg>","Nuxt provides a \u003CNuxtImg> component to handle automatic image optimization.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-img","4.api\u002F1.components\u002F9.nuxt-img",{"title":525,"description":526,"path":527,"stem":528},"\u003CNuxtPicture>","Nuxt provides a \u003CNuxtPicture> component to handle automatic image optimization.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","4.api\u002F1.components\u002F10.nuxt-picture",{"title":530,"description":531,"path":532,"stem":533},"\u003CTeleport>","The \u003CTeleport> component teleports a component to a different location in the DOM.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fteleports","4.api\u002F1.components\u002F11.teleports",{"title":535,"description":536,"path":537,"stem":538},"\u003CNuxtRouteAnnouncer>","The \u003CNuxtRouteAnnouncer> component adds a hidden element with the page title to announce route changes to assistive technologies.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":540,"description":541,"path":542,"stem":543},"\u003CNuxtTime>","The \u003CNuxtTime> component displays time in a locale-friendly format with server-client consistency.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","4.api\u002F1.components\u002F13.nuxt-time",{"title":545,"titleTemplate":546,"icon":547,"path":548,"stem":549,"children":550,"page":106},"Composables","%s · Nuxt Composables","i-lucide-arrow-left-right","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables","4.api\u002F2.composables\u002Fon-prehydrate",[551,555,560,565,570,575,580,585,590,595,600,605,610,615,620,625,630,635,640,645,650,655,660,665,670,675,680,685,690],{"title":552,"description":553,"path":554,"stem":549},"onPrehydrate","Use onPrehydrate to run a callback on the client immediately before Nuxt hydrates the page.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate",{"title":556,"description":557,"path":558,"stem":559},"useAppConfig","Access the reactive app config defined in the project.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","4.api\u002F2.composables\u002Fuse-app-config",{"title":561,"description":562,"path":563,"stem":564},"useAsyncData","useAsyncData provides access to data that resolves asynchronously in an SSR-friendly composable.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","4.api\u002F2.composables\u002Fuse-async-data",{"title":566,"description":567,"path":568,"stem":569},"useCookie","useCookie is an SSR-friendly composable to read and write cookies.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","4.api\u002F2.composables\u002Fuse-cookie",{"title":571,"description":572,"path":573,"stem":574},"useError","useError composable returns the global Nuxt error that is being handled.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-error","4.api\u002F2.composables\u002Fuse-error",{"title":576,"description":577,"path":578,"stem":579},"useFetch","Fetch data from an API endpoint with an SSR-friendly composable.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","4.api\u002F2.composables\u002Fuse-fetch",{"title":581,"description":582,"path":583,"stem":584},"useHead","useHead customizes the head properties of individual pages of your Nuxt app.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-head","4.api\u002F2.composables\u002Fuse-head",{"title":586,"description":587,"path":588,"stem":589},"useHeadSafe","The recommended way to provide head data with user input.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","4.api\u002F2.composables\u002Fuse-head-safe",{"title":591,"description":592,"path":593,"stem":594},"useHydration","Allows full control of the hydration cycle to set and receive data from the server.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","4.api\u002F2.composables\u002Fuse-hydration",{"title":596,"description":597,"path":598,"stem":599},"useLazyAsyncData","This wrapper around useAsyncData triggers navigation immediately.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data","4.api\u002F2.composables\u002Fuse-lazy-async-data",{"title":601,"description":602,"path":603,"stem":604},"useLazyFetch","This wrapper around useFetch triggers navigation immediately.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":606,"description":607,"path":608,"stem":609},"useLoadingIndicator","This composable gives you access to the loading state of the app page.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":611,"description":612,"path":613,"stem":614},"useNuxtApp","Access the shared runtime context of the Nuxt Application.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":616,"description":617,"path":618,"stem":619},"useNuxtData","Access the current cached value of data fetching composables.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":621,"description":622,"path":623,"stem":624},"usePreviewMode","Use usePreviewMode to check and control preview mode in Nuxt","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","4.api\u002F2.composables\u002Fuse-preview-mode",{"title":626,"description":627,"path":628,"stem":629},"useRequestEvent","Access the incoming request event with the useRequestEvent composable.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","4.api\u002F2.composables\u002Fuse-request-event",{"title":631,"description":632,"path":633,"stem":634},"useRequestFetch","Forward the request context and headers for server-side fetch requests with the useRequestFetch composable.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","4.api\u002F2.composables\u002Fuse-request-fetch",{"title":636,"description":637,"path":638,"stem":639},"useRequestHeader","Use useRequestHeader to access a certain incoming request header.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","4.api\u002F2.composables\u002Fuse-request-header",{"title":641,"description":642,"path":643,"stem":644},"useRequestHeaders","Use useRequestHeaders to access the incoming request headers.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","4.api\u002F2.composables\u002Fuse-request-headers",{"title":646,"description":647,"path":648,"stem":649},"useRequestURL","Access the incoming request URL with the useRequestURL composable.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","4.api\u002F2.composables\u002Fuse-request-url",{"title":651,"description":652,"path":653,"stem":654},"useResponseHeader","Use useResponseHeader to set a server response header.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","4.api\u002F2.composables\u002Fuse-response-header",{"title":656,"description":657,"path":658,"stem":659},"useRoute","The useRoute composable returns the current route.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-route","4.api\u002F2.composables\u002Fuse-route",{"title":661,"description":662,"path":663,"stem":664},"useRouteAnnouncer","This composable observes the page title changes and updates the announcer message accordingly.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","4.api\u002F2.composables\u002Fuse-route-announcer",{"title":666,"description":667,"path":668,"stem":669},"useRouter","The useRouter composable returns the router instance.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-router","4.api\u002F2.composables\u002Fuse-router",{"title":671,"description":672,"path":673,"stem":674},"useRuntimeConfig","Access runtime config variables with the useRuntimeConfig composable.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","4.api\u002F2.composables\u002Fuse-runtime-config",{"title":676,"description":677,"path":678,"stem":679},"useRuntimeHook","Registers a runtime hook in a Nuxt application and ensures it is properly disposed of when the scope is destroyed.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":681,"description":682,"path":683,"stem":684},"useSeoMeta","The useSeoMeta composable lets you define your site's SEO meta tags as a flat object with full TypeScript support.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","4.api\u002F2.composables\u002Fuse-seo-meta",{"title":686,"description":687,"path":688,"stem":689},"useServerSeoMeta","The useServerSeoMeta composable lets you define your site's SEO meta tags as a flat object with full TypeScript support.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta","4.api\u002F2.composables\u002Fuse-server-seo-meta",{"title":691,"description":692,"path":693,"stem":694},"useState","The useState composable creates a reactive and SSR-friendly shared state.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-state","4.api\u002F2.composables\u002Fuse-state",{"title":696,"titleTemplate":697,"path":698,"stem":699,"children":700,"page":106},"Utils","%s · Nuxt Utils","\u002Fdocs\u002F3.x\u002Fapi\u002Futils","4.api\u002F3.utils\u002F$fetch",[701,705,710,715,720,725,730,735,740,745,750,755,760,765,770,775,780,785,790,795,800,805,810,815,820,825,830,835,840],{"title":702,"description":703,"path":704,"stem":699},"$fetch","Nuxt uses ofetch to expose globally the $fetch helper for making HTTP requests.","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdollarfetch",{"title":706,"description":707,"path":708,"stem":709},"abortNavigation","abortNavigation is a helper function that prevents navigation from taking place and throws an error if one is set as a parameter.","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fabort-navigation","4.api\u002F3.utils\u002Fabort-navigation",{"title":711,"description":712,"path":713,"stem":714},"addRouteMiddleware","addRouteMiddleware() is a helper function to dynamically add middleware in your application.","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fadd-route-middleware","4.api\u002F3.utils\u002Fadd-route-middleware",{"title":716,"description":717,"path":718,"stem":719},"callOnce","Run a given function or block of code once during SSR or CSR.","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fcall-once","4.api\u002F3.utils\u002Fcall-once",{"title":721,"description":722,"path":723,"stem":724},"clearError","The clearError composable clears all handled errors.","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-error","4.api\u002F3.utils\u002Fclear-error",{"title":726,"description":727,"path":728,"stem":729},"clearNuxtData","Delete cached data, error status and pending promises of useAsyncData and useFetch.","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":731,"description":732,"path":733,"stem":734},"clearNuxtState","Delete the cached state of useState.","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":736,"description":737,"path":738,"stem":739},"createError","Create an error object with additional metadata.","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fcreate-error","4.api\u002F3.utils\u002Fcreate-error",{"title":741,"description":742,"path":743,"stem":744},"defineLazyHydrationComponent","Define a lazy hydration component with a specific strategy.","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component","4.api\u002F3.utils\u002Fdefine-lazy-hydration-component",{"title":746,"description":747,"path":748,"stem":749},"defineNuxtComponent","defineNuxtComponent() is a helper function for defining type safe components with Options API.","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":751,"description":752,"path":753,"stem":754},"defineNuxtPlugin","defineNuxtPlugin() is a helper function for creating Nuxt plugins.","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":756,"description":757,"path":758,"stem":759},"defineNuxtRouteMiddleware","Create named route middleware using defineNuxtRouteMiddleware helper function.","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware","4.api\u002F3.utils\u002Fdefine-nuxt-route-middleware",{"title":761,"description":762,"path":763,"stem":764},"definePageMeta","Define metadata for your page components.","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-page-meta","4.api\u002F3.utils\u002Fdefine-page-meta",{"title":766,"description":767,"path":768,"stem":769},"defineRouteRules","Define route rules for hybrid rendering at the page level.","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-route-rules","4.api\u002F3.utils\u002Fdefine-route-rules",{"title":771,"description":772,"path":773,"stem":774},"navigateTo","navigateTo is a helper function that programmatically navigates users.","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fnavigate-to","4.api\u002F3.utils\u002Fnavigate-to",{"title":776,"description":777,"path":778,"stem":779},"onBeforeRouteLeave","The onBeforeRouteLeave composable allows registering a route guard within a component.","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-before-route-leave","4.api\u002F3.utils\u002Fon-before-route-leave",{"title":781,"description":782,"path":783,"stem":784},"onBeforeRouteUpdate","The onBeforeRouteUpdate composable allows registering a route guard within a component.","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-before-route-update","4.api\u002F3.utils\u002Fon-before-route-update",{"title":786,"description":787,"path":788,"stem":789},"onNuxtReady","The onNuxtReady composable allows running a callback after your app has finished initializing.","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":791,"description":792,"path":793,"stem":794},"prefetchComponents","Nuxt provides utilities to give you control over prefetching components.","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fprefetch-components","4.api\u002F3.utils\u002Fprefetch-components",{"title":796,"description":797,"path":798,"stem":799},"preloadComponents","Nuxt provides utilities to give you control over preloading components.","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fpreload-components","4.api\u002F3.utils\u002Fpreload-components",{"title":801,"description":802,"path":803,"stem":804},"preloadRouteComponents","preloadRouteComponents allows you to manually preload individual pages in your Nuxt app.","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fpreload-route-components","4.api\u002F3.utils\u002Fpreload-route-components",{"title":806,"description":807,"path":808,"stem":809},"prerenderRoutes","prerenderRoutes hints to Nitro to prerender an additional route.","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fprerender-routes","4.api\u002F3.utils\u002Fprerender-routes",{"title":811,"description":812,"path":813,"stem":814},"refreshCookie","Refresh useCookie values manually when a cookie has changed","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Frefresh-cookie","4.api\u002F3.utils\u002Frefresh-cookie",{"title":816,"description":817,"path":818,"stem":819},"refreshNuxtData","Refresh all or specific asyncData instances in Nuxt","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":821,"description":822,"path":823,"stem":824},"reloadNuxtApp","reloadNuxtApp will perform a hard reload of the page.","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Freload-nuxt-app","4.api\u002F3.utils\u002Freload-nuxt-app",{"title":826,"description":827,"path":828,"stem":829},"setPageLayout","setPageLayout allows you to dynamically change the layout of a page.","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fset-page-layout","4.api\u002F3.utils\u002Fset-page-layout",{"title":831,"description":832,"path":833,"stem":834},"setResponseStatus","setResponseStatus sets the status (and optionally the statusText) of the response.","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fset-response-status","4.api\u002F3.utils\u002Fset-response-status",{"title":836,"description":837,"path":838,"stem":839},"showError","Nuxt provides a quick and simple way to show a full screen error page if needed.","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fshow-error","4.api\u002F3.utils\u002Fshow-error",{"title":841,"description":842,"path":843,"stem":844},"updateAppConfig","Update the App Config at runtime.","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fupdate-app-config","4.api\u002F3.utils\u002Fupdate-app-config",{"title":846,"titleTemplate":847,"icon":848,"path":849,"stem":850,"children":851,"page":106},"CLI","%s · Nuxt CLI","i-lucide-square-terminal","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands","1.overview",[852,856,861,866,871,876,881,886,891,896,901,906,911,916,921,926,931,936],{"title":853,"description":854,"path":855,"stem":850},"Nuxt CLI","The Nuxt CLI runs, builds and inspects your Nuxt application from the command line.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Foverview",{"title":857,"description":858,"path":859,"stem":860},"nuxt add","Add modules to your Nuxt application with the command line.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fadd","add",{"title":862,"description":863,"path":864,"stem":865},"nuxt add-template","Scaffold an entity into your Nuxt application.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fadd-template","add-template",{"title":867,"description":868,"path":869,"stem":870},"nuxt analyze","Analyze the production bundle or your Nuxt application.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fanalyze","analyze",{"title":872,"description":873,"path":874,"stem":875},"nuxt build","Build your Nuxt application.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fbuild","build",{"title":877,"description":878,"path":879,"stem":880},"nuxt build-module","Nuxt command to build your Nuxt module before publishing.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fbuild-module","build-module",{"title":882,"description":883,"path":884,"stem":885},"nuxt cleanup","Remove common generated Nuxt files and caches.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fcleanup","cleanup",{"title":887,"description":888,"path":889,"stem":890},"nuxt dev","The dev command starts a development server with hot module replacement at http:\u002F\u002Flocalhost:3000","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fdev","dev",{"title":892,"description":893,"path":894,"stem":895},"nuxt devtools","The devtools command allows you to enable or disable Nuxt DevTools on a per-project basis.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fdevtools","devtools",{"title":897,"description":898,"path":899,"stem":900},"nuxt generate","Pre-renders every route of the application and stores the result in plain HTML files.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fgenerate","generate",{"title":902,"description":903,"path":904,"stem":905},"nuxt info","The info command logs information about the current or specified Nuxt project.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Finfo","info",{"title":907,"description":908,"path":909,"stem":910},"create nuxt","The init command initializes a fresh Nuxt project.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Finit","init",{"title":912,"description":913,"path":914,"stem":915},"nuxt module","Search and remove modules in your Nuxt application with the command line.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fmodule","module",{"title":917,"description":918,"path":919,"stem":920},"nuxt prepare","The prepare command creates a .nuxt directory in your application and generates types.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fprepare","prepare",{"title":922,"description":923,"path":924,"stem":925},"nuxt preview","The preview command starts a server to preview your application after the build command.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fpreview","preview",{"title":927,"description":928,"path":929,"stem":930},"nuxt test","The test command runs tests using @nuxt\u002Ftest-utils.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Ftest","test",{"title":932,"description":933,"path":934,"stem":935},"nuxt typecheck","The typecheck command runs vue-tsc or Golar to check types throughout your app.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Ftypecheck","typecheck",{"title":937,"description":938,"path":939,"stem":940},"nuxt upgrade","The upgrade command upgrades Nuxt to the latest version.","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fupgrade","upgrade",{"title":430,"titleTemplate":942,"path":943,"stem":944,"children":945,"page":106},"%s · Nuxt Kit","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit","4.api\u002F5.kit\u002F1.modules",[946,949,954,959,963,967,972,977,982,987,992,996,1001,1006,1011,1016,1021,1026],{"title":280,"description":947,"path":948,"stem":944},"Nuxt Kit provides a set of utilities to help you create and use modules. You can use these utilities to create your own modules or to reuse existing modules.","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fmodules",{"title":950,"description":951,"path":952,"stem":953},"Programmatic Usage","Nuxt Kit provides a set of utilities to help you work with Nuxt programmatically. These functions allow you to load Nuxt, build Nuxt, and load Nuxt configuration.","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fprogrammatic","4.api\u002F5.kit\u002F2.programmatic",{"title":955,"description":956,"path":957,"stem":958},"Compatibility","Nuxt Kit provides a set of utilities to help you check the compatibility of your modules with different Nuxt versions.","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcompatibility","4.api\u002F5.kit\u002F3.compatibility",{"title":270,"description":960,"path":961,"stem":962},"Nuxt Kit provides a set of utilities to help you work with auto-imports. These functions allow you to register your own utils, composables and Vue APIs.","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fautoimports","4.api\u002F5.kit\u002F4.autoimports",{"title":466,"description":964,"path":965,"stem":966},"Nuxt Kit provides a set of utilities to help you work with components. You can register components globally or locally, and also add directories to be scanned for components.","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcomponents","4.api\u002F5.kit\u002F5.components",{"title":968,"description":969,"path":970,"stem":971},"Context","Nuxt Kit provides a set of utilities to help you work with context.","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcontext","4.api\u002F5.kit\u002F6.context",{"title":973,"description":974,"path":975,"stem":976},"Pages","Nuxt Kit provides a set of utilities to help you create and use pages. You can use these utilities to manipulate the pages configuration or to define route rules.","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fpages","4.api\u002F5.kit\u002F7.pages",{"title":978,"description":979,"path":980,"stem":981},"Layout","Nuxt Kit provides a set of utilities to help you work with layouts.","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flayout","4.api\u002F5.kit\u002F8.layout",{"title":983,"description":984,"path":985,"stem":986},"Head","Nuxt Kit provides utilities to help you manage head configuration in modules.","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fhead","4.api\u002F5.kit\u002F9.head",{"title":988,"description":989,"path":990,"stem":991},"Plugins","Nuxt Kit provides a set of utilities to help you create and use plugins. You can add plugins or plugin templates to your module using these functions.","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fplugins","4.api\u002F5.kit\u002F9.plugins",{"title":449,"description":993,"path":994,"stem":995},"Nuxt Kit provides a set of utilities to help you access and modify Nuxt runtime configuration.","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fruntime-config","4.api\u002F5.kit\u002F10.runtime-config",{"title":997,"description":998,"path":999,"stem":1000},"Templates","Nuxt Kit provides a set of utilities to help you work with templates. These functions allow you to generate extra files during development and build time.","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Ftemplates","4.api\u002F5.kit\u002F10.templates",{"title":1002,"description":1003,"path":1004,"stem":1005},"Nitro","Nuxt Kit provides a set of utilities to help you work with Nitro. These functions allow you to add server handlers, plugins, and prerender routes.","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fnitro","4.api\u002F5.kit\u002F11.nitro",{"title":1007,"description":1008,"path":1009,"stem":1010},"Resolving","Nuxt Kit provides a set of utilities to help you resolve paths. These functions allow you to resolve paths relative to the current module, with unknown name or extension.","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fresolving","4.api\u002F5.kit\u002F12.resolving",{"title":1012,"description":1013,"path":1014,"stem":1015},"Logging","Nuxt Kit provides a set of utilities to help you work with logging. These functions allow you to log messages with extra features.","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flogging","4.api\u002F5.kit\u002F13.logging",{"title":1017,"description":1018,"path":1019,"stem":1020},"Builder","Nuxt Kit provides a set of utilities to help you work with the builder. These functions allow you to extend the Vite and webpack configurations.","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fbuilder","4.api\u002F5.kit\u002F14.builder",{"title":1022,"description":1023,"path":1024,"stem":1025},"Examples","Examples of Nuxt Kit utilities in use.","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fexamples","4.api\u002F5.kit\u002F15.examples",{"title":82,"description":1027,"path":1028,"stem":1029},"Nuxt Kit provides utilities to help you work with layers and their directory structures.","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flayers","4.api\u002F5.kit\u002F16.layers",{"icon":1031,"title":1032,"path":1033,"stem":1034,"children":1035,"page":106},"i-lucide-brain","Advanced","\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced","4.api\u002F6.advanced\u002F1.hooks",[1036,1038],{"title":425,"description":426,"path":1037,"stem":1034},"\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced\u002Fhooks",{"title":1039,"description":1040,"path":1041,"stem":1042},"Import meta","Understand where your code is running using `import.meta`.","\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced\u002Fimport-meta","4.api\u002F6.advanced\u002F2.import-meta",{"title":1044,"description":1045,"path":1046,"stem":1047},"Nuxt Configuration","Discover all the options you can use in your nuxt.config.ts file.","\u002Fdocs\u002F3.x\u002Fapi\u002Fnuxt-config","4.api\u002F6.nuxt-config",{"title":1022,"titleTemplate":1049,"icon":1050,"path":1051,"stem":1052,"children":1053,"page":106},"%s · Nuxt Examples","i-lucide-app-window-mac","\u002Fdocs\u002Fexamples","0.hello-world",[1054,1058,1084,1101,1145],{"title":1055,"description":1056,"path":1057,"stem":1052},"Hello World","A minimal Nuxt application only requires the `app.vue` and `nuxt.config.js` files.","\u002Fdocs\u002Fexamples\u002Fhello-world",{"title":420,"path":1059,"stem":1060,"children":1061,"page":106},"\u002Fdocs\u002Fexamples\u002Ffeatures","1.features\u002F1.auto-imports",[1062,1066,1070,1074,1079],{"title":1063,"description":1064,"path":1065,"stem":1060},"Auto Imports","This example demonstrates the auto-imports feature in Nuxt.","\u002Fdocs\u002Fexamples\u002Ffeatures\u002Fauto-imports",{"title":62,"description":1067,"path":1068,"stem":1069},"This example demonstrates data fetching with Nuxt using built-in composables and API routes.","\u002Fdocs\u002Fexamples\u002Ffeatures\u002Fdata-fetching","1.features\u002F2.data-fetching",{"title":67,"description":1071,"path":1072,"stem":1073},"This example shows how to use the `useState` composable to create a reactive and SSR-friendly shared state across components.","\u002Fdocs\u002Fexamples\u002Ffeatures\u002Fstate-management","1.features\u002F3.state-management",{"title":1075,"description":1076,"path":1077,"stem":1078},"Meta Tags","This example shows how to use the Nuxt helpers and composables for SEO and meta management.","\u002Fdocs\u002Fexamples\u002Ffeatures\u002Fmeta-tags","1.features\u002F4.meta-tags",{"title":1080,"description":1081,"path":1082,"stem":1083},"Layouts","This example shows how to define default and custom layouts.","\u002Fdocs\u002Fexamples\u002Ffeatures\u002Flayouts","1.features\u002F5.layouts",{"title":47,"path":1085,"stem":1086,"children":1087,"page":106},"\u002Fdocs\u002Fexamples\u002Frouting","2.routing\u002Fmiddleware",[1088,1092,1096],{"title":1089,"description":1090,"path":1091,"stem":1086},"Middleware","This example shows how to add route middleware with the middleware\u002F directory or with a plugin, and how to use them globally or per page.","\u002Fdocs\u002Fexamples\u002Frouting\u002Fmiddleware",{"title":973,"description":1093,"path":1094,"stem":1095},"This example shows how to use the pages\u002F directory to create application routes.","\u002Fdocs\u002Fexamples\u002Frouting\u002Fpages","2.routing\u002Fpages",{"title":1097,"description":1098,"path":1099,"stem":1100},"Universal Router","This example demonstrates Nuxt universal routing utilities without depending on `pages\u002F` and `vue-router`.","\u002Fdocs\u002Fexamples\u002Frouting\u002Funiversal-router","2.routing\u002Funiversal-router",{"title":1032,"path":1102,"stem":1103,"children":1104,"page":106},"\u002Fdocs\u002Fexamples\u002Fadvanced","4.advanced\u002Fconfig-extends",[1105,1108,1112,1117,1122,1127,1132,1136,1140],{"title":82,"description":1106,"path":1107,"stem":1103},"This example shows how to use the extends key in `nuxt.config.ts`.","\u002Fdocs\u002Fexamples\u002Fadvanced\u002Fconfig-extends",{"title":72,"description":1109,"path":1110,"stem":1111},"This example shows how to handle errors in different contexts: pages, plugins, components and middleware.","\u002Fdocs\u002Fexamples\u002Fadvanced\u002Ferror-handling","4.advanced\u002Ferror-handling",{"title":1113,"description":1114,"path":1115,"stem":1116},"JSX \u002F TSX","This example shows how to use JSX syntax with typescript in Nuxt pages and components.","\u002Fdocs\u002Fexamples\u002Fadvanced\u002Fjsx","4.advanced\u002Fjsx",{"title":1118,"description":1119,"path":1120,"stem":1121},"Locale","This example shows how to define a locale composable to handle the application's locale, both server and client side.","\u002Fdocs\u002Fexamples\u002Fadvanced\u002Flocale","4.advanced\u002Flocale",{"title":1123,"description":1124,"path":1125,"stem":1126},"Module Extend Pages","This example defines a new `test` page using `extendPages` within a module.","\u002Fdocs\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","4.advanced\u002Fmodule-extend-pages",{"title":1128,"description":1129,"path":1130,"stem":1131},"Teleport","This example shows how to use the \u003CTeleport> with client-side and server-side rendering.","\u002Fdocs\u002Fexamples\u002Fadvanced\u002Fteleport","4.advanced\u002Fteleport",{"title":97,"description":1133,"path":1134,"stem":1135},"This example shows how to test your Nuxt application.","\u002Fdocs\u002Fexamples\u002Fadvanced\u002Ftesting","4.advanced\u002Ftesting",{"title":566,"description":1137,"path":1138,"stem":1139},"This example shows how to use the useCookie API to persist small amounts of data that both client and server can use.","\u002Fdocs\u002Fexamples\u002Fadvanced\u002Fuse-cookie","4.advanced\u002Fuse-cookie",{"title":1141,"description":1142,"path":1143,"stem":1144},"Use Custom Fetch Composable","This example shows a convenient wrapper for the useFetch composable from nuxt. It allows you to customize the fetch request with default values and user authentication token.","\u002Fdocs\u002Fexamples\u002Fadvanced\u002Fuse-custom-fetch-composable","4.advanced\u002Fuse-custom-fetch-composable",{"title":1146,"path":1147,"stem":1148,"children":1149,"page":106},"Experimental","\u002Fdocs\u002Fexamples\u002Fexperimental","7.experimental\u002Fwasm",[1150],{"title":1151,"description":1152,"path":1153,"stem":1148},"WASM","This example demonstrates the server-side support of WebAssembly in Nuxt.","\u002Fdocs\u002Fexamples\u002Fexperimental\u002Fwasm",{"title":1155,"titleTemplate":1156,"icon":1157,"path":1158,"stem":1159,"children":1160,"page":106},"Community","%s · Nuxt Community","i-lucide-messages-square","\u002Fdocs\u002F3.x\u002Fcommunity","5.community\u002F2.getting-help",[1161,1166,1171,1176,1181,1186],{"title":1162,"description":1163,"path":1164,"stem":1159,"icon":1165},"Getting Help","We're a friendly community of developers and we'd love to help.","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fgetting-help","i-lucide-life-buoy",{"title":1167,"description":1168,"path":1169,"stem":1170},"Reporting Bugs","One of the most valuable roles in open source is taking the time to report bugs helpfully.","\u002Fdocs\u002F3.x\u002Fcommunity\u002Freporting-bugs","5.community\u002F3.reporting-bugs",{"title":1172,"description":1173,"path":1174,"stem":1175},"Contribution","Nuxt is a community project - and so we love contributions of all kinds! ❤️","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fcontribution","5.community\u002F4.contribution",{"title":1177,"description":1178,"path":1179,"stem":1180},"Framework","Some specific points about contributions to the framework repository.","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fframework-contribution","5.community\u002F5.framework-contribution",{"title":1182,"description":1183,"path":1184,"stem":1185},"Roadmap","Nuxt is constantly evolving, with new features and modules being added all the time.","\u002Fdocs\u002F3.x\u002Fcommunity\u002Froadmap","5.community\u002F6.roadmap",{"title":1187,"description":1188,"path":1189,"stem":1190},"Releases","Discover the latest releases of Nuxt & Nuxt official modules.","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fchangelog","5.community\u002F7.changelog",{"title":1192,"titleTemplate":1193,"icon":1194,"path":1195,"stem":1196,"children":1197,"page":106},"Migrate to Nuxt Bridge","Migrate to Nuxt Bridge: %s","i-lucide-ship","\u002Fdocs\u002F3.x\u002Fbridge","6.bridge\u002F1.overview",[1198,1202,1206,1211,1216,1221,1225,1228,1232,1237],{"title":1199,"description":1200,"path":1201,"stem":1196},"Overview","Reduce the differences with Nuxt 3 and reduce the burden of migration to Nuxt 3.","\u002Fdocs\u002F3.x\u002Fbridge\u002Foverview",{"title":285,"description":1203,"path":1204,"stem":1205},"Learn how to use TypeScript with Nuxt Bridge.","\u002Fdocs\u002F3.x\u002Fbridge\u002Ftypescript","6.bridge\u002F2.typescript",{"title":1207,"description":1208,"path":1209,"stem":1210},"Legacy Composition API","Learn how to migrate to Composition API with Nuxt Bridge.","\u002Fdocs\u002F3.x\u002Fbridge\u002Fbridge-composition-api","6.bridge\u002F3.bridge-composition-api",{"title":1212,"description":1213,"path":1214,"stem":1215},"Plugins and Middleware","Learn how to migrate from Nuxt 2 to Nuxt Bridge new plugins and middleware.","\u002Fdocs\u002F3.x\u002Fbridge\u002Fplugins-and-middleware","6.bridge\u002F4.plugins-and-middleware",{"title":1217,"description":1218,"path":1219,"stem":1220},"New Composition API","Nuxt Bridge implements composables compatible with Nuxt 3.","\u002Fdocs\u002F3.x\u002Fbridge\u002Fnuxt3-compatible-api","6.bridge\u002F5.nuxt3-compatible-api",{"title":1075,"description":1222,"path":1223,"stem":1224},"Learn how to migrate from Nuxt 2 to Nuxt Bridge new meta tags.","\u002Fdocs\u002F3.x\u002Fbridge\u002Fmeta","6.bridge\u002F6.meta",{"title":449,"description":450,"path":1226,"stem":1227},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fruntime-config","6.bridge\u002F7.runtime-config",{"title":1002,"description":1229,"path":1230,"stem":1231},"Activate Nitro to your Nuxt 2 application with Nuxt Bridge.","\u002Fdocs\u002F3.x\u002Fbridge\u002Fnitro","6.bridge\u002F8.nitro",{"title":1233,"description":1234,"path":1235,"stem":1236},"Vite","Activate Vite to your Nuxt 2 application with Nuxt Bridge.","\u002Fdocs\u002F3.x\u002Fbridge\u002Fvite","6.bridge\u002F9.vite",{"title":27,"description":1238,"path":1239,"stem":1240},"Learn how to configure Nuxt Bridge to your own needs.","\u002Fdocs\u002F3.x\u002Fbridge\u002Fconfiguration","6.bridge\u002F10.configuration",{"title":1242,"titleTemplate":1243,"icon":1244,"path":1245,"stem":1246,"children":1247,"page":106},"Migrate to Nuxt 3","Migrate to Nuxt 3: %s","i-lucide-circle-arrow-up","\u002Fdocs\u002F3.x\u002Fmigration","7.migration\u002F1.overview",[1248,1251,1255,1259,1263,1267,1272,1277,1281,1286,1290],{"title":1199,"description":1249,"path":1250,"stem":1246},"Nuxt 3 is a complete rewrite of Nuxt 2, and also based on a new set of underlying technologies.","\u002Fdocs\u002F3.x\u002Fmigration\u002Foverview",{"title":27,"description":1252,"path":1253,"stem":1254},"Learn how to migrate from Nuxt 2 to Nuxt 3 new configuration.","\u002Fdocs\u002F3.x\u002Fmigration\u002Fconfiguration","7.migration\u002F2.configuration",{"title":1063,"description":1256,"path":1257,"stem":1258},"Nuxt 3 adopts a minimal friction approach, meaning wherever possible components and composables are auto-imported.","\u002Fdocs\u002F3.x\u002Fmigration\u002Fauto-imports","7.migration\u002F3.auto-imports",{"title":1075,"description":1260,"path":1261,"stem":1262},"Manage your meta tags, from Nuxt 2 to Nuxt 3.","\u002Fdocs\u002F3.x\u002Fmigration\u002Fmeta","7.migration\u002F4.meta",{"title":1212,"description":1264,"path":1265,"stem":1266},"Learn how to migrate from Nuxt 2 to Nuxt 3 plugins and middleware.","\u002Fdocs\u002F3.x\u002Fmigration\u002Fplugins-and-middleware","7.migration\u002F5.plugins-and-middleware",{"title":1268,"description":1269,"path":1270,"stem":1271},"Pages and Layouts","Learn how to migrate from Nuxt 2 to Nuxt 3 pages and layouts.","\u002Fdocs\u002F3.x\u002Fmigration\u002Fpages-and-layouts","7.migration\u002F6.pages-and-layouts",{"title":1273,"description":1274,"path":1275,"stem":1276},"Component Options","Learn how to migrate from Nuxt 2 components options to Nuxt 3 composables.","\u002Fdocs\u002F3.x\u002Fmigration\u002Fcomponent-options","7.migration\u002F7.component-options",{"title":449,"description":1278,"path":1279,"stem":1280},"Learn how to migrate from Nuxt 2 to Nuxt 3 runtime config.","\u002Fdocs\u002F3.x\u002Fmigration\u002Fruntime-config","7.migration\u002F8.runtime-config",{"title":1282,"description":1283,"path":1284,"stem":1285},"Build Tooling","Learn how to migrate from Nuxt 2 to Nuxt 3 build tooling.","\u002Fdocs\u002F3.x\u002Fmigration\u002Fbundling","7.migration\u002F10.bundling",{"title":77,"description":1287,"path":1288,"stem":1289},"Learn how to migrate from Nuxt 2 to Nuxt 3 server.","\u002Fdocs\u002F3.x\u002Fmigration\u002Fserver","7.migration\u002F11.server",{"title":280,"description":1291,"path":1292,"stem":1293},"Learn how to migrate from Nuxt 2 to Nuxt 3 modules.","\u002Fdocs\u002F3.x\u002Fmigration\u002Fmodule-authors","7.migration\u002F20.module-authors",{"description":1295,"path":1296,"stem":1297},"Documentation for Nuxt in raw markdown","\u002Fdocs\u002F3.x\u002Fpackage","package",{"title":5,"icon":6,"path":1299,"stem":8,"children":1300,"page":106},"\u002Fdocs\u002F4.x",[1301,1340,1417,1532,1814,1843,1858,1881,1906],{"title":11,"titleTemplate":12,"icon":13,"path":1302,"stem":8,"children":1303,"page":106},"\u002Fdocs\u002F4.x\u002Fgetting-started",[1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,1328,1330,1332,1334,1336,1338],{"title":17,"description":18,"path":1305,"stem":8,"icon":20},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fintroduction",{"title":22,"description":23,"path":1307,"stem":25},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Finstallation",{"title":27,"description":28,"path":1309,"stem":30},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fconfiguration",{"title":32,"description":33,"path":1311,"stem":35},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fviews",{"title":37,"description":38,"path":1313,"stem":40},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fassets",{"title":42,"description":43,"path":1315,"stem":45},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fstyling",{"title":47,"description":48,"path":1317,"stem":50},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Frouting",{"title":52,"description":53,"path":1319,"stem":55},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fseo-meta",{"title":57,"description":58,"path":1321,"stem":60},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ftransitions",{"title":62,"description":63,"path":1323,"stem":65},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fdata-fetching",{"title":67,"description":68,"path":1325,"stem":70},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fstate-management",{"title":72,"description":73,"path":1327,"stem":75},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ferror-handling",{"title":77,"description":78,"path":1329,"stem":80},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fserver",{"title":82,"description":83,"path":1331,"stem":85},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Flayers",{"title":87,"description":88,"path":1333,"stem":90},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fprerendering",{"title":92,"description":93,"path":1335,"stem":95},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fdeployment",{"title":97,"description":98,"path":1337,"stem":100},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ftesting",{"title":102,"description":103,"path":1339,"stem":105},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fupgrade",{"title":108,"titleTemplate":109,"icon":110,"path":1341,"stem":112,"children":1342,"page":106},"\u002Fdocs\u002F4.x\u002Fdirectory-structure",[1343,1345,1347,1385,1387,1389,1391,1393,1395,1397,1399,1403,1405,1407,1409,1411,1413,1415],{"title":115,"description":116,"path":1344,"stem":112},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxt",{"title":119,"description":120,"path":1346,"stem":122},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Foutput",{"title":1348,"titleTemplate":109,"icon":1349,"path":1350,"stem":1351,"children":1352,"page":106},"app","i-vscode-icons-folder-type-app","\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp","2.directory-structure\u002F1.app\u002F1.assets",[1353,1355,1358,1361,1364,1367,1370,1373,1376,1379,1382],{"title":124,"description":125,"path":1354,"stem":1351},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fassets",{"title":129,"description":130,"path":1356,"stem":1357},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fcomponents","2.directory-structure\u002F1.app\u002F1.components",{"title":134,"description":135,"path":1359,"stem":1360},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fcomposables","2.directory-structure\u002F1.app\u002F1.composables",{"title":149,"description":150,"path":1362,"stem":1363},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Flayouts","2.directory-structure\u002F1.app\u002F1.layouts",{"title":154,"description":155,"path":1365,"stem":1366},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fmiddleware","2.directory-structure\u002F1.app\u002F1.middleware",{"title":169,"description":170,"path":1368,"stem":1369},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fpages","2.directory-structure\u002F1.app\u002F1.pages",{"title":174,"description":175,"path":1371,"stem":1372},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fplugins","2.directory-structure\u002F1.app\u002F1.plugins",{"title":194,"description":195,"path":1374,"stem":1375},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Futils","2.directory-structure\u002F1.app\u002F1.utils",{"title":219,"description":220,"path":1377,"stem":1378},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fapp","2.directory-structure\u002F1.app\u002F3.app",{"title":224,"description":225,"path":1380,"stem":1381},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fapp-config","2.directory-structure\u002F1.app\u002F3.app-config",{"title":229,"description":230,"path":1383,"stem":1384},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Ferror","2.directory-structure\u002F1.app\u002F3.error",{"title":139,"description":140,"path":1386,"stem":142},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fcontent",{"title":144,"description":145,"path":1388,"stem":147},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Flayers",{"title":159,"description":160,"path":1390,"stem":162},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fmodules",{"title":164,"description":165,"path":1392,"stem":167},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnode_modules",{"title":179,"description":180,"path":1394,"stem":182},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fpublic",{"title":184,"description":185,"path":1396,"stem":187},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fserver",{"title":189,"description":190,"path":1398,"stem":192},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fshared",{"title":930,"description":1400,"path":1401,"stem":1402},"Use the test\u002F directory to organize unit, Nuxt, and end-to-end tests for your application.","\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Ftest","2.directory-structure\u002F1.test",{"title":199,"description":200,"path":1404,"stem":202},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fenv",{"title":204,"description":205,"path":1406,"stem":207},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fgitignore",{"title":209,"description":210,"path":1408,"stem":212},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxtignore",{"title":214,"description":215,"path":1410,"stem":217},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxtrc",{"title":234,"description":235,"path":1412,"stem":237},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxt-config",{"title":239,"description":240,"path":1414,"stem":242},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fpackage",{"title":244,"description":245,"path":1416,"stem":247},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Ftsconfig",{"title":249,"icon":250,"path":1418,"stem":252,"children":1419,"page":106},"\u002Fdocs\u002F4.x\u002Fguide",[1420,1442,1462,1469,1488,1504],{"title":255,"titleTemplate":256,"icon":257,"path":1421,"stem":252,"children":1422,"page":106},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts",[1423,1425,1427,1429,1431,1433,1438,1440],{"title":261,"description":262,"path":1424,"stem":252},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Frendering",{"title":265,"description":266,"path":1426,"stem":268},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle",{"title":270,"description":271,"path":1428,"stem":273},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fauto-imports",{"title":275,"description":276,"path":1430,"stem":278},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fserver-engine",{"title":280,"description":281,"path":1432,"stem":283},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fmodules",{"title":1434,"description":1435,"path":1436,"stem":1437},"Server Components","Render individual components on the server only, keeping their JavaScript out of your client bundle.","\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fserver-components","3.guide\u002F1.concepts\u002F6.server-components",{"title":285,"description":286,"path":1439,"stem":288},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Ftypescript",{"title":290,"description":291,"path":1441,"stem":293},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fcode-style",{"title":295,"titleTemplate":296,"icon":297,"path":1443,"stem":1444,"children":1445,"page":106},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices","3.guide\u002F2.best-practices\u002Faccessibility",[1446,1450,1455,1458,1460],{"title":1447,"description":1448,"path":1449,"stem":1444},"Nuxt accessibility","Best practices for accessibility in Nuxt apps.","\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Faccessibility",{"title":1451,"description":1452,"path":1453,"stem":1454},"Dev Containers","Set up or open a Nuxt project in a dev container for a consistent development environment.","\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fdevcontainers","3.guide\u002F2.best-practices\u002Fdevcontainers",{"title":1456,"description":303,"path":1457,"stem":299},"Nuxt and Hydration","\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fhydration",{"title":306,"description":307,"path":1459,"stem":309},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fperformance",{"title":311,"description":312,"path":1461,"stem":314},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fplugins",{"title":316,"titleTemplate":317,"icon":318,"path":1463,"stem":320,"children":1464,"page":106},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai",[1465,1467],{"title":323,"description":324,"path":1466,"stem":320},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai\u002Fmcp",{"title":327,"description":328,"path":1468,"stem":330},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai\u002Fllms-txt",{"title":332,"titleTemplate":333,"icon":334,"path":1470,"stem":336,"children":1471,"page":106},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules",[1472,1474,1476,1478,1480,1482,1484,1486],{"title":339,"description":340,"path":1473,"stem":336},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fgetting-started",{"title":343,"description":344,"path":1475,"stem":346},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy",{"title":348,"description":349,"path":1477,"stem":351},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Frecipes-basics",{"title":353,"description":354,"path":1479,"stem":356},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fmodule-dependencies",{"title":358,"description":359,"path":1481,"stem":361},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Frecipes-advanced",{"title":363,"description":364,"path":1483,"stem":366},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Ftesting",{"title":368,"description":369,"path":1485,"stem":371},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fbest-practices",{"title":373,"description":374,"path":1487,"stem":376},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fecosystem",{"title":378,"titleTemplate":379,"icon":380,"path":1489,"stem":382,"children":1490,"page":106},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes",[1491,1493,1495,1497,1499],{"title":385,"description":386,"path":1492,"stem":382},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fcustom-routing",{"title":389,"description":390,"path":1494,"stem":392},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fvite-plugin",{"title":394,"description":395,"path":1496,"stem":397},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch",{"title":399,"description":400,"path":1498,"stem":402},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication",{"title":1500,"description":1501,"path":1502,"stem":1503},"Mostly-Static Sites","Ship near-zero JavaScript for content and marketing sites while keeping islands of interactivity.","\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fmostly-static-sites","3.guide\u002F5.recipes\u002F5.mostly-static-sites",{"title":404,"titleTemplate":405,"icon":406,"path":1505,"stem":408,"children":1506,"page":106},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further",[1507,1509,1511,1513,1515,1517,1519,1521,1526,1528,1530],{"title":411,"description":412,"path":1508,"stem":408},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fevents",{"title":415,"description":416,"path":1510,"stem":418},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features",{"title":420,"description":421,"path":1512,"stem":423},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Ffeatures",{"title":425,"description":426,"path":1514,"stem":428},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fhooks",{"title":430,"description":431,"path":1516,"stem":433},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fkit",{"title":435,"description":436,"path":1518,"stem":438},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app",{"title":440,"description":83,"path":1520,"stem":442},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Flayers",{"title":1522,"description":1523,"path":1524,"stem":1525},"Creating a Builder","Learn how Nuxt builders work and how to author your own.","\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fbuilders","3.guide\u002F6.going-further\u002F8.builders",{"title":444,"description":445,"path":1527,"stem":447},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fdebugging",{"title":449,"description":450,"path":1529,"stem":452},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fruntime-config",{"title":454,"description":455,"path":1531,"stem":457},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fnightly-release-channel",{"title":459,"titleTemplate":460,"icon":461,"path":1533,"stem":463,"children":1534,"page":106},"\u002Fdocs\u002F4.x\u002Fapi",[1535,1573,1654,1715,1754,1805,1812],{"title":466,"titleTemplate":467,"icon":334,"path":1536,"stem":463,"children":1537,"page":106},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents",[1538,1540,1542,1544,1546,1548,1550,1552,1554,1556,1558,1560,1562,1564,1566,1568],{"title":471,"description":472,"path":1539,"stem":463},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fclient-only",{"title":475,"description":476,"path":1541,"stem":478},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fdev-only",{"title":480,"description":481,"path":1543,"stem":483},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback",{"title":485,"description":486,"path":1545,"stem":488},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-page",{"title":490,"description":491,"path":1547,"stem":493},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout",{"title":495,"description":496,"path":1549,"stem":498},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-link",{"title":500,"description":501,"path":1551,"stem":503},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator",{"title":505,"description":506,"path":1553,"stem":508},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary",{"title":510,"description":511,"path":1555,"stem":513},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome",{"title":515,"description":516,"path":1557,"stem":518},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-island",{"title":520,"description":521,"path":1559,"stem":523},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-img",{"title":525,"description":526,"path":1561,"stem":528},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture",{"title":530,"description":531,"path":1563,"stem":533},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fteleports",{"title":535,"description":536,"path":1565,"stem":538},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer",{"title":540,"description":541,"path":1567,"stem":543},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-time",{"title":1569,"description":1570,"path":1571,"stem":1572},"\u003CNuxtAnnouncer>","The \u003CNuxtAnnouncer> component adds a hidden element to announce dynamic content changes to assistive technologies.","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-announcer","4.api\u002F1.components\u002F14.nuxt-announcer",{"title":545,"titleTemplate":546,"icon":547,"path":1574,"stem":1575,"children":1576,"page":106},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables","4.api\u002F2.composables\u002Fcreate-use-async-data",[1577,1581,1586,1588,1593,1595,1597,1599,1601,1603,1605,1607,1609,1614,1616,1618,1620,1622,1624,1626,1628,1630,1632,1634,1636,1638,1640,1642,1644,1646,1648,1650,1652],{"title":1578,"description":1579,"path":1580,"stem":1575},"createUseAsyncData","A factory function to create a custom useAsyncData composable with pre-defined default options.","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fcreate-use-async-data",{"title":1582,"description":1583,"path":1584,"stem":1585},"createUseFetch","A factory function to create a custom useFetch composable with pre-defined default options.","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fcreate-use-fetch","4.api\u002F2.composables\u002Fcreate-use-fetch",{"title":552,"description":553,"path":1587,"stem":549},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate",{"title":1589,"description":1590,"path":1591,"stem":1592},"useAnnouncer","A composable for announcing messages to screen readers.","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-announcer","4.api\u002F2.composables\u002Fuse-announcer",{"title":556,"description":557,"path":1594,"stem":559},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-app-config",{"title":561,"description":562,"path":1596,"stem":564},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-async-data",{"title":566,"description":567,"path":1598,"stem":569},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-cookie",{"title":571,"description":572,"path":1600,"stem":574},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-error",{"title":576,"description":577,"path":1602,"stem":579},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-fetch",{"title":581,"description":582,"path":1604,"stem":584},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-head",{"title":586,"description":587,"path":1606,"stem":589},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe",{"title":591,"description":592,"path":1608,"stem":594},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-hydration",{"title":1610,"description":1611,"path":1612,"stem":1613},"useLayout","useLayout returns the layout resolved for the current route.","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-layout","4.api\u002F2.composables\u002Fuse-layout",{"title":596,"description":597,"path":1615,"stem":599},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data",{"title":601,"description":602,"path":1617,"stem":604},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch",{"title":606,"description":607,"path":1619,"stem":609},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator",{"title":611,"description":612,"path":1621,"stem":614},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app",{"title":616,"description":617,"path":1623,"stem":619},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data",{"title":621,"description":622,"path":1625,"stem":624},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode",{"title":626,"description":627,"path":1627,"stem":629},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-event",{"title":631,"description":632,"path":1629,"stem":634},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch",{"title":636,"description":637,"path":1631,"stem":639},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-header",{"title":641,"description":642,"path":1633,"stem":644},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers",{"title":646,"description":647,"path":1635,"stem":649},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-url",{"title":651,"description":652,"path":1637,"stem":654},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-response-header",{"title":656,"description":657,"path":1639,"stem":659},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-route",{"title":661,"description":662,"path":1641,"stem":664},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer",{"title":666,"description":667,"path":1643,"stem":669},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-router",{"title":671,"description":672,"path":1645,"stem":674},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config",{"title":676,"description":677,"path":1647,"stem":679},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook",{"title":681,"description":682,"path":1649,"stem":684},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta",{"title":686,"description":687,"path":1651,"stem":689},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta",{"title":691,"description":692,"path":1653,"stem":694},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-state",{"title":696,"titleTemplate":697,"path":1655,"stem":699,"children":1656,"page":106},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils",[1657,1659,1661,1663,1665,1667,1669,1671,1673,1675,1677,1679,1681,1683,1685,1687,1689,1691,1693,1695,1697,1699,1701,1703,1705,1707,1709,1711,1713],{"title":702,"description":703,"path":1658,"stem":699},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdollarfetch",{"title":706,"description":707,"path":1660,"stem":709},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fabort-navigation",{"title":711,"description":712,"path":1662,"stem":714},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fadd-route-middleware",{"title":716,"description":717,"path":1664,"stem":719},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fcall-once",{"title":721,"description":722,"path":1666,"stem":724},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-error",{"title":726,"description":727,"path":1668,"stem":729},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-nuxt-data",{"title":731,"description":732,"path":1670,"stem":734},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-nuxt-state",{"title":736,"description":737,"path":1672,"stem":739},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fcreate-error",{"title":741,"description":742,"path":1674,"stem":744},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component",{"title":746,"description":747,"path":1676,"stem":749},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component",{"title":751,"description":752,"path":1678,"stem":754},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin",{"title":756,"description":757,"path":1680,"stem":759},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware",{"title":761,"description":762,"path":1682,"stem":764},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-page-meta",{"title":766,"description":767,"path":1684,"stem":769},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-route-rules",{"title":771,"description":772,"path":1686,"stem":774},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fnavigate-to",{"title":776,"description":777,"path":1688,"stem":779},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-before-route-leave",{"title":781,"description":782,"path":1690,"stem":784},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-before-route-update",{"title":786,"description":787,"path":1692,"stem":789},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-nuxt-ready",{"title":791,"description":792,"path":1694,"stem":794},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fprefetch-components",{"title":796,"description":797,"path":1696,"stem":799},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fpreload-components",{"title":801,"description":802,"path":1698,"stem":804},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fpreload-route-components",{"title":806,"description":807,"path":1700,"stem":809},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fprerender-routes",{"title":811,"description":812,"path":1702,"stem":814},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Frefresh-cookie",{"title":816,"description":817,"path":1704,"stem":819},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data",{"title":821,"description":822,"path":1706,"stem":824},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Freload-nuxt-app",{"title":826,"description":827,"path":1708,"stem":829},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fset-page-layout",{"title":831,"description":832,"path":1710,"stem":834},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fset-response-status",{"title":836,"description":837,"path":1712,"stem":839},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fshow-error",{"title":841,"description":842,"path":1714,"stem":844},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fupdate-app-config",{"title":846,"titleTemplate":847,"icon":848,"path":1716,"stem":850,"children":1717,"page":106},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands",[1718,1720,1722,1724,1726,1728,1730,1732,1734,1736,1738,1740,1742,1744,1746,1748,1750,1752],{"title":853,"description":854,"path":1719,"stem":850},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Foverview",{"title":857,"description":858,"path":1721,"stem":860},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fadd",{"title":862,"description":863,"path":1723,"stem":865},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fadd-template",{"title":867,"description":868,"path":1725,"stem":870},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fanalyze",{"title":872,"description":873,"path":1727,"stem":875},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fbuild",{"title":877,"description":878,"path":1729,"stem":880},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fbuild-module",{"title":882,"description":883,"path":1731,"stem":885},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fcleanup",{"title":887,"description":888,"path":1733,"stem":890},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fdev",{"title":892,"description":893,"path":1735,"stem":895},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fdevtools",{"title":897,"description":898,"path":1737,"stem":900},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fgenerate",{"title":902,"description":903,"path":1739,"stem":905},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Finfo",{"title":907,"description":908,"path":1741,"stem":910},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Finit",{"title":912,"description":913,"path":1743,"stem":915},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fmodule",{"title":917,"description":918,"path":1745,"stem":920},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fprepare",{"title":922,"description":923,"path":1747,"stem":925},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fpreview",{"title":927,"description":928,"path":1749,"stem":930},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Ftest",{"title":932,"description":933,"path":1751,"stem":935},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Ftypecheck",{"title":937,"description":938,"path":1753,"stem":940},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fupgrade",{"title":430,"titleTemplate":942,"path":1755,"stem":944,"children":1756,"page":106},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit",[1757,1759,1761,1763,1765,1767,1769,1771,1773,1775,1777,1779,1781,1786,1789,1793,1796,1799,1802],{"title":280,"description":947,"path":1758,"stem":944},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fmodules",{"title":950,"description":951,"path":1760,"stem":953},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fprogrammatic",{"title":955,"description":956,"path":1762,"stem":958},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcompatibility",{"title":270,"description":960,"path":1764,"stem":962},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fautoimports",{"title":466,"description":964,"path":1766,"stem":966},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcomponents",{"title":968,"description":969,"path":1768,"stem":971},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcontext",{"title":973,"description":974,"path":1770,"stem":976},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fpages",{"title":978,"description":979,"path":1772,"stem":981},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flayout",{"title":983,"description":984,"path":1774,"stem":986},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fhead",{"title":988,"description":989,"path":1776,"stem":991},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fplugins",{"title":449,"description":993,"path":1778,"stem":995},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fruntime-config",{"title":997,"description":998,"path":1780,"stem":1000},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Ftemplates",{"title":1782,"description":1783,"path":1784,"stem":1785},"App Config","Nuxt Kit provides a set of utilities to help you access and modify Nuxt app configuration.","\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fapp-config","4.api\u002F5.kit\u002F11.app-config",{"title":1002,"description":1003,"path":1787,"stem":1788},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fnitro","4.api\u002F5.kit\u002F12.nitro",{"title":1007,"description":1790,"path":1791,"stem":1792},"Nuxt Kit provides utilities to resolve paths from the Nuxt root directory or a custom base.","\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fresolving","4.api\u002F5.kit\u002F13.resolving",{"title":1012,"description":1013,"path":1794,"stem":1795},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flogging","4.api\u002F5.kit\u002F14.logging",{"title":1017,"description":1018,"path":1797,"stem":1798},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fbuilder","4.api\u002F5.kit\u002F15.builder",{"title":1022,"description":1023,"path":1800,"stem":1801},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fexamples","4.api\u002F5.kit\u002F16.examples",{"title":82,"description":1027,"path":1803,"stem":1804},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flayers","4.api\u002F5.kit\u002F17.layers",{"icon":1031,"title":1032,"path":1806,"stem":1034,"children":1807,"page":106},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced",[1808,1810],{"title":425,"description":426,"path":1809,"stem":1034},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced\u002Fhooks",{"title":1039,"description":1040,"path":1811,"stem":1042},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced\u002Fimport-meta",{"title":1044,"description":1045,"path":1813,"stem":1047},"\u002Fdocs\u002F4.x\u002Fapi\u002Fnuxt-config",{"title":1022,"titleTemplate":1049,"icon":1050,"path":1051,"stem":1052,"children":1815,"page":106},[1816,1817,1824,1829,1840],{"title":1055,"description":1056,"path":1057,"stem":1052},{"title":420,"path":1059,"stem":1060,"children":1818,"page":106},[1819,1820,1821,1822,1823],{"title":1063,"description":1064,"path":1065,"stem":1060},{"title":62,"description":1067,"path":1068,"stem":1069},{"title":67,"description":1071,"path":1072,"stem":1073},{"title":1075,"description":1076,"path":1077,"stem":1078},{"title":1080,"description":1081,"path":1082,"stem":1083},{"title":47,"path":1085,"stem":1086,"children":1825,"page":106},[1826,1827,1828],{"title":1089,"description":1090,"path":1091,"stem":1086},{"title":973,"description":1093,"path":1094,"stem":1095},{"title":1097,"description":1098,"path":1099,"stem":1100},{"title":1032,"path":1102,"stem":1103,"children":1830,"page":106},[1831,1832,1833,1834,1835,1836,1837,1838,1839],{"title":82,"description":1106,"path":1107,"stem":1103},{"title":72,"description":1109,"path":1110,"stem":1111},{"title":1113,"description":1114,"path":1115,"stem":1116},{"title":1118,"description":1119,"path":1120,"stem":1121},{"title":1123,"description":1124,"path":1125,"stem":1126},{"title":1128,"description":1129,"path":1130,"stem":1131},{"title":97,"description":1133,"path":1134,"stem":1135},{"title":566,"description":1137,"path":1138,"stem":1139},{"title":1141,"description":1142,"path":1143,"stem":1144},{"title":1146,"path":1147,"stem":1148,"children":1841,"page":106},[1842],{"title":1151,"description":1152,"path":1153,"stem":1148},{"title":1155,"titleTemplate":1156,"icon":1157,"path":1844,"stem":1159,"children":1845,"page":106},"\u002Fdocs\u002F4.x\u002Fcommunity",[1846,1848,1850,1852,1854,1856],{"title":1162,"description":1163,"path":1847,"stem":1159,"icon":1165},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fgetting-help",{"title":1167,"description":1168,"path":1849,"stem":1170},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Freporting-bugs",{"title":1172,"description":1173,"path":1851,"stem":1175},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fcontribution",{"title":1177,"description":1178,"path":1853,"stem":1180},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fframework-contribution",{"title":1182,"description":1183,"path":1855,"stem":1185},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Froadmap",{"title":1187,"description":1188,"path":1857,"stem":1190},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fchangelog",{"title":1192,"titleTemplate":1193,"icon":1194,"path":1859,"stem":1196,"children":1860,"page":106},"\u002Fdocs\u002F4.x\u002Fbridge",[1861,1863,1865,1867,1869,1871,1873,1875,1877,1879],{"title":1199,"description":1200,"path":1862,"stem":1196},"\u002Fdocs\u002F4.x\u002Fbridge\u002Foverview",{"title":285,"description":1203,"path":1864,"stem":1205},"\u002Fdocs\u002F4.x\u002Fbridge\u002Ftypescript",{"title":1207,"description":1208,"path":1866,"stem":1210},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fbridge-composition-api",{"title":1212,"description":1213,"path":1868,"stem":1215},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fplugins-and-middleware",{"title":1217,"description":1218,"path":1870,"stem":1220},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fnuxt3-compatible-api",{"title":1075,"description":1222,"path":1872,"stem":1224},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fmeta",{"title":449,"description":450,"path":1874,"stem":1227},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fruntime-config",{"title":1002,"description":1229,"path":1876,"stem":1231},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fnitro",{"title":1233,"description":1234,"path":1878,"stem":1236},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fvite",{"title":27,"description":1238,"path":1880,"stem":1240},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fconfiguration",{"title":1242,"titleTemplate":1243,"icon":1244,"path":1882,"stem":1246,"children":1883,"page":106},"\u002Fdocs\u002F4.x\u002Fmigration",[1884,1886,1888,1890,1892,1894,1896,1898,1900,1902,1904],{"title":1199,"description":1249,"path":1885,"stem":1246},"\u002Fdocs\u002F4.x\u002Fmigration\u002Foverview",{"title":27,"description":1252,"path":1887,"stem":1254},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fconfiguration",{"title":1063,"description":1256,"path":1889,"stem":1258},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fauto-imports",{"title":1075,"description":1260,"path":1891,"stem":1262},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fmeta",{"title":1212,"description":1264,"path":1893,"stem":1266},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fplugins-and-middleware",{"title":1268,"description":1269,"path":1895,"stem":1271},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fpages-and-layouts",{"title":1273,"description":1274,"path":1897,"stem":1276},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fcomponent-options",{"title":449,"description":1278,"path":1899,"stem":1280},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fruntime-config",{"title":1282,"description":1283,"path":1901,"stem":1285},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fbundling",{"title":77,"description":1287,"path":1903,"stem":1289},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fserver",{"title":280,"description":1291,"path":1905,"stem":1293},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fmodule-authors",{"description":1295,"path":1907,"stem":1297},"\u002Fdocs\u002F4.x\u002Fpackage",{"title":5,"icon":6,"path":1909,"stem":8,"children":1910,"page":106},"\u002Fdocs\u002F5.x",[1911,1950,2012,2111,2385,2414,2429,2452,2477],{"title":11,"titleTemplate":12,"icon":13,"path":1912,"stem":8,"children":1913,"page":106},"\u002Fdocs\u002F5.x\u002Fgetting-started",[1914,1916,1918,1920,1922,1924,1926,1928,1930,1932,1934,1936,1938,1940,1942,1944,1946,1948],{"title":17,"description":18,"path":1915,"stem":8,"icon":20},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fintroduction",{"title":22,"description":23,"path":1917,"stem":25},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Finstallation",{"title":27,"description":28,"path":1919,"stem":30},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fconfiguration",{"title":32,"description":33,"path":1921,"stem":35},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fviews",{"title":37,"description":38,"path":1923,"stem":40},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fassets",{"title":42,"description":43,"path":1925,"stem":45},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fstyling",{"title":47,"description":48,"path":1927,"stem":50},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Frouting",{"title":52,"description":53,"path":1929,"stem":55},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fseo-meta",{"title":57,"description":58,"path":1931,"stem":60},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ftransitions",{"title":62,"description":63,"path":1933,"stem":65},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fdata-fetching",{"title":67,"description":68,"path":1935,"stem":70},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fstate-management",{"title":72,"description":73,"path":1937,"stem":75},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ferror-handling",{"title":77,"description":78,"path":1939,"stem":80},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fserver",{"title":82,"description":83,"path":1941,"stem":85},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Flayers",{"title":87,"description":88,"path":1943,"stem":90},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fprerendering",{"title":92,"description":93,"path":1945,"stem":95},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fdeployment",{"title":97,"description":98,"path":1947,"stem":100},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ftesting",{"title":102,"description":103,"path":1949,"stem":105},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fupgrade",{"title":108,"titleTemplate":109,"icon":110,"path":1951,"stem":112,"children":1952,"page":106},"\u002Fdocs\u002F5.x\u002Fdirectory-structure",[1953,1955,1957,1982,1984,1986,1988,1990,1992,1994,1996,1998,2000,2002,2004,2006,2008,2010],{"title":115,"description":116,"path":1954,"stem":112},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxt",{"title":119,"description":120,"path":1956,"stem":122},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Foutput",{"title":1348,"titleTemplate":109,"icon":1349,"path":1958,"stem":1351,"children":1959,"page":106},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp",[1960,1962,1964,1966,1968,1970,1972,1974,1976,1978,1980],{"title":124,"description":125,"path":1961,"stem":1351},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fassets",{"title":129,"description":130,"path":1963,"stem":1357},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fcomponents",{"title":134,"description":135,"path":1965,"stem":1360},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fcomposables",{"title":149,"description":150,"path":1967,"stem":1363},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Flayouts",{"title":154,"description":155,"path":1969,"stem":1366},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fmiddleware",{"title":169,"description":170,"path":1971,"stem":1369},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fpages",{"title":174,"description":175,"path":1973,"stem":1372},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fplugins",{"title":194,"description":195,"path":1975,"stem":1375},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Futils",{"title":219,"description":220,"path":1977,"stem":1378},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fapp",{"title":224,"description":225,"path":1979,"stem":1381},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fapp-config",{"title":229,"description":230,"path":1981,"stem":1384},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Ferror",{"title":139,"description":140,"path":1983,"stem":142},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fcontent",{"title":144,"description":145,"path":1985,"stem":147},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Flayers",{"title":159,"description":160,"path":1987,"stem":162},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fmodules",{"title":164,"description":165,"path":1989,"stem":167},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnode_modules",{"title":179,"description":180,"path":1991,"stem":182},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fpublic",{"title":184,"description":185,"path":1993,"stem":187},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fserver",{"title":189,"description":190,"path":1995,"stem":192},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fshared",{"title":930,"description":1400,"path":1997,"stem":1402},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Ftest",{"title":199,"description":200,"path":1999,"stem":202},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fenv",{"title":204,"description":205,"path":2001,"stem":207},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fgitignore",{"title":209,"description":210,"path":2003,"stem":212},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxtignore",{"title":214,"description":215,"path":2005,"stem":217},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxtrc",{"title":234,"description":235,"path":2007,"stem":237},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxt-config",{"title":239,"description":240,"path":2009,"stem":242},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fpackage",{"title":244,"description":245,"path":2011,"stem":247},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Ftsconfig",{"title":249,"icon":250,"path":2013,"stem":252,"children":2014,"page":106},"\u002Fdocs\u002F5.x\u002Fguide",[2015,2034,2047,2054,2073,2086],{"title":255,"titleTemplate":256,"icon":257,"path":2016,"stem":252,"children":2017,"page":106},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts",[2018,2020,2022,2024,2026,2028,2030,2032],{"title":261,"description":262,"path":2019,"stem":252},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Frendering",{"title":265,"description":266,"path":2021,"stem":268},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle",{"title":270,"description":271,"path":2023,"stem":273},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fauto-imports",{"title":275,"description":276,"path":2025,"stem":278},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fserver-engine",{"title":280,"description":281,"path":2027,"stem":283},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fmodules",{"title":1434,"description":1435,"path":2029,"stem":1437},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fserver-components",{"title":285,"description":286,"path":2031,"stem":288},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Ftypescript",{"title":290,"description":291,"path":2033,"stem":293},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fcode-style",{"title":295,"titleTemplate":296,"icon":297,"path":2035,"stem":1444,"children":2036,"page":106},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices",[2037,2039,2041,2043,2045],{"title":1447,"description":1448,"path":2038,"stem":1444},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Faccessibility",{"title":1451,"description":1452,"path":2040,"stem":1454},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fdevcontainers",{"title":1456,"description":303,"path":2042,"stem":299},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fhydration",{"title":306,"description":307,"path":2044,"stem":309},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fperformance",{"title":311,"description":312,"path":2046,"stem":314},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fplugins",{"title":316,"titleTemplate":317,"icon":318,"path":2048,"stem":320,"children":2049,"page":106},"\u002Fdocs\u002F5.x\u002Fguide\u002Fai",[2050,2052],{"title":323,"description":324,"path":2051,"stem":320},"\u002Fdocs\u002F5.x\u002Fguide\u002Fai\u002Fmcp",{"title":327,"description":328,"path":2053,"stem":330},"\u002Fdocs\u002F5.x\u002Fguide\u002Fai\u002Fllms-txt",{"title":332,"titleTemplate":333,"icon":334,"path":2055,"stem":336,"children":2056,"page":106},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules",[2057,2059,2061,2063,2065,2067,2069,2071],{"title":339,"description":340,"path":2058,"stem":336},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fgetting-started",{"title":343,"description":344,"path":2060,"stem":346},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy",{"title":348,"description":349,"path":2062,"stem":351},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Frecipes-basics",{"title":353,"description":354,"path":2064,"stem":356},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fmodule-dependencies",{"title":358,"description":359,"path":2066,"stem":361},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Frecipes-advanced",{"title":363,"description":364,"path":2068,"stem":366},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Ftesting",{"title":368,"description":369,"path":2070,"stem":371},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fbest-practices",{"title":373,"description":374,"path":2072,"stem":376},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fecosystem",{"title":378,"titleTemplate":379,"icon":380,"path":2074,"stem":382,"children":2075,"page":106},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes",[2076,2078,2080,2082,2084],{"title":385,"description":386,"path":2077,"stem":382},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fcustom-routing",{"title":389,"description":390,"path":2079,"stem":392},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fvite-plugin",{"title":394,"description":395,"path":2081,"stem":397},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch",{"title":399,"description":400,"path":2083,"stem":402},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication",{"title":1500,"description":1501,"path":2085,"stem":1503},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fmostly-static-sites",{"title":404,"titleTemplate":405,"icon":406,"path":2087,"stem":408,"children":2088,"page":106},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further",[2089,2091,2093,2095,2097,2099,2101,2103,2105,2107,2109],{"title":411,"description":412,"path":2090,"stem":408},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fevents",{"title":415,"description":416,"path":2092,"stem":418},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features",{"title":420,"description":421,"path":2094,"stem":423},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Ffeatures",{"title":425,"description":426,"path":2096,"stem":428},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fhooks",{"title":430,"description":431,"path":2098,"stem":433},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fkit",{"title":435,"description":436,"path":2100,"stem":438},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app",{"title":440,"description":83,"path":2102,"stem":442},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Flayers",{"title":1522,"description":1523,"path":2104,"stem":1525},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fbuilders",{"title":444,"description":445,"path":2106,"stem":447},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fdebugging",{"title":449,"description":450,"path":2108,"stem":452},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fruntime-config",{"title":454,"description":455,"path":2110,"stem":457},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fnightly-release-channel",{"title":459,"titleTemplate":460,"icon":461,"path":2112,"stem":463,"children":2113,"page":106},"\u002Fdocs\u002F5.x\u002Fapi",[2114,2149,2218,2279,2335,2376,2383],{"title":466,"titleTemplate":467,"icon":334,"path":2115,"stem":463,"children":2116,"page":106},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents",[2117,2119,2121,2123,2125,2127,2129,2131,2133,2135,2137,2139,2141,2143,2145,2147],{"title":471,"description":472,"path":2118,"stem":463},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fclient-only",{"title":475,"description":476,"path":2120,"stem":478},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fdev-only",{"title":480,"description":481,"path":2122,"stem":483},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback",{"title":485,"description":486,"path":2124,"stem":488},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-page",{"title":490,"description":491,"path":2126,"stem":493},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout",{"title":495,"description":496,"path":2128,"stem":498},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-link",{"title":500,"description":501,"path":2130,"stem":503},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator",{"title":505,"description":506,"path":2132,"stem":508},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary",{"title":510,"description":511,"path":2134,"stem":513},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome",{"title":515,"description":516,"path":2136,"stem":518},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-island",{"title":520,"description":521,"path":2138,"stem":523},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-img",{"title":525,"description":526,"path":2140,"stem":528},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture",{"title":530,"description":531,"path":2142,"stem":533},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fteleports",{"title":535,"description":536,"path":2144,"stem":538},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer",{"title":540,"description":541,"path":2146,"stem":543},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-time",{"title":1569,"description":1570,"path":2148,"stem":1572},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-announcer",{"title":545,"titleTemplate":546,"icon":547,"path":2150,"stem":1575,"children":2151,"page":106},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables",[2152,2154,2156,2158,2160,2162,2164,2166,2168,2170,2172,2174,2176,2178,2180,2182,2184,2186,2188,2190,2192,2194,2196,2198,2200,2202,2204,2206,2208,2210,2212,2214,2216],{"title":1578,"description":1579,"path":2153,"stem":1575},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fcreate-use-async-data",{"title":1582,"description":1583,"path":2155,"stem":1585},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fcreate-use-fetch",{"title":552,"description":553,"path":2157,"stem":549},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate",{"title":1589,"description":1590,"path":2159,"stem":1592},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-announcer",{"title":556,"description":557,"path":2161,"stem":559},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-app-config",{"title":561,"description":562,"path":2163,"stem":564},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-async-data",{"title":566,"description":567,"path":2165,"stem":569},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-cookie",{"title":571,"description":572,"path":2167,"stem":574},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-error",{"title":576,"description":577,"path":2169,"stem":579},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-fetch",{"title":581,"description":582,"path":2171,"stem":584},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-head",{"title":586,"description":587,"path":2173,"stem":589},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe",{"title":591,"description":592,"path":2175,"stem":594},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-hydration",{"title":1610,"description":1611,"path":2177,"stem":1613},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-layout",{"title":596,"description":597,"path":2179,"stem":599},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data",{"title":601,"description":602,"path":2181,"stem":604},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch",{"title":606,"description":607,"path":2183,"stem":609},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator",{"title":611,"description":612,"path":2185,"stem":614},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app",{"title":616,"description":617,"path":2187,"stem":619},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data",{"title":621,"description":622,"path":2189,"stem":624},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode",{"title":626,"description":627,"path":2191,"stem":629},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-event",{"title":631,"description":632,"path":2193,"stem":634},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch",{"title":636,"description":637,"path":2195,"stem":639},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-header",{"title":641,"description":642,"path":2197,"stem":644},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers",{"title":646,"description":647,"path":2199,"stem":649},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-url",{"title":651,"description":652,"path":2201,"stem":654},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-response-header",{"title":656,"description":657,"path":2203,"stem":659},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-route",{"title":661,"description":662,"path":2205,"stem":664},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer",{"title":666,"description":667,"path":2207,"stem":669},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-router",{"title":671,"description":672,"path":2209,"stem":674},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config",{"title":676,"description":677,"path":2211,"stem":679},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook",{"title":681,"description":682,"path":2213,"stem":684},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta",{"title":686,"description":687,"path":2215,"stem":689},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta",{"title":691,"description":692,"path":2217,"stem":694},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-state",{"title":696,"titleTemplate":697,"path":2219,"stem":699,"children":2220,"page":106},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils",[2221,2223,2225,2227,2229,2231,2233,2235,2237,2239,2241,2243,2245,2247,2249,2251,2253,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277],{"title":702,"description":703,"path":2222,"stem":699},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdollarfetch",{"title":706,"description":707,"path":2224,"stem":709},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fabort-navigation",{"title":711,"description":712,"path":2226,"stem":714},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fadd-route-middleware",{"title":716,"description":717,"path":2228,"stem":719},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fcall-once",{"title":721,"description":722,"path":2230,"stem":724},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-error",{"title":726,"description":727,"path":2232,"stem":729},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-nuxt-data",{"title":731,"description":732,"path":2234,"stem":734},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-nuxt-state",{"title":736,"description":737,"path":2236,"stem":739},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fcreate-error",{"title":741,"description":742,"path":2238,"stem":744},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component",{"title":746,"description":747,"path":2240,"stem":749},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component",{"title":751,"description":752,"path":2242,"stem":754},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin",{"title":756,"description":757,"path":2244,"stem":759},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware",{"title":761,"description":762,"path":2246,"stem":764},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-page-meta",{"title":766,"description":767,"path":2248,"stem":769},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-route-rules",{"title":771,"description":772,"path":2250,"stem":774},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fnavigate-to",{"title":776,"description":777,"path":2252,"stem":779},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-before-route-leave",{"title":781,"description":782,"path":2254,"stem":784},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-before-route-update",{"title":786,"description":787,"path":2256,"stem":789},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-nuxt-ready",{"title":791,"description":792,"path":2258,"stem":794},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fprefetch-components",{"title":796,"description":797,"path":2260,"stem":799},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fpreload-components",{"title":801,"description":802,"path":2262,"stem":804},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fpreload-route-components",{"title":806,"description":807,"path":2264,"stem":809},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fprerender-routes",{"title":811,"description":812,"path":2266,"stem":814},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Frefresh-cookie",{"title":816,"description":817,"path":2268,"stem":819},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data",{"title":821,"description":822,"path":2270,"stem":824},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Freload-nuxt-app",{"title":826,"description":827,"path":2272,"stem":829},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fset-page-layout",{"title":831,"description":832,"path":2274,"stem":834},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fset-response-status",{"title":836,"description":837,"path":2276,"stem":839},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fshow-error",{"title":841,"description":842,"path":2278,"stem":844},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fupdate-app-config",{"title":846,"titleTemplate":847,"icon":848,"path":2280,"stem":850,"children":2281,"page":106},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands",[2282,2284,2287,2289,2291,2293,2295,2297,2302,2304,2306,2311,2313,2315,2317,2320,2322,2324,2329,2331,2333],{"title":853,"description":854,"path":2283,"stem":850},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Foverview",{"title":857,"description":2285,"path":2286,"stem":860},"Add Nuxt modules and layers to your application.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fadd",{"title":862,"description":863,"path":2288,"stem":865},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fadd-template",{"title":867,"description":868,"path":2290,"stem":870},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fanalyze",{"title":872,"description":873,"path":2292,"stem":875},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fbuild",{"title":877,"description":878,"path":2294,"stem":880},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fbuild-module",{"title":882,"description":883,"path":2296,"stem":885},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fcleanup",{"title":2298,"description":2299,"path":2300,"stem":2301},"nuxt curl","The curl command sends an HTTP request to your running Nuxt dev server.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fcurl","curl",{"title":887,"description":888,"path":2303,"stem":890},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fdev",{"title":892,"description":893,"path":2305,"stem":895},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fdevtools",{"title":2307,"description":2308,"path":2309,"stem":2310},"nuxt docs","The docs command searches the Nuxt documentation for the version your project uses.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fdocs","docs",{"title":897,"description":898,"path":2312,"stem":900},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fgenerate",{"title":902,"description":903,"path":2314,"stem":905},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Finfo",{"title":907,"description":908,"path":2316,"stem":910},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Finit",{"title":912,"description":2318,"path":2319,"stem":915},"Search, add and remove modules in your Nuxt application with the command line.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fmodule",{"title":917,"description":918,"path":2321,"stem":920},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fprepare",{"title":922,"description":923,"path":2323,"stem":925},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fpreview",{"title":2325,"description":2326,"path":2327,"stem":2328},"nuxt task","List and run Nitro tasks on your dev server.","\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Ftask","task",{"title":927,"description":928,"path":2330,"stem":930},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Ftest",{"title":932,"description":933,"path":2332,"stem":935},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Ftypecheck",{"title":937,"description":938,"path":2334,"stem":940},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fupgrade",{"title":430,"titleTemplate":942,"path":2336,"stem":944,"children":2337,"page":106},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit",[2338,2340,2342,2344,2346,2348,2350,2352,2354,2356,2358,2360,2362,2364,2366,2368,2370,2372,2374],{"title":280,"description":947,"path":2339,"stem":944},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fmodules",{"title":950,"description":951,"path":2341,"stem":953},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fprogrammatic",{"title":955,"description":956,"path":2343,"stem":958},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcompatibility",{"title":270,"description":960,"path":2345,"stem":962},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fautoimports",{"title":466,"description":964,"path":2347,"stem":966},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcomponents",{"title":968,"description":969,"path":2349,"stem":971},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcontext",{"title":973,"description":974,"path":2351,"stem":976},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fpages",{"title":978,"description":979,"path":2353,"stem":981},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flayout",{"title":983,"description":984,"path":2355,"stem":986},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fhead",{"title":988,"description":989,"path":2357,"stem":991},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fplugins",{"title":449,"description":993,"path":2359,"stem":995},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fruntime-config",{"title":997,"description":998,"path":2361,"stem":1000},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Ftemplates",{"title":1782,"description":1783,"path":2363,"stem":1785},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fapp-config",{"title":1002,"description":1003,"path":2365,"stem":1788},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fnitro",{"title":1007,"description":1790,"path":2367,"stem":1792},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fresolving",{"title":1012,"description":1013,"path":2369,"stem":1795},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flogging",{"title":1017,"description":1018,"path":2371,"stem":1798},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fbuilder",{"title":1022,"description":1023,"path":2373,"stem":1801},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fexamples",{"title":82,"description":1027,"path":2375,"stem":1804},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flayers",{"icon":1031,"title":1032,"path":2377,"stem":1034,"children":2378,"page":106},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced",[2379,2381],{"title":425,"description":426,"path":2380,"stem":1034},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced\u002Fhooks",{"title":1039,"description":1040,"path":2382,"stem":1042},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced\u002Fimport-meta",{"title":1044,"description":1045,"path":2384,"stem":1047},"\u002Fdocs\u002F5.x\u002Fapi\u002Fnuxt-config",{"title":1022,"titleTemplate":1049,"icon":1050,"path":1051,"stem":1052,"children":2386,"page":106},[2387,2388,2395,2400,2411],{"title":1055,"description":1056,"path":1057,"stem":1052},{"title":420,"path":1059,"stem":1060,"children":2389,"page":106},[2390,2391,2392,2393,2394],{"title":1063,"description":1064,"path":1065,"stem":1060},{"title":62,"description":1067,"path":1068,"stem":1069},{"title":67,"description":1071,"path":1072,"stem":1073},{"title":1075,"description":1076,"path":1077,"stem":1078},{"title":1080,"description":1081,"path":1082,"stem":1083},{"title":47,"path":1085,"stem":1086,"children":2396,"page":106},[2397,2398,2399],{"title":1089,"description":1090,"path":1091,"stem":1086},{"title":973,"description":1093,"path":1094,"stem":1095},{"title":1097,"description":1098,"path":1099,"stem":1100},{"title":1032,"path":1102,"stem":1103,"children":2401,"page":106},[2402,2403,2404,2405,2406,2407,2408,2409,2410],{"title":82,"description":1106,"path":1107,"stem":1103},{"title":72,"description":1109,"path":1110,"stem":1111},{"title":1113,"description":1114,"path":1115,"stem":1116},{"title":1118,"description":1119,"path":1120,"stem":1121},{"title":1123,"description":1124,"path":1125,"stem":1126},{"title":1128,"description":1129,"path":1130,"stem":1131},{"title":97,"description":1133,"path":1134,"stem":1135},{"title":566,"description":1137,"path":1138,"stem":1139},{"title":1141,"description":1142,"path":1143,"stem":1144},{"title":1146,"path":1147,"stem":1148,"children":2412,"page":106},[2413],{"title":1151,"description":1152,"path":1153,"stem":1148},{"title":1155,"titleTemplate":1156,"icon":1157,"path":2415,"stem":1159,"children":2416,"page":106},"\u002Fdocs\u002F5.x\u002Fcommunity",[2417,2419,2421,2423,2425,2427],{"title":1162,"description":1163,"path":2418,"stem":1159,"icon":1165},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fgetting-help",{"title":1167,"description":1168,"path":2420,"stem":1170},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Freporting-bugs",{"title":1172,"description":1173,"path":2422,"stem":1175},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fcontribution",{"title":1177,"description":1178,"path":2424,"stem":1180},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fframework-contribution",{"title":1182,"description":1183,"path":2426,"stem":1185},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Froadmap",{"title":1187,"description":1188,"path":2428,"stem":1190},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fchangelog",{"title":1192,"titleTemplate":1193,"icon":1194,"path":2430,"stem":1196,"children":2431,"page":106},"\u002Fdocs\u002F5.x\u002Fbridge",[2432,2434,2436,2438,2440,2442,2444,2446,2448,2450],{"title":1199,"description":1200,"path":2433,"stem":1196},"\u002Fdocs\u002F5.x\u002Fbridge\u002Foverview",{"title":285,"description":1203,"path":2435,"stem":1205},"\u002Fdocs\u002F5.x\u002Fbridge\u002Ftypescript",{"title":1207,"description":1208,"path":2437,"stem":1210},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fbridge-composition-api",{"title":1212,"description":1213,"path":2439,"stem":1215},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fplugins-and-middleware",{"title":1217,"description":1218,"path":2441,"stem":1220},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fnuxt3-compatible-api",{"title":1075,"description":1222,"path":2443,"stem":1224},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fmeta",{"title":449,"description":450,"path":2445,"stem":1227},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fruntime-config",{"title":1002,"description":1229,"path":2447,"stem":1231},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fnitro",{"title":1233,"description":1234,"path":2449,"stem":1236},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fvite",{"title":27,"description":1238,"path":2451,"stem":1240},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fconfiguration",{"title":1242,"titleTemplate":1243,"icon":1244,"path":2453,"stem":1246,"children":2454,"page":106},"\u002Fdocs\u002F5.x\u002Fmigration",[2455,2457,2459,2461,2463,2465,2467,2469,2471,2473,2475],{"title":1199,"description":1249,"path":2456,"stem":1246},"\u002Fdocs\u002F5.x\u002Fmigration\u002Foverview",{"title":27,"description":1252,"path":2458,"stem":1254},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fconfiguration",{"title":1063,"description":1256,"path":2460,"stem":1258},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fauto-imports",{"title":1075,"description":1260,"path":2462,"stem":1262},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fmeta",{"title":1212,"description":1264,"path":2464,"stem":1266},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fplugins-and-middleware",{"title":1268,"description":1269,"path":2466,"stem":1271},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fpages-and-layouts",{"title":1273,"description":1274,"path":2468,"stem":1276},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fcomponent-options",{"title":449,"description":1278,"path":2470,"stem":1280},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fruntime-config",{"title":1282,"description":1283,"path":2472,"stem":1285},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fbundling",{"title":77,"description":1287,"path":2474,"stem":1289},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fserver",{"title":280,"description":1291,"path":2476,"stem":1293},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fmodule-authors",{"description":1295,"path":2478,"stem":1297},"\u002Fdocs\u002F5.x\u002Fpackage",{"title":2480,"description":2481,"path":2482,"stem":2483,"children":2484},"The Nuxt Blog","Read the latest news about all Nuxt solutions, from framework announcements to integration tutorials.","\u002Fblog","blog",[2485,2490,2495,2500,2505,2510,2515,2520,2525,2530,2535,2540,2545,2550,2555,2560,2565,2570,2575,2580,2585,2590,2595,2600,2605,2610,2615,2620,2625,2630,2635,2640,2645,2650,2655,2660,2665,2670,2675,2680,2685,2690,2695,2700,2705,2710,2715,2720,2725,2730],{"title":2486,"description":2487,"path":2488,"stem":2489},"Announcing 3.0","We are thrilled to announce the first stable version of Nuxt 3.0.0","\u002Fblog\u002Fv3","blog\u002F1.v3",{"title":2491,"description":2492,"path":2493,"stem":2494},"Nuxt: A vision for 2023","This past year has been an exciting one. Looking into the new year, there is a lot we have planned as a team and we'd love to share it with you.","\u002Fblog\u002Fvision-2023","blog\u002F2.vision-2023",{"title":2496,"description":2497,"path":2498,"stem":2499},"Introducing Nuxt DevTools","Unleash the Developer Experience with Nuxt and understand your app better than ever.","\u002Fblog\u002Fintroducing-nuxt-devtools","blog\u002F3.introducing-nuxt-devtools",{"title":2501,"description":2502,"path":2503,"stem":2504},"Announcing Nuxt 3 Release Candidate","Nuxt 3 beta was announced on October 12, 2021 after 16 months of work, introducing a new foundation based on Vue 3, Vite and Nitro. Six months later, we are happy to announce the first release candidate of Nuxt 3, code named “Mount Hope“ 🚀","\u002Fblog\u002Fnuxt3-rc","blog\u002F3.nuxt3-rc",{"title":2506,"description":2507,"path":2508,"stem":2509},"Nuxt 2 End-of-Life (EOL)","Nuxt 2 will reach End of Life (EOL) on June 30th, 2024. We've partnered with HeroDevs on offering Never-Ending Support (NES).","\u002Fblog\u002Fnuxt2-eol","blog\u002F4.nuxt2-eol",{"title":2511,"description":2512,"path":2513,"stem":2514},"Introducing Nuxt 3 Beta","468 days after the first commit, the Nuxt 3 beta has finally arrived. Discover what's inside and what to expect from it. Yes, it includes Vue 3 and Vite ⚡️","\u002Fblog\u002Fnuxt3-beta","blog\u002F4.nuxt3-beta",{"title":2516,"description":2517,"path":2518,"stem":2519},"Going Full Static","Long awaited features for JAMstack fans has been shipped in v2.13: full static export, improved smart prefetching, integrated crawler, faster re-deploy, built-in web server and new target option for config ⚡️","\u002Fblog\u002Fgoing-full-static","blog\u002F5.going-full-static",{"title":2521,"description":2522,"path":2523,"stem":2524},"Introducing Smart Prefetching","Starting from Nuxt v2.4.0, Nuxt will automagically prefetch the code-split pages linked with a nuxt-link when visible in the viewport by default.","\u002Fblog\u002Fintroducing-smart-prefetching","blog\u002F6.introducing-smart-prefetching",{"title":2526,"description":2527,"path":2528,"stem":2529},"Understanding how fetch works in Nuxt 2.12","Explore different features of the fetch hook and learn a brand new way to bring data into Nuxt applications.","\u002Fblog\u002Funderstanding-how-fetch-works-in-nuxt-2-12","blog\u002F7.understanding-how-fetch-works-in-nuxt-2-12",{"title":2531,"description":2532,"path":2533,"stem":2534},"Nuxt 2 Static Improvements","With Nuxt version 2.13, the full-static mode has been introduced. In addition, a new command nuxt export was added to pre-render your pages without triggering a webpack build with the goal to separate the rendering and build process. The only issue was that most Nuxt users weren't able to unleash the full potential of the separation... until now.","\u002Fblog\u002Fnuxt-static-improvements","blog\u002F8.nuxt-static-improvements",{"title":2536,"description":2537,"path":2538,"stem":2539},"Nuxt 2: From Terminal to Browser","How we changed the developer experience to stop switching between the terminal and browser.","\u002Fblog\u002Fnuxtjs-from-terminal-to-browser","blog\u002F9.nuxtjs-from-terminal-to-browser",{"title":2541,"description":2542,"path":2543,"stem":2544},"Nuxt 3.3","The 3.3.0 is a minor (feature) release with lots of performance and DX improvements, bug fixes and new features to play with.","\u002Fblog\u002Fv3-3","blog\u002F10.v3-3",{"title":2546,"description":2547,"path":2548,"stem":2549},"Nuxt 3.4","Nuxt 3.4.0 is the latest release of Nuxt 3, bringing exciting new features, including support for the View Transitions API, transferring rich JavaScript payloads from server to client - and much more.","\u002Fblog\u002Fv3-4","blog\u002F11.v3-4",{"title":2551,"description":2552,"path":2553,"stem":2554},"Nuxt 3.5","Nuxt 3.5.0 is out, bringing Vue 3.3, new defaults, interactive server components, typed pages, environment config - and much more.","\u002Fblog\u002Fv3-5","blog\u002F12.v3-5",{"title":2556,"description":2557,"path":2558,"stem":2559},"Nuxt 3.6","Nuxt 3.6 is out, bringing performance improvements, fully static server components, better style inlining, static presets, increased type safety - and much more.","\u002Fblog\u002Fv3-6","blog\u002F13.v3-6",{"title":2561,"description":2562,"path":2563,"stem":2564},"Nuxt on the Edge","Learn how we made Nuxt 3 capable of running on edge runtimes to run with server-side rendering close to your users.","\u002Fblog\u002Fnuxt-on-the-edge","blog\u002F14.nuxt-on-the-edge",{"title":2566,"description":2567,"path":2568,"stem":2569},"Nuxt 3.7","Nuxt 3.7 is out, bringing a new CLI, native web streams and response, rendering optimisations, async context support - and much more.","\u002Fblog\u002Fv3-7","blog\u002F15.v3-7",{"title":2571,"description":2572,"path":2573,"stem":2574},"A New Website","We are thrilled to release the new nuxt.com, powered by Nuxt UI and now open source.","\u002Fblog\u002Fnew-website","blog\u002F16.new-website",{"title":2576,"description":2577,"path":2578,"stem":2579},"Nuxt 3.8","Nuxt 3.8 is out, bringing built-in DevTools, automatic Nuxt Image install, a new app manifest and much more.","\u002Fblog\u002Fv3-8","blog\u002F17.v3-8",{"title":2581,"description":2582,"path":2583,"stem":2584},"Nuxt DevTools v1.0","Nuxt DevTools v1.0 is out, generally available to all Nuxt projects!","\u002Fblog\u002Fnuxt-devtools-v1-0","blog\u002F18.nuxt-devtools-v1-0",{"title":2586,"description":2587,"path":2588,"stem":2589},"Nuxt 3.9","Nuxt 3.9 is out - a Christmas gift from the Nuxt team bringing Vite 5, interactive server components, new composables, a new loading API and more.","\u002Fblog\u002Fv3-9","blog\u002F19.v3-9",{"title":2591,"description":2592,"path":2593,"stem":2594},"Nuxt 3.10","Nuxt 3.10 is out - packed with features and fixes. Here are a few highlights.","\u002Fblog\u002Fv3-10","blog\u002F20.v3-10",{"title":2596,"description":2597,"path":2598,"stem":2599},"The Evolution of Shiki v1.0","Shiki v1.0 came with many improvements and features - see how Nuxt drives the evolution of Shiki!","\u002Fblog\u002Fshiki-v1","blog\u002F21.shiki-v1",{"title":2601,"description":2602,"path":2603,"stem":2604},"Nuxt 3.11","Nuxt 3.11 is out - with better logging, preview mode, server pages and much more!","\u002Fblog\u002Fv3-11","blog\u002F22.v3-11",{"title":2606,"description":2607,"path":2608,"stem":2609},"Nuxt: Looking forward","A lot of things have happened for Nuxt over the last year. Sébastien and Daniel share their thoughts on what we've achieved, and where we're going next.","\u002Fblog\u002Flooking-forward-2024","blog\u002F23.looking-forward-2024",{"title":2611,"description":2612,"path":2613,"stem":2614},"Refreshed Nuxt ESLint Integrations","We revamped our ESLint integrations to support ESLint v9 with the flat config, as well as a new module with many more capabilities.","\u002Fblog\u002Feslint-module","blog\u002F24.eslint-module",{"title":2616,"description":2617,"path":2618,"stem":2619},"Nuxt 3.12","Nuxt 3.12 is out - full of improvements and preparing the way for Nuxt 4!","\u002Fblog\u002Fv3-12","blog\u002F25.v3-12",{"title":2621,"description":2622,"path":2623,"stem":2624},"Introducing Nuxt Scripts","Nuxt Scripts provides better performance, privacy, security, and developer experience for third-party scripts.","\u002Fblog\u002Fnuxt-scripts","blog\u002F26.nuxt-scripts",{"title":2626,"description":2627,"path":2628,"stem":2629},"Nuxt 3.13","Nuxt 3.13 is out - porting back some of the new features we're building for Nuxt 4!","\u002Fblog\u002Fv3-13","blog\u002F27.v3-13",{"title":2631,"description":2632,"path":2633,"stem":2634},"Nuxt 3.14","Nuxt 3.14 is out - with a new rspack builder, shared folder, and performance enhancements!","\u002Fblog\u002Fv3-14","blog\u002F27.v3-14",{"title":2636,"description":2637,"path":2638,"stem":2639},"Introducing Nuxt Icon v1","Discover Nuxt Icon v1 - a modern, versatile, and customizable icon solution for your Nuxt projects.","\u002Fblog\u002Fnuxt-icon-v1-0","blog\u002F29.nuxt-icon-v1-0",{"title":2641,"description":2642,"path":2643,"stem":2644},"Nuxt 3.15","Nuxt 3.15 is out - with Vite 6, better HMR and faster performance","\u002Fblog\u002Fv3-15","blog\u002F30.v3-15",{"title":2646,"description":2647,"path":2648,"stem":2649},"Nuxt 3.16","Nuxt 3.16 is out - packed with features and performance improvements","\u002Fblog\u002Fv3-16","blog\u002F31.v3-16",{"title":2651,"description":2652,"path":2653,"stem":2654},"Nuxt UI v3","Nuxt UI v3 is out! After 1500+ commits, this major redesign brings improved accessibility, Tailwind CSS v4 support, and full Vue compatibility","\u002Fblog\u002Fnuxt-ui-v3","blog\u002F32.nuxt-ui-v3",{"title":2656,"description":2657,"path":2658,"stem":2659},"Nuxt 3.17","Nuxt 3.17 is out - bringing a major reworking of the async data layer, a new built-in component, better warnings, and performance improvements!","\u002Fblog\u002Fv3-17","blog\u002F33.v3-17",{"title":2661,"description":2662,"path":2663,"stem":2664},"Roadmap to v4","We have some exciting news about the roadmap to Nuxt 4, including a new timeline and what to expect in the next few weeks.","\u002Fblog\u002Froadmap-v4","blog\u002F34.roadmap-v4",{"title":2666,"description":2667,"path":2668,"stem":2669},"Building a Privacy-First Feedback Widget","A lightweight, privacy-focused widget to gather your feedback on Nuxt documentation, built with Drizzle, NuxtHub database and Motion Vue.","\u002Fblog\u002Fbuilding-a-feedback-widget","blog\u002F35.building-a-feedback-widget",{"title":2671,"description":2672,"path":2673,"stem":2674},"Announcing Nuxt 4.0","Nuxt 4.0 is here! A thoughtful evolution focused on developer experience, with better project organization, smarter data fetching, and improved type safety.","\u002Fblog\u002Fv4","blog\u002F36.v4",{"title":2676,"description":2677,"path":2678,"stem":2679},"Nuxt 3.18","Nuxt 3.18 is out - bringing v4 features to v3, improved accessibility, better browser dev tooling integration, and performance enhancements!","\u002Fblog\u002Fv3-18","blog\u002F37.v3-18",{"title":2681,"description":2682,"path":2683,"stem":2684},"Nuxt 4.1","Nuxt 4.1 is out - bringing enhanced build stability, better development experience, and powerful new features for module authors!","\u002Fblog\u002Fv4-1","blog\u002F38.v4-1",{"title":2686,"description":2687,"path":2688,"stem":2689},"Nuxt UI v4","Nuxt UI v4 unifies Nuxt UI and Nuxt UI Pro into one powerful, completely free library. With over 110 components, 12 templates, and a comprehensive Figma kit, all of this is available for free.","\u002Fblog\u002Fnuxt-ui-v4","blog\u002F39.nuxt-ui-v4",{"title":2691,"description":2692,"path":2693,"stem":2694},"Building an MCP Server for Nuxt","How we built the Nuxt MCP server to enable AI assistants to access our documentation through structured data and composable tools.","\u002Fblog\u002Fbuilding-nuxt-mcp","blog\u002F40.building-nuxt-mcp",{"title":2696,"description":2697,"path":2698,"stem":2699},"Nuxt 4.2","Nuxt 4.2 is out - with experimental TypeScript plugin support, better error handling in development, abort control for data fetching, and more!","\u002Fblog\u002Fv4-2","blog\u002F40.v4-2",{"title":2701,"description":2702,"path":2703,"stem":2704},"Nuxt Image v2","Nuxt Image v2 is out - with full TypeScript support, IPX v3, and new providers!","\u002Fblog\u002Fnuxt-image-v2","blog\u002F41.nuxt-image-v2",{"title":2706,"description":2707,"path":2708,"stem":2709},"Nuxt 4.3","Nuxt 4.3 is out – route rule layouts, ISR payload extraction, draggable error overlay, and more!","\u002Fblog\u002Fv4-3","blog\u002F42.v4-3",{"title":2711,"description":2712,"path":2713,"stem":2714},"Nuxt 4.4","Nuxt 4.4 brings custom useFetch\u002FuseAsyncData factories, vue-router v5, a new accessibility announcer, typed layout props, build profiling, smarter payload handling, and much more.","\u002Fblog\u002Fv4-4","blog\u002F43.v4-4",{"title":2716,"description":2717,"path":2718,"stem":2719},"Introducing the Nuxt Agent","Our own AI agent on nuxt.com, grounded in the official docs and the Nuxt ecosystem. We built it internally using the AI SDK, our MCP server, and Nuxt UI components.","\u002Fblog\u002Fintroducing-nuxt-agent","blog\u002F44.introducing-nuxt-agent",{"title":2721,"description":2722,"path":2723,"stem":2724},"Meet Nuxi","Today, we're announcing the new Nuxt Agent: Nuxi. We want to make your Nuxt experience less generic and more personalized, with the care that characterizes the Nuxt community.","\u002Fblog\u002Fmeet-nuxi","blog\u002F45.meet-nuxi",{"title":2726,"description":2727,"path":2728,"stem":2729},"Nuxt 4.5","Nuxt 4.5 is our biggest release in a while. Vite 8, Rspack 2 powered by Rsbuild, experimental SSR streaming, a stable error code system, a new useLayout composable, named views, and a lot of groundwork for Nuxt 5.","\u002Fblog\u002Fv4-5","blog\u002F46.v4-5",{"title":2731,"description":2732,"path":2733,"stem":2734},"Nuxt Security Patch Releases","Nuxt 4.5.1 and 3.21.10 are out now, fixing several security issues, alongside a critical fix in @nuxt\u002Fdevtools 3.3.1. We recommend upgrading as soon as possible.","\u002Fblog\u002Fv4-5-security","blog\u002F47.v4-5-security",{"path":1510,"data":2736,"meta":2737,"nodes":2913},{"title":415,"description":416},{"toc":2738,"key":2909,"source":2310,"stem":418,"extension":2910,"kind":2911,"type":2912,"partial":106},{"title":2739,"searchDepth":2740,"depth":2741,"links":2742},"",2,3,[2743,2746,2749,2752,2755,2758,2761,2764,2767,2770,2773,2776,2779,2782,2785,2788,2790,2793,2796,2799,2802,2805,2808,2811,2813,2816,2819,2822,2825,2828,2831,2834,2837,2840,2843,2846,2849,2852,2855,2858,2861,2864,2867,2873,2875,2878,2881,2884,2887,2890,2893,2896,2899,2902],{"id":2744,"depth":2740,"text":2745},"alwaysrunfetchonkeychange","alwaysRunFetchOnKeyChange",{"id":2747,"depth":2740,"text":2748},"appmanifest","appManifest",{"id":2750,"depth":2740,"text":2751},"asynccontext","asyncContext",{"id":2753,"depth":2740,"text":2754},"asyncentry","asyncEntry",{"id":2756,"depth":2740,"text":2757},"externalvue","externalVue",{"id":2759,"depth":2740,"text":2760},"extractasyncdatahandlers","extractAsyncDataHandlers",{"id":2762,"depth":2740,"text":2763},"emitroutechunkerror","emitRouteChunkError",{"id":2765,"depth":2740,"text":2766},"enforcemodulecompatibility","enforceModuleCompatibility",{"id":2768,"depth":2740,"text":2769},"restorestate","restoreState",{"id":2771,"depth":2740,"text":2772},"inlinerouterules","inlineRouteRules",{"id":2774,"depth":2740,"text":2775},"renderjsonpayloads","renderJsonPayloads",{"id":2777,"depth":2740,"text":2778},"novueserver","noVueServer",{"id":2780,"depth":2740,"text":2781},"parseerrordata","parseErrorData",{"id":2783,"depth":2740,"text":2784},"payloadextraction","payloadExtraction",{"id":2786,"depth":2740,"text":2787},"clientnodeplaceholder","clientNodePlaceholder",{"id":2789,"depth":2740,"text":2789},"early404",{"id":2791,"depth":2740,"text":2792},"clientfallback","clientFallback",{"id":2794,"depth":2740,"text":2795},"crossoriginprefetch","crossOriginPrefetch",{"id":2797,"depth":2740,"text":2798},"viewtransition","viewTransition",{"id":2800,"depth":2740,"text":2801},"writeearlyhints","writeEarlyHints",{"id":2803,"depth":2740,"text":2804},"componentislands","componentIslands",{"id":2806,"depth":2740,"text":2807},"locallayeraliases","localLayerAliases",{"id":2809,"depth":2740,"text":2810},"typedpages","typedPages",{"id":2812,"depth":2740,"text":2812},"watcher",{"id":2814,"depth":2740,"text":2815},"sharedprerenderdata","sharedPrerenderData",{"id":2817,"depth":2740,"text":2818},"clientnodecompat","clientNodeCompat",{"id":2820,"depth":2740,"text":2821},"scanpagemeta","scanPageMeta",{"id":2823,"depth":2740,"text":2824},"cookiestore","cookieStore",{"id":2826,"depth":2740,"text":2827},"buildcache","buildCache",{"id":2829,"depth":2740,"text":2830},"checkoutdatedbuildinterval","checkOutdatedBuildInterval",{"id":2832,"depth":2740,"text":2833},"extrapagemetaextractionkeys","extraPageMetaExtractionKeys",{"id":2835,"depth":2740,"text":2836},"extractserializablepagemeta","extractSerializablePageMeta",{"id":2838,"depth":2740,"text":2839},"navigationrepaint","navigationRepaint",{"id":2841,"depth":2740,"text":2842},"navigatetoearlyreturn","navigateToEarlyReturn",{"id":2844,"depth":2740,"text":2845},"normalizecomponentnames","normalizeComponentNames",{"id":2847,"depth":2740,"text":2848},"normalizepagenames","normalizePageNames",{"id":2850,"depth":2740,"text":2851},"spaloadingtemplatelocation","spaLoadingTemplateLocation",{"id":2853,"depth":2740,"text":2854},"browserdevtoolstiming","browserDevtoolsTiming",{"id":2856,"depth":2740,"text":2857},"debugmodulemutation","debugModuleMutation",{"id":2859,"depth":2740,"text":2860},"lazyhydration","lazyHydration",{"id":2862,"depth":2740,"text":2863},"templateimportresolution","templateImportResolution",{"id":2865,"depth":2740,"text":2866},"templaterouteinjection","templateRouteInjection",{"id":2868,"depth":2740,"text":2868,"children":2869},"decorators",[2870],{"id":2871,"depth":2741,"text":2872},"decorators-usage","Usage",{"id":2874,"depth":2740,"text":2874},"defaults",{"id":2876,"depth":2740,"text":2877},"purgecacheddata","purgeCachedData",{"id":2879,"depth":2740,"text":2880},"prefetchpreloadtags","prefetchPreloadTags",{"id":2882,"depth":2740,"text":2883},"granularcacheddata","granularCachedData",{"id":2885,"depth":2740,"text":2886},"stripneverhydrateddata","stripNeverHydratedData",{"id":2888,"depth":2740,"text":2889},"headnext","headNext",{"id":2891,"depth":2740,"text":2892},"pendingwhenidle","pendingWhenIdle",{"id":2894,"depth":2740,"text":2895},"entryimportmap","entryImportMap",{"id":2897,"depth":2740,"text":2898},"typescriptplugin","typescriptPlugin",{"id":2900,"depth":2740,"text":2901},"viteenvironmentapi","viteEnvironmentApi",{"id":2903,"depth":2740,"text":2904,"children":2905},"ssrstreaming","ssrStreaming",[2906],{"id":2907,"depth":2741,"text":2908},"ssrstreaming-module-hooks","Module hooks","docs\u002F3.guide\u002F6.going-further\u002F1.experimental-features.md",".md","document","text\u002Fmarkdown",[2914,2918,2936,2940,2943,2953,2965,2968,3043,3045,3048,3051,3095,3097,3104,3147,3154,3156,3159,3202,3204,3218,3220,3263,3267,3269,3277,3320,3323,3424,3517,3520,3529,3531,3538,3545,3557,3566,3613,3615,3618,3621,3664,3666,3679,3682,3690,3733,3735,3742,3785,3791,3798,3801,3803,3806,3808,3851,3853,3856,3899,3901,3908,3910,3953,3955,3958,3988,4007,4050,4054,4056,4067,4084,4104,4115,4158,4160,4163,4166,4188,4231,4279,4281,4289,4332,4334,4337,4380,4388,4390,4393,4436,4444,4516,4520,4527,4533,4535,4538,4581,4583,4594,4640,4642,4660,4664,4666,4682,4684,4727,4729,4732,4775,4792,4798,4803,4805,4808,4821,4832,4839,4856,4903,4905,4919,4922,4965,4969,4978,5160,5162,5171,5214,5216,5238,5246,5257,5260,5303,5305,5311,5313,5356,5362,5364,5367,5377,5380,5423,5426,5476,5482,5485,5487,5495,5500,5549,5551,5558,5563,5617,5702,5713,5715,5723,5732,5738,5821,5824,5835,5878,5880,5883,5886,5888,5931,5933,5948,5957,5963,6006,6125,6138,6157,6161,6163,6166,6169,6212,6215,6228,6239,6245,6252,6254,6264,6281,6309,6316,6359,6397,6399,6408,6415,6452,6458,6486,6489,6491,6494,6497,6540,6545,6550,6552,6559,6566,6569,6612,6616,6618,6625,6628,6671,6675,6677,6680,6686,6688,6731,6735,6737,6757,6765,6767,6810,6812,6815,6834,6852,6866,6869,6872,6915,6918,6963,6967,7086,7088,7091,7102,7248,7274,7276,7279,7288,7290,7333,7337,7339,7370,7381,7391,7434,7438,7440,7462,7464,7507,7511,7513,7536,7579,7589,7591,7594,7602,7604,7647,7649,7662,7699,7722,7765,7767,7770,7777,7820,7827,7841,7844,7933,7935,7942,7945,7947,7990,8011,8017,8019,8027,8035,8078,8081,8089,8092,8094,8103,8146,8149,8219,8225,8296,8354,8427,8434,8450,8467,8469,8480,8564,8782,8804,8849],[2915,2916,2917],"p",{},"Nuxt includes experimental features that you can enable in your configuration file.",[2915,2919,2920,2921,2925,2926,2930,2931,2935],{},"Internally, Nuxt uses ",[2922,2923,2924],"code",{},"@nuxt\u002Fschema"," to define these experimental features. You can refer to the ",[2927,2928,2929],"a",{"href":1510},"API documentation"," or the ",[2927,2932,2934],{"href":2933},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fblob\u002Fmain\u002Fpackages\u002Fschema\u002Fsrc\u002Fconfig\u002Fexperimental.ts","source code"," for more information.",[2937,2938,2939],"note",{},"Note that these features are experimental and could be removed or modified in the future.",[2941,2942,2745],"h2",{"id":2744},[2915,2944,2945,2946,2948,2949,2952],{},"Whether to run ",[2922,2947,576],{}," when the key changes, even if it is set to ",[2922,2950,2951],{},"immediate: false"," and it has not been triggered yet.",[2915,2954,2955,2957,2958,2960,2961,2964],{},[2922,2956,576],{}," and ",[2922,2959,561],{}," will always run when the key changes if ",[2922,2962,2963],{},"immediate: true"," or if it has been already triggered.",[2915,2966,2967],{},"This flag is disabled by default, but you can enable this feature:",[2969,2970,2974],"pre",{"language":2971,"meta":2972,"class":2973},"ts","twoslash [nuxt.config.ts]","shj shiki shj-lang-ts",[2922,2975,2977,3004,3005,3004,3015,3004,3028,3004,3036],{"class":2976},"language-ts",[2978,2979,2982,2987,2988,2987,2991,2996,3001],"span",{"class":2980,"style":2981},"line","display: inline",[2978,2983,2986],{"class":2984,"style":2985},"shj-syn-kwd shj-kwd","color:#9C3EDA;--shiki-dark:#C792EA","export"," ",[2978,2989,2990],{"class":2984,"style":2985},"default",[2978,2992,2995],{"class":2993,"style":2994},"shj-syn-func shj-func","color:#6182B8;--shiki-dark:#82AAFF","defineNuxtConfig",[2978,2997,3000],{"class":2998,"style":2999},"shj-syn-bracket shj-bracket","color:#90A4AE;--shiki-dark:#babed8","(",[2978,3002,3003],{"class":2998,"style":2999},"{","\n",[2978,3006,3007,3008,2987,3013],{"class":2980,"style":2981},"  experimental",[2978,3009,3012],{"class":3010,"style":3011},"shj-syn-oper shj-oper","color:#39ADB5;--shiki-dark:#89DDFF",":",[2978,3014,3003],{"class":2998,"style":2999},[2978,3016,3017,3018,2987,3020,3025],{"class":2980,"style":2981},"    alwaysRunFetchOnKeyChange",[2978,3019,3012],{"class":3010,"style":3011},[2978,3021,3024],{"class":3022,"style":3023},"shj-syn-bool shj-bool","color:#FF5370;--shiki-dark:#ff9cac","true",[2978,3026,3027],{"class":3010,"style":3011},",",[2978,3029,3030,3031,3034],{"class":2980,"style":2981},"  ",[2978,3032,3033],{"class":2998,"style":2999},"}",[2978,3035,3027],{"class":3010,"style":3011},[2978,3037,3038,3040],{"class":2980,"style":2981},[2978,3039,3033],{"class":2998,"style":2999},[2978,3041,3042],{"class":2998,"style":2999},")",[2941,3044,2748],{"id":2747},[2915,3046,3047],{},"Use app manifests to respect route rules on client-side.",[2915,3049,3050],{},"This flag is enabled by default, but you can disable this feature:",[2969,3052,3053],{"language":2971,"meta":2972,"class":2973},[2922,3054,3055,3004,3067,3004,3073,3004,3083,3004,3089],{"class":2976},[2978,3056,3057,2987,3059,2987,3061,3063,3065],{"class":2980,"style":2981},[2978,3058,2986],{"class":2984,"style":2985},[2978,3060,2990],{"class":2984,"style":2985},[2978,3062,2995],{"class":2993,"style":2994},[2978,3064,3000],{"class":2998,"style":2999},[2978,3066,3003],{"class":2998,"style":2999},[2978,3068,3007,3069,2987,3071],{"class":2980,"style":2981},[2978,3070,3012],{"class":3010,"style":3011},[2978,3072,3003],{"class":2998,"style":2999},[2978,3074,3075,3076,2987,3078,3081],{"class":2980,"style":2981},"    appManifest",[2978,3077,3012],{"class":3010,"style":3011},[2978,3079,3080],{"class":3022,"style":3023},"false",[2978,3082,3027],{"class":3010,"style":3011},[2978,3084,3030,3085,3087],{"class":2980,"style":2981},[2978,3086,3033],{"class":2998,"style":2999},[2978,3088,3027],{"class":3010,"style":3011},[2978,3090,3091,3093],{"class":2980,"style":2981},[2978,3092,3033],{"class":2998,"style":2999},[2978,3094,3042],{"class":2998,"style":2999},[2941,3096,2751],{"id":2750},[2915,3098,3099,3100,3103],{},"Enable native async context to be accessible for nested composables in Nuxt and in Nitro. This opens the possibility to use composables inside async composables and reduce the chance to get the ",[2922,3101,3102],{},"Nuxt instance is unavailable"," error.",[2969,3105,3106],{"language":2971,"meta":2972,"class":2973},[2922,3107,3108,3004,3120,3004,3126,3004,3135,3004,3141],{"class":2976},[2978,3109,3110,2987,3112,2987,3114,3116,3118],{"class":2980,"style":2981},[2978,3111,2986],{"class":2984,"style":2985},[2978,3113,2990],{"class":2984,"style":2985},[2978,3115,2995],{"class":2993,"style":2994},[2978,3117,3000],{"class":2998,"style":2999},[2978,3119,3003],{"class":2998,"style":2999},[2978,3121,3007,3122,2987,3124],{"class":2980,"style":2981},[2978,3123,3012],{"class":3010,"style":3011},[2978,3125,3003],{"class":2998,"style":2999},[2978,3127,3128,3129,2987,3131,3133],{"class":2980,"style":2981},"    asyncContext",[2978,3130,3012],{"class":3010,"style":3011},[2978,3132,3024],{"class":3022,"style":3023},[2978,3134,3027],{"class":3010,"style":3011},[2978,3136,3030,3137,3139],{"class":2980,"style":2981},[2978,3138,3033],{"class":2998,"style":2999},[2978,3140,3027],{"class":3010,"style":3011},[2978,3142,3143,3145],{"class":2980,"style":2981},[2978,3144,3033],{"class":2998,"style":2999},[2978,3146,3042],{"class":2998,"style":2999},[3148,3149,3153],"read-more",{"icon":3150,"to":3151,"target":3152},"i-simple-icons-github","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fpull\u002F20918","_blank","See full explanation on the GitHub pull-request.",[2941,3155,2754],{"id":2753},[2915,3157,3158],{},"Enables generation of an async entry point for the Vue bundle, aiding module federation support.",[2969,3160,3161],{"language":2971,"meta":2972,"class":2973},[2922,3162,3163,3004,3175,3004,3181,3004,3190,3004,3196],{"class":2976},[2978,3164,3165,2987,3167,2987,3169,3171,3173],{"class":2980,"style":2981},[2978,3166,2986],{"class":2984,"style":2985},[2978,3168,2990],{"class":2984,"style":2985},[2978,3170,2995],{"class":2993,"style":2994},[2978,3172,3000],{"class":2998,"style":2999},[2978,3174,3003],{"class":2998,"style":2999},[2978,3176,3007,3177,2987,3179],{"class":2980,"style":2981},[2978,3178,3012],{"class":3010,"style":3011},[2978,3180,3003],{"class":2998,"style":2999},[2978,3182,3183,3184,2987,3186,3188],{"class":2980,"style":2981},"    asyncEntry",[2978,3185,3012],{"class":3010,"style":3011},[2978,3187,3024],{"class":3022,"style":3023},[2978,3189,3027],{"class":3010,"style":3011},[2978,3191,3030,3192,3194],{"class":2980,"style":2981},[2978,3193,3033],{"class":2998,"style":2999},[2978,3195,3027],{"class":3010,"style":3011},[2978,3197,3198,3200],{"class":2980,"style":2981},[2978,3199,3033],{"class":2998,"style":2999},[2978,3201,3042],{"class":2998,"style":2999},[2941,3203,2757],{"id":2756},[2915,3205,3206,3207,3210,3211,2957,3214,3217],{},"Externalizes ",[2922,3208,3209],{},"vue",", ",[2922,3212,3213],{},"@vue\u002F*",[2922,3215,3216],{},"vue-router"," when building.",[2915,3219,3050],{},[2969,3221,3222],{"language":2971,"meta":2972,"class":2973},[2922,3223,3224,3004,3236,3004,3242,3004,3251,3004,3257],{"class":2976},[2978,3225,3226,2987,3228,2987,3230,3232,3234],{"class":2980,"style":2981},[2978,3227,2986],{"class":2984,"style":2985},[2978,3229,2990],{"class":2984,"style":2985},[2978,3231,2995],{"class":2993,"style":2994},[2978,3233,3000],{"class":2998,"style":2999},[2978,3235,3003],{"class":2998,"style":2999},[2978,3237,3007,3238,2987,3240],{"class":2980,"style":2981},[2978,3239,3012],{"class":3010,"style":3011},[2978,3241,3003],{"class":2998,"style":2999},[2978,3243,3244,3245,2987,3247,3249],{"class":2980,"style":2981},"    externalVue",[2978,3246,3012],{"class":3010,"style":3011},[2978,3248,3080],{"class":3022,"style":3023},[2978,3250,3027],{"class":3010,"style":3011},[2978,3252,3030,3253,3255],{"class":2980,"style":2981},[2978,3254,3033],{"class":2998,"style":2999},[2978,3256,3027],{"class":3010,"style":3011},[2978,3258,3259,3261],{"class":2980,"style":2981},[2978,3260,3033],{"class":2998,"style":2999},[2978,3262,3042],{"class":2998,"style":2999},[3264,3265,3266],"warning",{},"This feature will likely be removed in a near future.",[2941,3268,2760],{"id":2759},[2915,3270,3271,3272,2957,3274,3276],{},"Extracts handler functions from ",[2922,3273,561],{},[2922,3275,596],{}," calls into separate chunks for improved code splitting and caching efficiency.",[2969,3278,3279],{"language":2971,"meta":2972,"class":2973},[2922,3280,3281,3004,3293,3004,3299,3004,3308,3004,3314],{"class":2976},[2978,3282,3283,2987,3285,2987,3287,3289,3291],{"class":2980,"style":2981},[2978,3284,2986],{"class":2984,"style":2985},[2978,3286,2990],{"class":2984,"style":2985},[2978,3288,2995],{"class":2993,"style":2994},[2978,3290,3000],{"class":2998,"style":2999},[2978,3292,3003],{"class":2998,"style":2999},[2978,3294,3007,3295,2987,3297],{"class":2980,"style":2981},[2978,3296,3012],{"class":3010,"style":3011},[2978,3298,3003],{"class":2998,"style":2999},[2978,3300,3301,3302,2987,3304,3306],{"class":2980,"style":2981},"    extractAsyncDataHandlers",[2978,3303,3012],{"class":3010,"style":3011},[2978,3305,3024],{"class":3022,"style":3023},[2978,3307,3027],{"class":3010,"style":3011},[2978,3309,3030,3310,3312],{"class":2980,"style":2981},[2978,3311,3033],{"class":2998,"style":2999},[2978,3313,3027],{"class":3010,"style":3011},[2978,3315,3316,3318],{"class":2980,"style":2981},[2978,3317,3033],{"class":2998,"style":2999},[2978,3319,3042],{"class":2998,"style":2999},[2915,3321,3322],{},"This feature transforms inline handler functions into dynamically imported chunks:",[2969,3324,3326],{"language":3209,"class":3325},"shj shiki shj-lang-vue",[2922,3327,3329,3004,3336,3004,3354,3004,3393,3004,3409,3004,3415],{"class":3328},"language-vue",[2978,3330,3331],{"class":2980,"style":2981},[2978,3332,3335],{"class":3333,"style":3334},"shj-syn-cmnt shj-cmnt","color:#90A4AE;--shiki-dark:#676E95","\u003C!-- Before -->",[2978,3337,3338,3341,2987,3346,3351],{"class":2980,"style":2981},[2978,3339,3340],{"class":3010,"style":3011},"\u003C",[2978,3342,3345],{"class":3343,"style":3344},"shj-syn-var shj-var","color:#E53935;--shiki-dark:#f07178","script",[2978,3347,3350],{"class":3348,"style":3349},"shj-syn-class shj-class","color:#E2931D;--shiki-dark:#FFCB6B","setup",[2978,3352,3353],{"class":3010,"style":3011},">",[2978,3355,3356,2987,3359,3361,3362,2987,3364,2987,3367,2987,3370,3372,3374,3379,2987,3381,2987,3384,3386,2987,3388,2987,3391],{"class":2980,"style":2981},[2978,3357,3358],{"class":2984,"style":2985},"const",[2978,3360,3003],{"class":2998,"style":2999}," data ",[2978,3363,3033],{"class":2998,"style":2999},[2978,3365,3366],{"class":3010,"style":3011},"=",[2978,3368,3369],{"class":2984,"style":2985},"await",[2978,3371,561],{"class":2993,"style":2994},[2978,3373,3000],{"class":2998,"style":2999},[2978,3375,3378],{"class":3376,"style":3377},"shj-syn-str shj-str","color:#91B859;--shiki-dark:#C3E88D","'user'",[2978,3380,3027],{"class":3010,"style":3011},[2978,3382,3383],{"class":2984,"style":2985},"async",[2978,3385,3000],{"class":2998,"style":2999},[2978,3387,3042],{"class":2998,"style":2999},[2978,3389,3390],{"class":2984,"style":2985},"=>",[2978,3392,3003],{"class":2998,"style":2999},[2978,3394,3030,3395,2987,3398,2987,3400,3402,3404,3407],{"class":2980,"style":2981},[2978,3396,3397],{"class":2984,"style":2985},"return",[2978,3399,3369],{"class":2984,"style":2985},[2978,3401,702],{"class":2993,"style":2994},[2978,3403,3000],{"class":2998,"style":2999},[2978,3405,3406],{"class":3376,"style":3377},"'\u002Fapi\u002Fuser'",[2978,3408,3042],{"class":2998,"style":2999},[2978,3410,3411,3413],{"class":2980,"style":2981},[2978,3412,3033],{"class":2998,"style":2999},[2978,3414,3042],{"class":2998,"style":2999},[2978,3416,3417,3420,3422],{"class":2980,"style":2981},[2978,3418,3419],{"class":3010,"style":3011},"\u003C\u002F",[2978,3421,3345],{"class":3343,"style":3344},[2978,3423,3353],{"class":3010,"style":3011},[2969,3425,3426],{"language":3209,"class":3325},[2922,3427,3428,3004,3433,3004,3443,3004,3469,3004,3505,3004,3509],{"class":3328},[2978,3429,3430],{"class":2980,"style":2981},[2978,3431,3432],{"class":3333,"style":3334},"\u003C!-- After transformation -->",[2978,3434,3435,3437,2987,3439,3441],{"class":2980,"style":2981},[2978,3436,3340],{"class":3010,"style":3011},[2978,3438,3345],{"class":3343,"style":3344},[2978,3440,3350],{"class":3348,"style":3349},[2978,3442,3353],{"class":3010,"style":3011},[2978,3444,3445,2987,3447,3361,3449,2987,3451,2987,3453,2987,3455,3457,3459,3461,2987,3463,3465,2987,3467],{"class":2980,"style":2981},[2978,3446,3358],{"class":2984,"style":2985},[2978,3448,3003],{"class":2998,"style":2999},[2978,3450,3033],{"class":2998,"style":2999},[2978,3452,3366],{"class":3010,"style":3011},[2978,3454,3369],{"class":2984,"style":2985},[2978,3456,561],{"class":2993,"style":2994},[2978,3458,3000],{"class":2998,"style":2999},[2978,3460,3378],{"class":3376,"style":3377},[2978,3462,3027],{"class":3010,"style":3011},[2978,3464,3000],{"class":2998,"style":2999},[2978,3466,3042],{"class":2998,"style":2999},[2978,3468,3390],{"class":2984,"style":2985},[2978,3470,3030,3471,3474,3476,3479,3481,3484,3487,3489,3490,3492,3493,3495,3497,3499,3501,3503],{"class":2980,"style":2981},[2978,3472,3473],{"class":2984,"style":2985},"import",[2978,3475,3000],{"class":2998,"style":2999},[2978,3477,3478],{"class":3376,"style":3377},"'\u002Fgenerated-chunk.js'",[2978,3480,3042],{"class":2998,"style":2999},[2978,3482,3483],{"class":3010,"style":3011},".",[2978,3485,3486],{"class":2993,"style":2994},"then",[2978,3488,3000],{"class":2998,"style":2999},"r ",[2978,3491,3390],{"class":2984,"style":2985}," r",[2978,3494,3483],{"class":3010,"style":3011},[2978,3496,2990],{"class":2984,"style":2985},[2978,3498,3000],{"class":2998,"style":2999},[2978,3500,3042],{"class":2998,"style":2999},[2978,3502,3042],{"class":2998,"style":2999},[2978,3504,3027],{"class":3010,"style":3011},[2978,3506,3507],{"class":2980,"style":2981},[2978,3508,3042],{"class":2998,"style":2999},[2978,3510,3511,3513,3515],{"class":2980,"style":2981},[2978,3512,3419],{"class":3010,"style":3011},[2978,3514,3345],{"class":3343,"style":3344},[2978,3516,3353],{"class":3010,"style":3011},[2915,3518,3519],{},"The benefit of this transformation is that we can split out data fetching logic — while still allowing the code to be loaded if required.",[3521,3522,3523,3524,3528],"important",{},"This feature is only recommended for ",[3525,3526,3527],"strong",{},"static builds"," with payload extraction, and where data does not need to be re-fetched at runtime.",[2941,3530,2763],{"id":2762},[2915,3532,3533,3534,3537],{},"Emits ",[2922,3535,3536],{},"app:chunkError"," hook when there is an error loading vite\u002Fwebpack chunks. Default behavior is to perform a reload of the new route on navigation to a new route when a chunk fails to load.",[2915,3539,3540,3541,3544],{},"By default, Nuxt will also perform a reload of the new route when a chunk fails to load when navigating to a new route (",[2922,3542,3543],{},"automatic",").",[2915,3546,3547,3548,3551,3552,3556],{},"Setting ",[2922,3549,3550],{},"automatic-immediate"," will lead Nuxt to perform a reload of the current route right when a chunk fails to load (instead of waiting for navigation). This is useful for chunk errors that are not triggered by navigation, e.g., when your Nuxt app fails to load a ",[2927,3553,3555],{"href":3554},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fcomponents#dynamic-imports","lazy component",". A potential downside of this behavior is undesired reloads, e.g., when your app does not need the chunk that caused the error.",[2915,3558,3559,3560,3562,3563,3483],{},"You can disable automatic handling by setting this to ",[2922,3561,3080],{},", or handle chunk errors manually by setting it to ",[2922,3564,3565],{},"manual",[2969,3567,3568],{"language":2971,"meta":2972,"class":2973},[2922,3569,3570,3004,3582,3004,3588,3004,3601,3004,3607],{"class":2976},[2978,3571,3572,2987,3574,2987,3576,3578,3580],{"class":2980,"style":2981},[2978,3573,2986],{"class":2984,"style":2985},[2978,3575,2990],{"class":2984,"style":2985},[2978,3577,2995],{"class":2993,"style":2994},[2978,3579,3000],{"class":2998,"style":2999},[2978,3581,3003],{"class":2998,"style":2999},[2978,3583,3007,3584,2987,3586],{"class":2980,"style":2981},[2978,3585,3012],{"class":3010,"style":3011},[2978,3587,3003],{"class":2998,"style":2999},[2978,3589,3590,3591,2987,3593,3596,2987,3598],{"class":2980,"style":2981},"    emitRouteChunkError",[2978,3592,3012],{"class":3010,"style":3011},[2978,3594,3595],{"class":3376,"style":3377},"'automatic'",[2978,3597,3027],{"class":3010,"style":3011},[2978,3599,3600],{"class":3333,"style":3334},"\u002F\u002F or 'automatic-immediate', 'manual' or false",[2978,3602,3030,3603,3605],{"class":2980,"style":2981},[2978,3604,3033],{"class":2998,"style":2999},[2978,3606,3027],{"class":3010,"style":3011},[2978,3608,3609,3611],{"class":2980,"style":2981},[2978,3610,3033],{"class":2998,"style":2999},[2978,3612,3042],{"class":2998,"style":2999},[2941,3614,2766],{"id":2765},[2915,3616,3617],{},"Whether Nuxt should throw an error (and fail to load) if a Nuxt module is incompatible.",[2915,3619,3620],{},"This feature is disabled by default.",[2969,3622,3623],{"language":2971,"meta":2972,"class":2973},[2922,3624,3625,3004,3637,3004,3643,3004,3652,3004,3658],{"class":2976},[2978,3626,3627,2987,3629,2987,3631,3633,3635],{"class":2980,"style":2981},[2978,3628,2986],{"class":2984,"style":2985},[2978,3630,2990],{"class":2984,"style":2985},[2978,3632,2995],{"class":2993,"style":2994},[2978,3634,3000],{"class":2998,"style":2999},[2978,3636,3003],{"class":2998,"style":2999},[2978,3638,3007,3639,2987,3641],{"class":2980,"style":2981},[2978,3640,3012],{"class":3010,"style":3011},[2978,3642,3003],{"class":2998,"style":2999},[2978,3644,3645,3646,2987,3648,3650],{"class":2980,"style":2981},"    enforceModuleCompatibility",[2978,3647,3012],{"class":3010,"style":3011},[2978,3649,3024],{"class":3022,"style":3023},[2978,3651,3027],{"class":3010,"style":3011},[2978,3653,3030,3654,3656],{"class":2980,"style":2981},[2978,3655,3033],{"class":2998,"style":2999},[2978,3657,3027],{"class":3010,"style":3011},[2978,3659,3660,3662],{"class":2980,"style":2981},[2978,3661,3033],{"class":2998,"style":2999},[2978,3663,3042],{"class":2998,"style":2999},[2941,3665,2769],{"id":2768},[2915,3667,3668,3669,3672,3673,3678],{},"Allows Nuxt app state to be restored from ",[2922,3670,3671],{},"sessionStorage"," when reloading the page after a chunk error or manual ",[2927,3674,3675],{"href":1706},[2922,3676,3677],{},"reloadNuxtApp()"," call.",[2915,3680,3681],{},"To avoid hydration errors, it will be applied only after the Vue app has been mounted, meaning there may be a flicker on initial load.",[3521,3683,3684,3685,3689],{},"Consider carefully before enabling this as it can cause unexpected behavior,\nand consider providing explicit keys to ",[2927,3686,3687],{"href":1653},[2922,3688,691],{}," as auto-generated keys may not match across builds.",[2969,3691,3692],{"language":2971,"meta":2972,"class":2973},[2922,3693,3694,3004,3706,3004,3712,3004,3721,3004,3727],{"class":2976},[2978,3695,3696,2987,3698,2987,3700,3702,3704],{"class":2980,"style":2981},[2978,3697,2986],{"class":2984,"style":2985},[2978,3699,2990],{"class":2984,"style":2985},[2978,3701,2995],{"class":2993,"style":2994},[2978,3703,3000],{"class":2998,"style":2999},[2978,3705,3003],{"class":2998,"style":2999},[2978,3707,3007,3708,2987,3710],{"class":2980,"style":2981},[2978,3709,3012],{"class":3010,"style":3011},[2978,3711,3003],{"class":2998,"style":2999},[2978,3713,3714,3715,2987,3717,3719],{"class":2980,"style":2981},"    restoreState",[2978,3716,3012],{"class":3010,"style":3011},[2978,3718,3024],{"class":3022,"style":3023},[2978,3720,3027],{"class":3010,"style":3011},[2978,3722,3030,3723,3725],{"class":2980,"style":2981},[2978,3724,3033],{"class":2998,"style":2999},[2978,3726,3027],{"class":3010,"style":3011},[2978,3728,3729,3731],{"class":2980,"style":2981},[2978,3730,3033],{"class":2998,"style":2999},[2978,3732,3042],{"class":2998,"style":2999},[2941,3734,2772],{"id":2771},[2915,3736,3737,3738,3483],{},"Define route rules at the page level using ",[2927,3739,3740],{"href":1684},[2922,3741,766],{},[2969,3743,3744],{"language":2971,"meta":2972,"class":2973},[2922,3745,3746,3004,3758,3004,3764,3004,3773,3004,3779],{"class":2976},[2978,3747,3748,2987,3750,2987,3752,3754,3756],{"class":2980,"style":2981},[2978,3749,2986],{"class":2984,"style":2985},[2978,3751,2990],{"class":2984,"style":2985},[2978,3753,2995],{"class":2993,"style":2994},[2978,3755,3000],{"class":2998,"style":2999},[2978,3757,3003],{"class":2998,"style":2999},[2978,3759,3007,3760,2987,3762],{"class":2980,"style":2981},[2978,3761,3012],{"class":3010,"style":3011},[2978,3763,3003],{"class":2998,"style":2999},[2978,3765,3766,3767,2987,3769,3771],{"class":2980,"style":2981},"    inlineRouteRules",[2978,3768,3012],{"class":3010,"style":3011},[2978,3770,3024],{"class":3022,"style":3023},[2978,3772,3027],{"class":3010,"style":3011},[2978,3774,3030,3775,3777],{"class":2980,"style":2981},[2978,3776,3033],{"class":2998,"style":2999},[2978,3778,3027],{"class":3010,"style":3011},[2978,3780,3781,3783],{"class":2980,"style":2981},[2978,3782,3033],{"class":2998,"style":2999},[2978,3784,3042],{"class":2998,"style":2999},[2915,3786,3787,3788,3483],{},"Matching route rules will be created, based on the page's ",[2922,3789,3790],{},"path",[3148,3792,3794,3795,3797],{"to":1684,"icon":3793},"i-lucide-square-function","Read more in ",[2922,3796,766],{}," utility.",[3148,3799],{"to":3800,"icon":257},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Frendering#hybrid-rendering",[2941,3802,2775],{"id":2774},[2915,3804,3805],{},"Allows rendering of JSON payloads with support for revivifying complex types.",[2915,3807,3050],{},[2969,3809,3810],{"language":2971,"meta":2972,"class":2973},[2922,3811,3812,3004,3824,3004,3830,3004,3839,3004,3845],{"class":2976},[2978,3813,3814,2987,3816,2987,3818,3820,3822],{"class":2980,"style":2981},[2978,3815,2986],{"class":2984,"style":2985},[2978,3817,2990],{"class":2984,"style":2985},[2978,3819,2995],{"class":2993,"style":2994},[2978,3821,3000],{"class":2998,"style":2999},[2978,3823,3003],{"class":2998,"style":2999},[2978,3825,3007,3826,2987,3828],{"class":2980,"style":2981},[2978,3827,3012],{"class":3010,"style":3011},[2978,3829,3003],{"class":2998,"style":2999},[2978,3831,3832,3833,2987,3835,3837],{"class":2980,"style":2981},"    renderJsonPayloads",[2978,3834,3012],{"class":3010,"style":3011},[2978,3836,3080],{"class":3022,"style":3023},[2978,3838,3027],{"class":3010,"style":3011},[2978,3840,3030,3841,3843],{"class":2980,"style":2981},[2978,3842,3033],{"class":2998,"style":2999},[2978,3844,3027],{"class":3010,"style":3011},[2978,3846,3847,3849],{"class":2980,"style":2981},[2978,3848,3033],{"class":2998,"style":2999},[2978,3850,3042],{"class":2998,"style":2999},[2941,3852,2778],{"id":2777},[2915,3854,3855],{},"Disables Vue server renderer endpoint within Nitro.",[2969,3857,3858],{"language":2971,"meta":2972,"class":2973},[2922,3859,3860,3004,3872,3004,3878,3004,3887,3004,3893],{"class":2976},[2978,3861,3862,2987,3864,2987,3866,3868,3870],{"class":2980,"style":2981},[2978,3863,2986],{"class":2984,"style":2985},[2978,3865,2990],{"class":2984,"style":2985},[2978,3867,2995],{"class":2993,"style":2994},[2978,3869,3000],{"class":2998,"style":2999},[2978,3871,3003],{"class":2998,"style":2999},[2978,3873,3007,3874,2987,3876],{"class":2980,"style":2981},[2978,3875,3012],{"class":3010,"style":3011},[2978,3877,3003],{"class":2998,"style":2999},[2978,3879,3880,3881,2987,3883,3885],{"class":2980,"style":2981},"    noVueServer",[2978,3882,3012],{"class":3010,"style":3011},[2978,3884,3024],{"class":3022,"style":3023},[2978,3886,3027],{"class":3010,"style":3011},[2978,3888,3030,3889,3891],{"class":2980,"style":2981},[2978,3890,3033],{"class":2998,"style":2999},[2978,3892,3027],{"class":3010,"style":3011},[2978,3894,3895,3897],{"class":2980,"style":2981},[2978,3896,3033],{"class":2998,"style":2999},[2978,3898,3042],{"class":2998,"style":2999},[2941,3900,2781],{"id":2780},[2915,3902,3903,3904,3907],{},"Whether to parse ",[2922,3905,3906],{},"error.data"," when rendering a server error page.",[2915,3909,3050],{},[2969,3911,3912],{"language":2971,"meta":2972,"class":2973},[2922,3913,3914,3004,3926,3004,3932,3004,3941,3004,3947],{"class":2976},[2978,3915,3916,2987,3918,2987,3920,3922,3924],{"class":2980,"style":2981},[2978,3917,2986],{"class":2984,"style":2985},[2978,3919,2990],{"class":2984,"style":2985},[2978,3921,2995],{"class":2993,"style":2994},[2978,3923,3000],{"class":2998,"style":2999},[2978,3925,3003],{"class":2998,"style":2999},[2978,3927,3007,3928,2987,3930],{"class":2980,"style":2981},[2978,3929,3012],{"class":3010,"style":3011},[2978,3931,3003],{"class":2998,"style":2999},[2978,3933,3934,3935,2987,3937,3939],{"class":2980,"style":2981},"    parseErrorData",[2978,3936,3012],{"class":3010,"style":3011},[2978,3938,3080],{"class":3022,"style":3023},[2978,3940,3027],{"class":3010,"style":3011},[2978,3942,3030,3943,3945],{"class":2980,"style":2981},[2978,3944,3033],{"class":2998,"style":2999},[2978,3946,3027],{"class":3010,"style":3011},[2978,3948,3949,3951],{"class":2980,"style":2981},[2978,3950,3033],{"class":2998,"style":2999},[2978,3952,3042],{"class":2998,"style":2999},[2941,3954,2784],{"id":2783},[2915,3956,3957],{},"Controls how payload data is delivered for prerendered and cached (ISR\u002FSWR) pages.",[3959,3960,3961,3972,3980],"ul",{},[3962,3963,3964,3967,3968,3971],"li",{},[2922,3965,3966],{},"'client'"," - Payload is inlined in HTML for the initial server render, and extracted to ",[2922,3969,3970],{},"_payload.json"," files for client-side navigation.",[3962,3973,3974,3976,3977,3979],{},[2922,3975,3024],{}," - Payload is extracted to a separate ",[2922,3978,3970],{}," file for both the initial server render and client-side navigation.",[3962,3981,3982,3984,3985,3987],{},[2922,3983,3080],{}," - Payload extraction is disabled entirely. Payload is always inlined in HTML and no ",[2922,3986,3970],{}," files are generated.",[2915,3989,3990,3991,3993,3994,3996,3997,4000,4001,3996,4003,4006],{},"The default is ",[2922,3992,3024],{},", or ",[2922,3995,3966],{}," when ",[2922,3998,3999],{},"compatibilityVersion: 5"," is set. It is forced to ",[2922,4002,3080],{},[2922,4004,4005],{},"ssr: false"," is set.",[2969,4008,4009],{"language":2971,"meta":2972,"class":2973},[2922,4010,4011,3004,4023,3004,4029,3004,4038,3004,4044],{"class":2976},[2978,4012,4013,2987,4015,2987,4017,4019,4021],{"class":2980,"style":2981},[2978,4014,2986],{"class":2984,"style":2985},[2978,4016,2990],{"class":2984,"style":2985},[2978,4018,2995],{"class":2993,"style":2994},[2978,4020,3000],{"class":2998,"style":2999},[2978,4022,3003],{"class":2998,"style":2999},[2978,4024,3007,4025,2987,4027],{"class":2980,"style":2981},[2978,4026,3012],{"class":3010,"style":3011},[2978,4028,3003],{"class":2998,"style":2999},[2978,4030,4031,4032,2987,4034,4036],{"class":2980,"style":2981},"    payloadExtraction",[2978,4033,3012],{"class":3010,"style":3011},[2978,4035,3966],{"class":3376,"style":3377},[2978,4037,3027],{"class":3010,"style":3011},[2978,4039,3030,4040,4042],{"class":2980,"style":2981},[2978,4041,3033],{"class":2998,"style":2999},[2978,4043,3027],{"class":3010,"style":3011},[2978,4045,4046,4048],{"class":2980,"style":2981},[2978,4047,3033],{"class":2998,"style":2999},[2978,4049,3042],{"class":2998,"style":2999},[3148,4051,4053],{"to":4052},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fprerendering#payload-extraction","Read more about payload extraction and the consequences of each mode.",[2941,4055,2787],{"id":2786},[2915,4057,4058,4059,4062,4063,4066],{},"Uses comment nodes (",[2922,4060,4061],{},"\u003C!--placeholder-->",") instead of ",[2922,4064,4065],{},"\u003Cdiv>"," elements as placeholders for client-only components during server-side rendering.",[2915,4068,4069,4070,4073,4074,4077,4078,4080,4081,4083],{},"When enabled, ",[2922,4071,4072],{},".client.vue"," components and ",[2922,4075,4076],{},"createClientOnly()"," wrappers render an HTML comment on the server instead of an empty ",[2922,4079,4065],{},". This fixes a Vue hydration issue where scoped styles may not be applied when the placeholder ",[2922,4082,4065],{}," and the actual component root share the same tag name.",[3264,4085,4086,4087,3210,4090,4093,4094,4096,4097,4099,4100,4103],{},"Enabling this means attributes (",[2922,4088,4089],{},"class",[2922,4091,4092],{},"style",", etc.) passed to ",[2922,4095,4072],{}," components will not appear in the SSR HTML. If you need styled placeholders to prevent layout shift, use ",[2922,4098,471],{}," with a ",[2922,4101,4102],{},"#fallback"," slot instead.",[2915,4105,4106,4107,4110,4111,4114],{},"This flag is enabled when ",[2922,4108,4109],{},"future.compatibilityVersion"," is set to ",[2922,4112,4113],{},"5"," or higher, but you can also enable it explicitly:",[2969,4116,4117],{"language":2971,"meta":2972,"class":2973},[2922,4118,4119,3004,4131,3004,4137,3004,4146,3004,4152],{"class":2976},[2978,4120,4121,2987,4123,2987,4125,4127,4129],{"class":2980,"style":2981},[2978,4122,2986],{"class":2984,"style":2985},[2978,4124,2990],{"class":2984,"style":2985},[2978,4126,2995],{"class":2993,"style":2994},[2978,4128,3000],{"class":2998,"style":2999},[2978,4130,3003],{"class":2998,"style":2999},[2978,4132,3007,4133,2987,4135],{"class":2980,"style":2981},[2978,4134,3012],{"class":3010,"style":3011},[2978,4136,3003],{"class":2998,"style":2999},[2978,4138,4139,4140,2987,4142,4144],{"class":2980,"style":2981},"    clientNodePlaceholder",[2978,4141,3012],{"class":3010,"style":3011},[2978,4143,3024],{"class":3022,"style":3023},[2978,4145,3027],{"class":3010,"style":3011},[2978,4147,3030,4148,4150],{"class":2980,"style":2981},[2978,4149,3033],{"class":2998,"style":2999},[2978,4151,3027],{"class":3010,"style":3011},[2978,4153,4154,4156],{"class":2980,"style":2981},[2978,4155,3033],{"class":2998,"style":2999},[2978,4157,3042],{"class":2998,"style":2999},[2941,4159,2789],{"id":2789},[2915,4161,4162],{},"Responds with an early 404 error for requests whose path cannot match any page route, without loading the Vue app, its plugins or middleware on the server.",[2915,4164,4165],{},"Page routes (including aliases) are compiled into a static route matcher at build time, and incoming requests are checked against it before server-side rendering begins. Requests that cannot match any page skip loading the app entirely and go straight to the error page.",[2915,4167,4168,4169,4172,4173,4179,4180,4183,4184,4187],{},"Requests without an ",[2922,4170,4171],{},"Accept: text\u002Fhtml"," header (API clients, most scanners) receive a JSON error without loading the app at all. HTML requests still server-render the error page. A ",[2927,4174,4175,4178],{"href":3800},[2922,4176,4177],{},"cache"," route rule"," covering the path advertises its ",[2922,4181,4182],{},"maxAge"," as ",[2922,4185,4186],{},"Cache-Control"," on GET\u002FHEAD misses too, letting a CDN absorb repeat requests for unknown paths.",[2969,4189,4190],{"language":2971,"meta":2972,"class":2973},[2922,4191,4192,3004,4204,3004,4210,3004,4219,3004,4225],{"class":2976},[2978,4193,4194,2987,4196,2987,4198,4200,4202],{"class":2980,"style":2981},[2978,4195,2986],{"class":2984,"style":2985},[2978,4197,2990],{"class":2984,"style":2985},[2978,4199,2995],{"class":2993,"style":2994},[2978,4201,3000],{"class":2998,"style":2999},[2978,4203,3003],{"class":2998,"style":2999},[2978,4205,3007,4206,2987,4208],{"class":2980,"style":2981},[2978,4207,3012],{"class":3010,"style":3011},[2978,4209,3003],{"class":2998,"style":2999},[2978,4211,4212,4213,2987,4215,4217],{"class":2980,"style":2981},"    early404",[2978,4214,3012],{"class":3010,"style":3011},[2978,4216,3024],{"class":3022,"style":3023},[2978,4218,3027],{"class":3010,"style":3011},[2978,4220,3030,4221,4223],{"class":2980,"style":2981},[2978,4222,3033],{"class":2998,"style":2999},[2978,4224,3027],{"class":3010,"style":3011},[2978,4226,4227,4229],{"class":2980,"style":2981},[2978,4228,3033],{"class":2998,"style":2999},[2978,4230,3042],{"class":2998,"style":2999},[3264,4232,4233,4236,4257],{},[2915,4234,4235],{},"This is opt-in because it can break apps that rely on runtime routing:",[3959,4237,4238,4254],{},[3962,4239,4240,4241,4244,4245,4248,4249,4253],{},"pages added dynamically with ",[2922,4242,4243],{},"router.addRoute()"," in a plugin. To surface this early, ",[2922,4246,4247],{},"addRoute"," is removed from the type of the router returned by ",[2927,4250,4251],{"href":1643},[2922,4252,666],{}," when the option is enabled.",[3962,4255,4256],{},"route middleware that redirects unknown paths to existing pages",[2915,4258,4259,4260,4263,4264,4267,4268,4271,4272,4275,4276,4278],{},"The option is disabled automatically in development, when ",[2922,4261,4262],{},"hashMode"," is enabled, when a root-level catch-all page (such as ",[2922,4265,4266],{},"pages\u002F[...slug].vue",") matches every path, and when a custom ",[2922,4269,4270],{},"app\u002Frouter.options"," file may modify ",[2922,4273,4274],{},"routes"," (a file whose default export is a plain object without a ",[2922,4277,4274],{}," key remains compatible).",[2941,4280,2792],{"id":2791},[2915,4282,4283,4284,4288],{},"Enables the experimental ",[2927,4285,4286],{"href":1543},[2922,4287,480],{}," component for rendering content on the client if there's an error in SSR.",[2969,4290,4291],{"language":2971,"meta":2972,"class":2973},[2922,4292,4293,3004,4305,3004,4311,3004,4320,3004,4326],{"class":2976},[2978,4294,4295,2987,4297,2987,4299,4301,4303],{"class":2980,"style":2981},[2978,4296,2986],{"class":2984,"style":2985},[2978,4298,2990],{"class":2984,"style":2985},[2978,4300,2995],{"class":2993,"style":2994},[2978,4302,3000],{"class":2998,"style":2999},[2978,4304,3003],{"class":2998,"style":2999},[2978,4306,3007,4307,2987,4309],{"class":2980,"style":2981},[2978,4308,3012],{"class":3010,"style":3011},[2978,4310,3003],{"class":2998,"style":2999},[2978,4312,4313,4314,2987,4316,4318],{"class":2980,"style":2981},"    clientFallback",[2978,4315,3012],{"class":3010,"style":3011},[2978,4317,3024],{"class":3022,"style":3023},[2978,4319,3027],{"class":3010,"style":3011},[2978,4321,3030,4322,4324],{"class":2980,"style":2981},[2978,4323,3033],{"class":2998,"style":2999},[2978,4325,3027],{"class":3010,"style":3011},[2978,4327,4328,4330],{"class":2980,"style":2981},[2978,4329,3033],{"class":2998,"style":2999},[2978,4331,3042],{"class":2998,"style":2999},[2941,4333,2795],{"id":2794},[2915,4335,4336],{},"Enables cross-origin prefetch using the Speculation Rules API.",[2969,4338,4339],{"language":2971,"meta":2972,"class":2973},[2922,4340,4341,3004,4353,3004,4359,3004,4368,3004,4374],{"class":2976},[2978,4342,4343,2987,4345,2987,4347,4349,4351],{"class":2980,"style":2981},[2978,4344,2986],{"class":2984,"style":2985},[2978,4346,2990],{"class":2984,"style":2985},[2978,4348,2995],{"class":2993,"style":2994},[2978,4350,3000],{"class":2998,"style":2999},[2978,4352,3003],{"class":2998,"style":2999},[2978,4354,3007,4355,2987,4357],{"class":2980,"style":2981},[2978,4356,3012],{"class":3010,"style":3011},[2978,4358,3003],{"class":2998,"style":2999},[2978,4360,4361,4362,2987,4364,4366],{"class":2980,"style":2981},"    crossOriginPrefetch",[2978,4363,3012],{"class":3010,"style":3011},[2978,4365,3024],{"class":3022,"style":3023},[2978,4367,3027],{"class":3010,"style":3011},[2978,4369,3030,4370,4372],{"class":2980,"style":2981},[2978,4371,3033],{"class":2998,"style":2999},[2978,4373,3027],{"class":3010,"style":3011},[2978,4375,4376,4378],{"class":2980,"style":2981},[2978,4377,3033],{"class":2998,"style":2999},[2978,4379,3042],{"class":2998,"style":2999},[3148,4381,4384,4385,3483],{"icon":4382,"to":4383,"target":3152},"i-simple-icons-w3c","https:\u002F\u002Fwicg.github.io\u002Fnav-speculation\u002Fprefetch.html","Read more about the ",[3525,4386,4387],{},"Speculation Rules API",[2941,4389,2798],{"id":2797},[2915,4391,4392],{},"Enables View Transition API integration with client-side router.",[2969,4394,4395],{"language":2971,"meta":2972,"class":2973},[2922,4396,4397,3004,4409,3004,4415,3004,4424,3004,4430],{"class":2976},[2978,4398,4399,2987,4401,2987,4403,4405,4407],{"class":2980,"style":2981},[2978,4400,2986],{"class":2984,"style":2985},[2978,4402,2990],{"class":2984,"style":2985},[2978,4404,2995],{"class":2993,"style":2994},[2978,4406,3000],{"class":2998,"style":2999},[2978,4408,3003],{"class":2998,"style":2999},[2978,4410,3007,4411,2987,4413],{"class":2980,"style":2981},[2978,4412,3012],{"class":3010,"style":3011},[2978,4414,3003],{"class":2998,"style":2999},[2978,4416,4417,4418,2987,4420,4422],{"class":2980,"style":2981},"    viewTransition",[2978,4419,3012],{"class":3010,"style":3011},[2978,4421,3024],{"class":3022,"style":3023},[2978,4423,3027],{"class":3010,"style":3011},[2978,4425,3030,4426,4428],{"class":2980,"style":2981},[2978,4427,3033],{"class":2998,"style":2999},[2978,4429,3027],{"class":3010,"style":3011},[2978,4431,4432,4434],{"class":2980,"style":2981},[2978,4433,3033],{"class":2998,"style":2999},[2978,4435,3042],{"class":2998,"style":2999},[2915,4437,4438,4439,4443],{},"You can also pass an object to configure ",[2927,4440,4442],{"href":4441},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ftransitions#view-transition-types","view transition types",", which allow different CSS animations based on the type of navigation:",[2969,4445,4446],{"language":2971,"meta":2972,"class":2973},[2922,4447,4448,3004,4460,3004,4466,3004,4472,3004,4481,3004,4497,3004,4504,3004,4510],{"class":2976},[2978,4449,4450,2987,4452,2987,4454,4456,4458],{"class":2980,"style":2981},[2978,4451,2986],{"class":2984,"style":2985},[2978,4453,2990],{"class":2984,"style":2985},[2978,4455,2995],{"class":2993,"style":2994},[2978,4457,3000],{"class":2998,"style":2999},[2978,4459,3003],{"class":2998,"style":2999},[2978,4461,3007,4462,2987,4464],{"class":2980,"style":2981},[2978,4463,3012],{"class":3010,"style":3011},[2978,4465,3003],{"class":2998,"style":2999},[2978,4467,4417,4468,2987,4470],{"class":2980,"style":2981},[2978,4469,3012],{"class":3010,"style":3011},[2978,4471,3003],{"class":2998,"style":2999},[2978,4473,4474,4475,2987,4477,4479],{"class":2980,"style":2981},"      enabled",[2978,4476,3012],{"class":3010,"style":3011},[2978,4478,3024],{"class":3022,"style":3023},[2978,4480,3027],{"class":3010,"style":3011},[2978,4482,4483,4484,2987,4486,4489,4492,4495],{"class":2980,"style":2981},"      types",[2978,4485,3012],{"class":3010,"style":3011},[2978,4487,4488],{"class":2998,"style":2999},"[",[2978,4490,4491],{"class":3376,"style":3377},"'slide'",[2978,4493,4494],{"class":2998,"style":2999},"]",[2978,4496,3027],{"class":3010,"style":3011},[2978,4498,4499,4500,4502],{"class":2980,"style":2981},"    ",[2978,4501,3033],{"class":2998,"style":2999},[2978,4503,3027],{"class":3010,"style":3011},[2978,4505,3030,4506,4508],{"class":2980,"style":2981},[2978,4507,3033],{"class":2998,"style":2999},[2978,4509,3027],{"class":3010,"style":3011},[2978,4511,4512,4514],{"class":2980,"style":2981},[2978,4513,3033],{"class":2998,"style":2999},[2978,4515,3042],{"class":2998,"style":2999},[4517,4518],"link-example",{"to":4519,"target":3152},"https:\u002F\u002Fstackblitz.com\u002Fedit\u002Fnuxt-view-transitions?file=app.vue",[3148,4521,4384,4524,3483],{"icon":4522,"to":4523,"target":3152},"i-simple-icons-mdnwebdocs","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FView_Transition_API",[3525,4525,4526],{},"View Transition API",[3148,4528,4384,4531,3483],{"icon":4529,"to":4530,"target":3152},"i-simple-icons-google","https:\u002F\u002Fdeveloper.chrome.com\u002Fblog\u002Fview-transitions-update-io24",[3525,4532,4526],{},[2941,4534,2801],{"id":2800},[2915,4536,4537],{},"Enables writing of early hints when using node server.",[2969,4539,4540],{"language":2971,"meta":2972,"class":2973},[2922,4541,4542,3004,4554,3004,4560,3004,4569,3004,4575],{"class":2976},[2978,4543,4544,2987,4546,2987,4548,4550,4552],{"class":2980,"style":2981},[2978,4545,2986],{"class":2984,"style":2985},[2978,4547,2990],{"class":2984,"style":2985},[2978,4549,2995],{"class":2993,"style":2994},[2978,4551,3000],{"class":2998,"style":2999},[2978,4553,3003],{"class":2998,"style":2999},[2978,4555,3007,4556,2987,4558],{"class":2980,"style":2981},[2978,4557,3012],{"class":3010,"style":3011},[2978,4559,3003],{"class":2998,"style":2999},[2978,4561,4562,4563,2987,4565,4567],{"class":2980,"style":2981},"    writeEarlyHints",[2978,4564,3012],{"class":3010,"style":3011},[2978,4566,3024],{"class":3022,"style":3023},[2978,4568,3027],{"class":3010,"style":3011},[2978,4570,3030,4571,4573],{"class":2980,"style":2981},[2978,4572,3033],{"class":2998,"style":2999},[2978,4574,3027],{"class":3010,"style":3011},[2978,4576,4577,4579],{"class":2980,"style":2981},[2978,4578,3033],{"class":2998,"style":2999},[2978,4580,3042],{"class":2998,"style":2999},[2941,4582,2804],{"id":2803},[2915,4584,4585,4586,2957,4590,4593],{},"Enables experimental component islands support with ",[2927,4587,4588],{"href":1557},[2922,4589,515],{},[2922,4591,4592],{},".island.vue"," files.",[2969,4595,4596],{"language":2971,"meta":2972,"class":2973},[2922,4597,4598,3004,4610,3004,4616,3004,4628,3004,4634],{"class":2976},[2978,4599,4600,2987,4602,2987,4604,4606,4608],{"class":2980,"style":2981},[2978,4601,2986],{"class":2984,"style":2985},[2978,4603,2990],{"class":2984,"style":2985},[2978,4605,2995],{"class":2993,"style":2994},[2978,4607,3000],{"class":2998,"style":2999},[2978,4609,3003],{"class":2998,"style":2999},[2978,4611,3007,4612,2987,4614],{"class":2980,"style":2981},[2978,4613,3012],{"class":3010,"style":3011},[2978,4615,3003],{"class":2998,"style":2999},[2978,4617,4618,4619,2987,4621,4623,2987,4625],{"class":2980,"style":2981},"    componentIslands",[2978,4620,3012],{"class":3010,"style":3011},[2978,4622,3024],{"class":3022,"style":3023},[2978,4624,3027],{"class":3010,"style":3011},[2978,4626,4627],{"class":3333,"style":3334},"\u002F\u002F false or 'local+remote'",[2978,4629,3030,4630,4632],{"class":2980,"style":2981},[2978,4631,3033],{"class":2998,"style":2999},[2978,4633,3027],{"class":3010,"style":3011},[2978,4635,4636,4638],{"class":2980,"style":2981},[2978,4637,3033],{"class":2998,"style":2999},[2978,4639,3042],{"class":2998,"style":2999},[3148,4641],{"to":1436},[2937,4643,4644,4645,4648,4649,4653,4654,3483],{},"Skip ",[2922,4646,4647],{},"nuxt-client"," on non-SFC components such as ",[2927,4650,4651],{"href":1549},[2922,4652,495],{},". See ",[2927,4655,4657,4658],{"href":4656},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fserver-components#selective-hydration-with-nuxt-client","selective hydration with ",[2922,4659,4647],{},[3148,4661,4663],{"icon":3150,"to":4662,"target":3152},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fissues\u002F19772","You can follow the server components roadmap on GitHub.",[2941,4665,2807],{"id":2806},[2915,4667,4668,4669,3210,4672,3210,4675,2957,4678,4681],{},"Resolve ",[2922,4670,4671],{},"~",[2922,4673,4674],{},"~~",[2922,4676,4677],{},"@",[2922,4679,4680],{},"@@"," aliases located within layers with respect to their layer source and root directories.",[2915,4683,3050],{},[2969,4685,4686],{"language":2971,"meta":2972,"class":2973},[2922,4687,4688,3004,4700,3004,4706,3004,4715,3004,4721],{"class":2976},[2978,4689,4690,2987,4692,2987,4694,4696,4698],{"class":2980,"style":2981},[2978,4691,2986],{"class":2984,"style":2985},[2978,4693,2990],{"class":2984,"style":2985},[2978,4695,2995],{"class":2993,"style":2994},[2978,4697,3000],{"class":2998,"style":2999},[2978,4699,3003],{"class":2998,"style":2999},[2978,4701,3007,4702,2987,4704],{"class":2980,"style":2981},[2978,4703,3012],{"class":3010,"style":3011},[2978,4705,3003],{"class":2998,"style":2999},[2978,4707,4708,4709,2987,4711,4713],{"class":2980,"style":2981},"    localLayerAliases",[2978,4710,3012],{"class":3010,"style":3011},[2978,4712,3080],{"class":3022,"style":3023},[2978,4714,3027],{"class":3010,"style":3011},[2978,4716,3030,4717,4719],{"class":2980,"style":2981},[2978,4718,3033],{"class":2998,"style":2999},[2978,4720,3027],{"class":3010,"style":3011},[2978,4722,4723,4725],{"class":2980,"style":2981},[2978,4724,3033],{"class":2998,"style":2999},[2978,4726,3042],{"class":2998,"style":2999},[2941,4728,2810],{"id":2809},[2915,4730,4731],{},"Enable the new experimental typed router.",[2969,4733,4734],{"language":2971,"meta":2972,"class":2973},[2922,4735,4736,3004,4748,3004,4754,3004,4763,3004,4769],{"class":2976},[2978,4737,4738,2987,4740,2987,4742,4744,4746],{"class":2980,"style":2981},[2978,4739,2986],{"class":2984,"style":2985},[2978,4741,2990],{"class":2984,"style":2985},[2978,4743,2995],{"class":2993,"style":2994},[2978,4745,3000],{"class":2998,"style":2999},[2978,4747,3003],{"class":2998,"style":2999},[2978,4749,3007,4750,2987,4752],{"class":2980,"style":2981},[2978,4751,3012],{"class":3010,"style":3011},[2978,4753,3003],{"class":2998,"style":2999},[2978,4755,4756,4757,2987,4759,4761],{"class":2980,"style":2981},"    typedPages",[2978,4758,3012],{"class":3010,"style":3011},[2978,4760,3024],{"class":3022,"style":3023},[2978,4762,3027],{"class":3010,"style":3011},[2978,4764,3030,4765,4767],{"class":2980,"style":2981},[2978,4766,3033],{"class":2998,"style":2999},[2978,4768,3027],{"class":3010,"style":3011},[2978,4770,4771,4773],{"class":2980,"style":2981},[2978,4772,3033],{"class":2998,"style":2999},[2978,4774,3042],{"class":2998,"style":2999},[2915,4776,4777,4778,3210,4782,3210,4786,4791],{},"Out of the box, this will enable typed usage of ",[2927,4779,4780],{"href":1686},[2922,4781,771],{},[2927,4783,4784],{"href":1549},[2922,4785,495],{},[2927,4787,4788],{"href":1643},[2922,4789,4790],{},"router.push()"," and more.",[2915,4793,4794,4795,3483],{},"You can even get typed params within a page by using ",[2922,4796,4797],{},"const route = useRoute('route-name')",[4799,4800],"video-accordion",{"title":4801,"videoId":4802},"Watch a video from Daniel Roe explaining type-safe routing in Nuxt","SXk-L19gTZk",[2941,4804,2812],{"id":2812},[2915,4806,4807],{},"Set an alternative watcher that will be used as the watching service for Nuxt.",[2915,4809,4810,4811,4814,4815,2957,4817,4820],{},"Nuxt uses ",[2922,4812,4813],{},"chokidar-granular"," by default, which will ignore top-level directories\n(like ",[2922,4816,164],{},[2922,4818,4819],{},".git",") that are excluded from watching.",[2915,4822,4823,4824,4827,4828,4831],{},"You can set this instead to ",[2922,4825,4826],{},"parcel"," to use ",[2922,4829,4830],{},"@parcel\u002Fwatcher",", which may improve\nperformance in large projects or on Windows platforms.",[2915,4833,4834,4835,4838],{},"You can also set this to ",[2922,4836,4837],{},"chokidar"," to watch all files in your source directory.",[2915,4840,4841,4842,4845,4846,4849,4850,4852,4853,4855],{},"Set to ",[2922,4843,4844],{},"'builder'"," to reuse the active builder's own file watcher (for example,\nVite's ",[2922,4847,4848],{},"server.watcher",") instead of starting a second one. This reduces the\nnumber of file watchers active in dev mode and becomes the default when\n",[2922,4851,4109],{}," is ",[2922,4854,4113],{},". If the active builder does not implement\nits own watcher (currently webpack and rspack), Nuxt logs a warning and falls\nback to its default selection.",[2969,4857,4858],{"language":2971,"meta":2972,"class":2973},[2922,4859,4860,3004,4872,3004,4878,3004,4891,3004,4897],{"class":2976},[2978,4861,4862,2987,4864,2987,4866,4868,4870],{"class":2980,"style":2981},[2978,4863,2986],{"class":2984,"style":2985},[2978,4865,2990],{"class":2984,"style":2985},[2978,4867,2995],{"class":2993,"style":2994},[2978,4869,3000],{"class":2998,"style":2999},[2978,4871,3003],{"class":2998,"style":2999},[2978,4873,3007,4874,2987,4876],{"class":2980,"style":2981},[2978,4875,3012],{"class":3010,"style":3011},[2978,4877,3003],{"class":2998,"style":2999},[2978,4879,4880,4881,2987,4883,4886,2987,4888],{"class":2980,"style":2981},"    watcher",[2978,4882,3012],{"class":3010,"style":3011},[2978,4884,4885],{"class":3376,"style":3377},"'chokidar-granular'",[2978,4887,3027],{"class":3010,"style":3011},[2978,4889,4890],{"class":3333,"style":3334},"\u002F\u002F 'chokidar', 'parcel' or 'builder' are also options",[2978,4892,3030,4893,4895],{"class":2980,"style":2981},[2978,4894,3033],{"class":2998,"style":2999},[2978,4896,3027],{"class":3010,"style":3011},[2978,4898,4899,4901],{"class":2980,"style":2981},[2978,4900,3033],{"class":2998,"style":2999},[2978,4902,3042],{"class":2998,"style":2999},[2941,4904,2815],{"id":2814},[2915,4906,4907,4908,4912,4913,4915,4916,4918],{},"Nuxt automatically shares payload ",[4909,4910,4911],"em",{},"data"," between pages that are prerendered. This can result in a significant performance improvement when prerendering sites that use ",[2922,4914,561],{}," or ",[2922,4917,576],{}," and fetch the same data in different pages.",[2915,4920,4921],{},"You can disable this feature if needed.",[2969,4923,4924],{"language":2971,"meta":2972,"class":2973},[2922,4925,4926,3004,4938,3004,4944,3004,4953,3004,4959],{"class":2976},[2978,4927,4928,2987,4930,2987,4932,4934,4936],{"class":2980,"style":2981},[2978,4929,2986],{"class":2984,"style":2985},[2978,4931,2990],{"class":2984,"style":2985},[2978,4933,2995],{"class":2993,"style":2994},[2978,4935,3000],{"class":2998,"style":2999},[2978,4937,3003],{"class":2998,"style":2999},[2978,4939,3007,4940,2987,4942],{"class":2980,"style":2981},[2978,4941,3012],{"class":3010,"style":3011},[2978,4943,3003],{"class":2998,"style":2999},[2978,4945,4946,4947,2987,4949,4951],{"class":2980,"style":2981},"    sharedPrerenderData",[2978,4948,3012],{"class":3010,"style":3011},[2978,4950,3080],{"class":3022,"style":3023},[2978,4952,3027],{"class":3010,"style":3011},[2978,4954,3030,4955,4957],{"class":2980,"style":2981},[2978,4956,3033],{"class":2998,"style":2999},[2978,4958,3027],{"class":3010,"style":3011},[2978,4960,4961,4963],{"class":2980,"style":2981},[2978,4962,3033],{"class":2998,"style":2999},[2978,4964,3042],{"class":2998,"style":2999},[4799,4966],{"title":4967,"videoId":4968},"Watch a video from Alexander Lichter about the experimental sharedPrerenderData","1jUupYHVvrU",[2915,4970,4971,4972,4974,4975,4977],{},"It is particularly important when enabling this feature to make sure that any unique key of your data\nis always resolvable to the same data. For example, if you are using ",[2922,4973,561],{}," to fetch\ndata related to a particular page, you should provide a key that uniquely matches that data. (",[2922,4976,576],{},"\nshould do this automatically for you.)",[2969,4979,4980],{"language":2971,"class":2973},[2922,4981,4982,3004,4987,3004,4992,3004,5005,3004,5039,3004,5075,3004,5081,3004,5086,3004,5124,3004,5154],{"class":2976},[2978,4983,4984],{"class":2980,"style":2981},[2978,4985,4986],{"class":3333,"style":3334},"\u002F\u002F This would be unsafe in a dynamic page (e.g. `[slug].vue`) because the route slug makes a difference",[2978,4988,4989],{"class":2980,"style":2981},[2978,4990,4991],{"class":3333,"style":3334},"\u002F\u002F to the data fetched, but Nuxt can't know that because it's not reflected in the key.",[2978,4993,4994,4996,4997,2987,4999,5001,5003],{"class":2980,"style":2981},[2978,4995,3358],{"class":2984,"style":2985}," route ",[2978,4998,3366],{"class":3010,"style":3011},[2978,5000,656],{"class":2993,"style":2994},[2978,5002,3000],{"class":2998,"style":2999},[2978,5004,3042],{"class":2998,"style":2999},[2978,5006,5007,2987,5009,3361,5011,2987,5013,2987,5015,2987,5017,5019,5021,2987,5023,5025,5026,2987,5028,5030,5031,5033,2987,5035,2987,5037],{"class":2980,"style":2981},[2978,5008,3358],{"class":2984,"style":2985},[2978,5010,3003],{"class":2998,"style":2999},[2978,5012,3033],{"class":2998,"style":2999},[2978,5014,3366],{"class":3010,"style":3011},[2978,5016,3369],{"class":2984,"style":2985},[2978,5018,561],{"class":2993,"style":2994},[2978,5020,3000],{"class":2998,"style":2999},[2978,5022,3383],{"class":2984,"style":2985},[2978,5024,3000],{"class":2998,"style":2999},"_nuxtApp",[2978,5027,3027],{"class":3010,"style":3011},[2978,5029,3003],{"class":2998,"style":2999}," signal ",[2978,5032,3033],{"class":2998,"style":2999},[2978,5034,3042],{"class":2998,"style":2999},[2978,5036,3390],{"class":2984,"style":2985},[2978,5038,3003],{"class":2998,"style":2999},[2978,5040,3030,5041,2987,5043,2987,5045,5047,5049,5052,5055,5056,5058,5059,5061,5062,5064,5067,2987,5069,5030,5071,5073],{"class":2980,"style":2981},[2978,5042,3397],{"class":2984,"style":2985},[2978,5044,3369],{"class":2984,"style":2985},[2978,5046,702],{"class":2993,"style":2994},[2978,5048,3000],{"class":2998,"style":2999},[2978,5050,5051],{"class":3376,"style":3377},"`\u002Fapi\u002Fmy-page\u002F",[2978,5053,5054],{"class":2984,"style":2985},"${","route",[2978,5057,3483],{"class":3010,"style":3011},"params",[2978,5060,3483],{"class":3010,"style":3011},"slug",[2978,5063,3033],{"class":2984,"style":2985},[2978,5065,5066],{"class":3376,"style":3377},"`",[2978,5068,3027],{"class":3010,"style":3011},[2978,5070,3003],{"class":2998,"style":2999},[2978,5072,3033],{"class":2998,"style":2999},[2978,5074,3042],{"class":2998,"style":2999},[2978,5076,5077,5079],{"class":2980,"style":2981},[2978,5078,3033],{"class":2998,"style":2999},[2978,5080,3042],{"class":2998,"style":2999},[2978,5082,5083],{"class":2980,"style":2981},[2978,5084,5085],{"class":3333,"style":3334},"\u002F\u002F Instead, you should use a key that uniquely identifies the data fetched.",[2978,5087,5088,2987,5090,3361,5092,2987,5094,2987,5096,2987,5098,5100,5055,5102,5058,5104,5061,5106,2987,5108,2987,5110,5025,5112,2987,5114,5030,5116,5118,2987,5120,2987,5122],{"class":2980,"style":2981},[2978,5089,3358],{"class":2984,"style":2985},[2978,5091,3003],{"class":2998,"style":2999},[2978,5093,3033],{"class":2998,"style":2999},[2978,5095,3366],{"class":3010,"style":3011},[2978,5097,3369],{"class":2984,"style":2985},[2978,5099,561],{"class":2993,"style":2994},[2978,5101,3000],{"class":2998,"style":2999},[2978,5103,3483],{"class":3010,"style":3011},[2978,5105,3483],{"class":3010,"style":3011},[2978,5107,3027],{"class":3010,"style":3011},[2978,5109,3383],{"class":2984,"style":2985},[2978,5111,3000],{"class":2998,"style":2999},[2978,5113,3027],{"class":3010,"style":3011},[2978,5115,3003],{"class":2998,"style":2999},[2978,5117,3033],{"class":2998,"style":2999},[2978,5119,3042],{"class":2998,"style":2999},[2978,5121,3390],{"class":2984,"style":2985},[2978,5123,3003],{"class":2998,"style":2999},[2978,5125,3030,5126,2987,5128,2987,5130,5132,5134,5136,5055,5138,5058,5140,5061,5142,5144,5146,2987,5148,5030,5150,5152],{"class":2980,"style":2981},[2978,5127,3397],{"class":2984,"style":2985},[2978,5129,3369],{"class":2984,"style":2985},[2978,5131,702],{"class":2993,"style":2994},[2978,5133,3000],{"class":2998,"style":2999},[2978,5135,5051],{"class":3376,"style":3377},[2978,5137,5054],{"class":2984,"style":2985},[2978,5139,3483],{"class":3010,"style":3011},[2978,5141,3483],{"class":3010,"style":3011},[2978,5143,3033],{"class":2984,"style":2985},[2978,5145,5066],{"class":3376,"style":3377},[2978,5147,3027],{"class":3010,"style":3011},[2978,5149,3003],{"class":2998,"style":2999},[2978,5151,3033],{"class":2998,"style":2999},[2978,5153,3042],{"class":2998,"style":2999},[2978,5155,5156,5158],{"class":2980,"style":2981},[2978,5157,3033],{"class":2998,"style":2999},[2978,5159,3042],{"class":2998,"style":2999},[2941,5161,2818],{"id":2817},[2915,5163,5164,5165,3483],{},"With this feature, Nuxt will automatically polyfill Node.js imports in the client build using ",[2927,5166,5168],{"href":5167},"https:\u002F\u002Fgithub.com\u002Funjs\u002Funenv",[2922,5169,5170],{},"unenv",[2937,5172,5173,5180],{},[2915,5174,5175,5176,5179],{},"To make globals like ",[2922,5177,5178],{},"Buffer"," work in the browser, you need to manually inject them.",[2969,5181,5182],{"language":2971,"class":2973},[2922,5183,5184,3004,5200,3004,5202],{"class":2976},[2978,5185,5186,2987,5188,2987,5190,2987,5192,2987,5194,2987,5197],{"class":2980,"style":2981},[2978,5187,3473],{"class":2984,"style":2985},[2978,5189,3003],{"class":2998,"style":2999},[2978,5191,5178],{"class":3348,"style":3349},[2978,5193,3033],{"class":2998,"style":2999},[2978,5195,5196],{"class":2984,"style":2985},"from",[2978,5198,5199],{"class":3376,"style":3377},"'node:buffer'",[2978,5201],{"class":2980,"style":2981},[2978,5203,5204,5205,5207,2987,5209,2987,5212],{"class":2980,"style":2981},"globalThis",[2978,5206,3483],{"class":3010,"style":3011},[2978,5208,5178],{"class":3348,"style":3349},[2978,5210,5211],{"class":3010,"style":3011},"||=",[2978,5213,5178],{"class":3348,"style":3349},[2941,5215,2821],{"id":2820},[2915,5217,5218,5219,5221,5222,3210,5225,3210,5228,3210,5230,3210,5233,2957,5236,3544],{},"Nuxt exposing some route metadata defined in ",[2922,5220,761],{}," at build-time to modules (specifically ",[2922,5223,5224],{},"alias",[2922,5226,5227],{},"name",[2922,5229,3790],{},[2922,5231,5232],{},"redirect",[2922,5234,5235],{},"props",[2922,5237,154],{},[2915,5239,5240,5241,5245],{},"This only works with static or strings\u002Farrays rather than variables or conditional assignment. See ",[2927,5242,5244],{"href":5243},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fissues\u002F24770","original issue"," for more information and context.",[2915,5247,5248,5249,5252,5253,5256],{},"By default page metadata is only scanned after all routes have been registered in ",[2922,5250,5251],{},"pages:extend",". Then another hook, ",[2922,5254,5255],{},"pages:resolved"," will be called.",[2915,5258,5259],{},"You can disable this feature if it causes issues in your project.",[2969,5261,5262],{"language":2971,"meta":2972,"class":2973},[2922,5263,5264,3004,5276,3004,5282,3004,5291,3004,5297],{"class":2976},[2978,5265,5266,2987,5268,2987,5270,5272,5274],{"class":2980,"style":2981},[2978,5267,2986],{"class":2984,"style":2985},[2978,5269,2990],{"class":2984,"style":2985},[2978,5271,2995],{"class":2993,"style":2994},[2978,5273,3000],{"class":2998,"style":2999},[2978,5275,3003],{"class":2998,"style":2999},[2978,5277,3007,5278,2987,5280],{"class":2980,"style":2981},[2978,5279,3012],{"class":3010,"style":3011},[2978,5281,3003],{"class":2998,"style":2999},[2978,5283,5284,5285,2987,5287,5289],{"class":2980,"style":2981},"    scanPageMeta",[2978,5286,3012],{"class":3010,"style":3011},[2978,5288,3080],{"class":3022,"style":3023},[2978,5290,3027],{"class":3010,"style":3011},[2978,5292,3030,5293,5295],{"class":2980,"style":2981},[2978,5294,3033],{"class":2998,"style":2999},[2978,5296,3027],{"class":3010,"style":3011},[2978,5298,5299,5301],{"class":2980,"style":2981},[2978,5300,3033],{"class":2998,"style":2999},[2978,5302,3042],{"class":2998,"style":2999},[2941,5304,2824],{"id":2823},[2915,5306,5307,5308,5310],{},"Enables CookieStore support to listen for cookie updates (if supported by the browser) and refresh ",[2922,5309,566],{}," ref values.",[2915,5312,3050],{},[2969,5314,5315],{"language":2971,"meta":2972,"class":2973},[2922,5316,5317,3004,5329,3004,5335,3004,5344,3004,5350],{"class":2976},[2978,5318,5319,2987,5321,2987,5323,5325,5327],{"class":2980,"style":2981},[2978,5320,2986],{"class":2984,"style":2985},[2978,5322,2990],{"class":2984,"style":2985},[2978,5324,2995],{"class":2993,"style":2994},[2978,5326,3000],{"class":2998,"style":2999},[2978,5328,3003],{"class":2998,"style":2999},[2978,5330,3007,5331,2987,5333],{"class":2980,"style":2981},[2978,5332,3012],{"class":3010,"style":3011},[2978,5334,3003],{"class":2998,"style":2999},[2978,5336,5337,5338,2987,5340,5342],{"class":2980,"style":2981},"    cookieStore",[2978,5339,3012],{"class":3010,"style":3011},[2978,5341,3080],{"class":3022,"style":3023},[2978,5343,3027],{"class":3010,"style":3011},[2978,5345,3030,5346,5348],{"class":2980,"style":2981},[2978,5347,3033],{"class":2998,"style":2999},[2978,5349,3027],{"class":3010,"style":3011},[2978,5351,5352,5354],{"class":2980,"style":2981},[2978,5353,3033],{"class":2998,"style":2999},[2978,5355,3042],{"class":2998,"style":2999},[3148,5357,4384,5359,3483],{"icon":4522,"to":5358,"target":3152},"https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FCookieStore",[3525,5360,5361],{},"CookieStore",[2941,5363,2827],{"id":2826},[2915,5365,5366],{},"Caches Nuxt build artifacts based on a hash of the configuration and source files.",[2915,5368,5369,5370,2957,5373,5376],{},"This only works for source files within ",[2922,5371,5372],{},"srcDir",[2922,5374,5375],{},"serverDir"," for the Vue\u002FNitro parts of your app.",[2915,5378,5379],{},"This flag is disabled by default, but you can enable it:",[2969,5381,5382],{"language":2971,"meta":2972,"class":2973},[2922,5383,5384,3004,5396,3004,5402,3004,5411,3004,5417],{"class":2976},[2978,5385,5386,2987,5388,2987,5390,5392,5394],{"class":2980,"style":2981},[2978,5387,2986],{"class":2984,"style":2985},[2978,5389,2990],{"class":2984,"style":2985},[2978,5391,2995],{"class":2993,"style":2994},[2978,5393,3000],{"class":2998,"style":2999},[2978,5395,3003],{"class":2998,"style":2999},[2978,5397,3007,5398,2987,5400],{"class":2980,"style":2981},[2978,5399,3012],{"class":3010,"style":3011},[2978,5401,3003],{"class":2998,"style":2999},[2978,5403,5404,5405,2987,5407,5409],{"class":2980,"style":2981},"    buildCache",[2978,5406,3012],{"class":3010,"style":3011},[2978,5408,3024],{"class":3022,"style":3023},[2978,5410,3027],{"class":3010,"style":3011},[2978,5412,3030,5413,5415],{"class":2980,"style":2981},[2978,5414,3033],{"class":2998,"style":2999},[2978,5416,3027],{"class":3010,"style":3011},[2978,5418,5419,5421],{"class":2980,"style":2981},[2978,5420,3033],{"class":2998,"style":2999},[2978,5422,3042],{"class":2998,"style":2999},[2915,5424,5425],{},"When enabled, changes to the following files will trigger a full rebuild:",[2969,5427,5431],{"language":5428,"filename":5429,"class":5430},"bash","Directory structure","shj shiki shj-lang-bash",[2922,5432,5434,3004,5438,3004,5443,3004,5447,3004,5452,3004,5457,3004,5462,3004,5466,3004,5471],{"class":5433},"language-bash",[2978,5435,5436],{"class":2980,"style":2981},[2978,5437,214],{"class":2993,"style":2994},[2978,5439,5440],{"class":2980,"style":2981},[2978,5441,5442],{"class":2993,"style":2994},".npmrc",[2978,5444,5445],{"class":2980,"style":2981},[2978,5446,239],{"class":2993,"style":2994},[2978,5448,5449],{"class":2980,"style":2981},[2978,5450,5451],{"class":2993,"style":2994},"package-lock.json",[2978,5453,5454],{"class":2980,"style":2981},[2978,5455,5456],{"class":2993,"style":2994},"yarn.lock",[2978,5458,5459],{"class":2980,"style":2981},[2978,5460,5461],{"class":2993,"style":2994},"pnpm-lock.yaml",[2978,5463,5464],{"class":2980,"style":2981},[2978,5465,244],{"class":2993,"style":2994},[2978,5467,5468],{"class":2980,"style":2981},[2978,5469,5470],{"class":2993,"style":2994},"bun.lock",[2978,5472,5473],{"class":2980,"style":2981},[2978,5474,5475],{"class":2993,"style":2994},"bun.lockb",[2915,5477,5478,5479,5481],{},"In addition, any changes to files within ",[2922,5480,5372],{}," will trigger a rebuild of the Vue client\u002Fserver bundle. Nitro will always be rebuilt (though work is in progress to allow Nitro to announce its cacheable artifacts and their hashes).",[2937,5483,5484],{},"A maximum of 10 cache tarballs are kept.",[2941,5486,2830],{"id":2829},[2915,5488,5489,5490,4852,5493,3483],{},"Set the time interval (in ms) to check for new builds. Disabled when ",[2922,5491,5492],{},"experimental.appManifest",[2922,5494,3080],{},[2915,5496,4841,5497,5499],{},[2922,5498,3080],{}," to disable.",[2969,5501,5502],{"language":2971,"meta":2972,"class":2973},[2922,5503,5504,3004,5516,3004,5522,3004,5537,3004,5543],{"class":2976},[2978,5505,5506,2987,5508,2987,5510,5512,5514],{"class":2980,"style":2981},[2978,5507,2986],{"class":2984,"style":2985},[2978,5509,2990],{"class":2984,"style":2985},[2978,5511,2995],{"class":2993,"style":2994},[2978,5513,3000],{"class":2998,"style":2999},[2978,5515,3003],{"class":2998,"style":2999},[2978,5517,3007,5518,2987,5520],{"class":2980,"style":2981},[2978,5519,3012],{"class":3010,"style":3011},[2978,5521,3003],{"class":2998,"style":2999},[2978,5523,5524,5525,2987,5527,5532,2987,5534],{"class":2980,"style":2981},"    checkOutdatedBuildInterval",[2978,5526,3012],{"class":3010,"style":3011},[2978,5528,5531],{"class":5529,"style":5530},"shj-syn-num shj-num","color:#F76D47;--shiki-dark:#F78C6C","3600000",[2978,5533,3027],{"class":3010,"style":3011},[2978,5535,5536],{"class":3333,"style":3334},"\u002F\u002F 1 hour, or false to disable",[2978,5538,3030,5539,5541],{"class":2980,"style":2981},[2978,5540,3033],{"class":2998,"style":2999},[2978,5542,3027],{"class":3010,"style":3011},[2978,5544,5545,5547],{"class":2980,"style":2981},[2978,5546,3033],{"class":2998,"style":2999},[2978,5548,3042],{"class":2998,"style":2999},[2941,5550,2833],{"id":2832},[2915,5552,5553,5554,5557],{},"The ",[2922,5555,5556],{},"definePageMeta()"," macro is a useful way to collect build-time meta about pages. Nuxt itself provides a set list of supported keys which is used to power some of the internal features such as redirects, page aliases and custom paths.",[2915,5559,5560,5561,3483],{},"This option allows passing additional keys to extract from the page metadata when using ",[2922,5562,2821],{},[2969,5564,5565],{"language":3209,"class":3325},[2922,5566,5567,3004,5585,3004,5593,3004,5603,3004,5609],{"class":3328},[2978,5568,5569,5571,2987,5573,5576,5578,2987,5581,5583],{"class":2980,"style":2981},[2978,5570,3340],{"class":3010,"style":3011},[2978,5572,3345],{"class":3343,"style":3344},[2978,5574,5575],{"class":3348,"style":3349},"lang",[2978,5577,3366],{"class":3010,"style":3011},[2978,5579,5580],{"class":3376,"style":3377},"\"ts\"",[2978,5582,3350],{"class":3348,"style":3349},[2978,5584,3353],{"class":3010,"style":3011},[2978,5586,5587,5589,5591],{"class":2980,"style":2981},[2978,5588,761],{"class":2993,"style":2994},[2978,5590,3000],{"class":2998,"style":2999},[2978,5592,3003],{"class":2998,"style":2999},[2978,5594,5595,5596,2987,5598,5601],{"class":2980,"style":2981},"  foo",[2978,5597,3012],{"class":3010,"style":3011},[2978,5599,5600],{"class":3376,"style":3377},"'bar'",[2978,5602,3027],{"class":3010,"style":3011},[2978,5604,5605,5607],{"class":2980,"style":2981},[2978,5606,3033],{"class":2998,"style":2999},[2978,5608,3042],{"class":2998,"style":2999},[2978,5610,5611,5613,5615],{"class":2980,"style":2981},[2978,5612,3419],{"class":3010,"style":3011},[2978,5614,3345],{"class":3343,"style":3344},[2978,5616,3353],{"class":3010,"style":3011},[2969,5618,5619],{"language":2971,"class":2973},[2922,5620,5621,3004,5633,3004,5639,3004,5653,3004,5659,3004,5666,3004,5678,3004,5684,3004,5690,3004,5696],{"class":2976},[2978,5622,5623,2987,5625,2987,5627,5629,5631],{"class":2980,"style":2981},[2978,5624,2986],{"class":2984,"style":2985},[2978,5626,2990],{"class":2984,"style":2985},[2978,5628,2995],{"class":2993,"style":2994},[2978,5630,3000],{"class":2998,"style":2999},[2978,5632,3003],{"class":2998,"style":2999},[2978,5634,3007,5635,2987,5637],{"class":2980,"style":2981},[2978,5636,3012],{"class":3010,"style":3011},[2978,5638,3003],{"class":2998,"style":2999},[2978,5640,5641,5642,2987,5644,5646,5649,5651],{"class":2980,"style":2981},"    extraPageMetaExtractionKeys",[2978,5643,3012],{"class":3010,"style":3011},[2978,5645,4488],{"class":2998,"style":2999},[2978,5647,5648],{"class":3376,"style":3377},"'foo'",[2978,5650,4494],{"class":2998,"style":2999},[2978,5652,3027],{"class":3010,"style":3011},[2978,5654,3030,5655,5657],{"class":2980,"style":2981},[2978,5656,3033],{"class":2998,"style":2999},[2978,5658,3027],{"class":3010,"style":3011},[2978,5660,5661,5662,2987,5664],{"class":2980,"style":2981},"  hooks",[2978,5663,3012],{"class":3010,"style":3011},[2978,5665,3003],{"class":2998,"style":2999},[2978,5667,4499,5668,2987,5671,5673,5674,2987,5676],{"class":2980,"style":2981},[2978,5669,5670],{"class":3376,"style":3377},"'pages:resolved'",[2978,5672,3000],{"class":2998,"style":2999},"ctx",[2978,5675,3042],{"class":2998,"style":2999},[2978,5677,3003],{"class":2998,"style":2999},[2978,5679,5680,5681],{"class":2980,"style":2981},"      ",[2978,5682,5683],{"class":3333,"style":3334},"\u002F\u002F ✅ foo is available",[2978,5685,4499,5686,5688],{"class":2980,"style":2981},[2978,5687,3033],{"class":2998,"style":2999},[2978,5689,3027],{"class":3010,"style":3011},[2978,5691,3030,5692,5694],{"class":2980,"style":2981},[2978,5693,3033],{"class":2998,"style":2999},[2978,5695,3027],{"class":3010,"style":3011},[2978,5697,5698,5700],{"class":2980,"style":2981},[2978,5699,3033],{"class":2998,"style":2999},[2978,5701,3042],{"class":2998,"style":2999},[2915,5703,5704,5705,3483],{},"This allows modules to access additional metadata from the page metadata in the build context. If you are using this within a module, it's recommended also to ",[2927,5706,5708,5709,5712],{"href":5707},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fpages#typing-custom-metadata","augment the ",[2922,5710,5711],{},"NuxtPage"," types with your keys",[2941,5714,2836],{"id":2835},[2915,5716,5717,5718,4852,5720,5722],{},"Enabled by default when ",[2922,5719,4109],{},[2922,5721,4113],{}," or higher.",[2915,5724,5725,5726,5728,5729,5731],{},"By default, Nuxt only reads a fixed list of ",[2922,5727,5556],{}," keys at build time (plus anything in ",[2922,5730,2833],{},"); everything else is resolved at runtime from a separate module generated per page. With this option, Nuxt writes every JSON-serializable property straight into the generated route record instead.",[2915,5733,5734,5735,5737],{},"When every property of a page's ",[2922,5736,5556],{}," can be resolved statically, the route no longer imports that page's meta module at all, which removes one module per page from the dev module graph.",[2969,5739,5740],{"language":3209,"class":3325},[2922,5741,5742,3004,5758,3004,5766,3004,5797,3004,5807,3004,5813],{"class":3328},[2978,5743,5744,5746,2987,5748,5750,5752,2987,5754,5756],{"class":2980,"style":2981},[2978,5745,3340],{"class":3010,"style":3011},[2978,5747,3345],{"class":3343,"style":3344},[2978,5749,5575],{"class":3348,"style":3349},[2978,5751,3366],{"class":3010,"style":3011},[2978,5753,5580],{"class":3376,"style":3377},[2978,5755,3350],{"class":3348,"style":3349},[2978,5757,3353],{"class":3010,"style":3011},[2978,5759,5760,5762,5764],{"class":2980,"style":2981},[2978,5761,761],{"class":2993,"style":2994},[2978,5763,3000],{"class":2998,"style":2999},[2978,5765,3003],{"class":2998,"style":2999},[2978,5767,5768,5769,2987,5771,5773,5774,2987,5776,5779,5781,5782,2987,5784,5786,5787,2987,5789,2987,5791,2987,5793,5795],{"class":2980,"style":2981},"  layout",[2978,5770,3012],{"class":3010,"style":3011},[2978,5772,3003],{"class":2998,"style":2999}," name",[2978,5775,3012],{"class":3010,"style":3011},[2978,5777,5778],{"class":3376,"style":3377},"'admin'",[2978,5780,3027],{"class":3010,"style":3011}," props",[2978,5783,3012],{"class":3010,"style":3011},[2978,5785,3003],{"class":2998,"style":2999}," collapsed",[2978,5788,3012],{"class":3010,"style":3011},[2978,5790,3024],{"class":3022,"style":3023},[2978,5792,3033],{"class":2998,"style":2999},[2978,5794,3033],{"class":2998,"style":2999},[2978,5796,3027],{"class":3010,"style":3011},[2978,5798,5799,5800,2987,5802,5805],{"class":2980,"style":2981},"  title",[2978,5801,3012],{"class":3010,"style":3011},[2978,5803,5804],{"class":3376,"style":3377},"'Dashboard'",[2978,5806,3027],{"class":3010,"style":3011},[2978,5808,5809,5811],{"class":2980,"style":2981},[2978,5810,3033],{"class":2998,"style":2999},[2978,5812,3042],{"class":2998,"style":2999},[2978,5814,5815,5817,5819],{"class":2980,"style":2981},[2978,5816,3419],{"class":3010,"style":3011},[2978,5818,3345],{"class":3343,"style":3344},[2978,5820,3353],{"class":3010,"style":3011},[2915,5822,5823],{},"Properties whose values cannot be serialized (functions, variable references, spreads, computed keys) are unaffected and still resolved at runtime.",[2915,5825,5826,5827,4852,5832,5834],{},"This has no effect when ",[2927,5828,5830],{"href":5829},"#scanpagemeta",[2922,5831,2821],{},[2922,5833,3080],{},", as the route record does not override the meta module in that case.",[2969,5836,5837],{"language":2971,"meta":2972,"class":2973},[2922,5838,5839,3004,5851,3004,5857,3004,5866,3004,5872],{"class":2976},[2978,5840,5841,2987,5843,2987,5845,5847,5849],{"class":2980,"style":2981},[2978,5842,2986],{"class":2984,"style":2985},[2978,5844,2990],{"class":2984,"style":2985},[2978,5846,2995],{"class":2993,"style":2994},[2978,5848,3000],{"class":2998,"style":2999},[2978,5850,3003],{"class":2998,"style":2999},[2978,5852,3007,5853,2987,5855],{"class":2980,"style":2981},[2978,5854,3012],{"class":3010,"style":3011},[2978,5856,3003],{"class":2998,"style":2999},[2978,5858,5859,5860,2987,5862,5864],{"class":2980,"style":2981},"    extractSerializablePageMeta",[2978,5861,3012],{"class":3010,"style":3011},[2978,5863,3080],{"class":3022,"style":3023},[2978,5865,3027],{"class":3010,"style":3011},[2978,5867,3030,5868,5870],{"class":2980,"style":2981},[2978,5869,3033],{"class":2998,"style":2999},[2978,5871,3027],{"class":3010,"style":3011},[2978,5873,5874,5876],{"class":2980,"style":2981},[2978,5875,3033],{"class":2998,"style":2999},[2978,5877,3042],{"class":2998,"style":2999},[2941,5879,2839],{"id":2838},[2915,5881,5882],{},"Wait for a single animation frame before navigation, which gives an opportunity for the browser to repaint, acknowledging user interaction.",[2915,5884,5885],{},"It can reduce INP when navigating on prerendered routes.",[2915,5887,3050],{},[2969,5889,5890],{"language":2971,"meta":2972,"class":2973},[2922,5891,5892,3004,5904,3004,5910,3004,5919,3004,5925],{"class":2976},[2978,5893,5894,2987,5896,2987,5898,5900,5902],{"class":2980,"style":2981},[2978,5895,2986],{"class":2984,"style":2985},[2978,5897,2990],{"class":2984,"style":2985},[2978,5899,2995],{"class":2993,"style":2994},[2978,5901,3000],{"class":2998,"style":2999},[2978,5903,3003],{"class":2998,"style":2999},[2978,5905,3007,5906,2987,5908],{"class":2980,"style":2981},[2978,5907,3012],{"class":3010,"style":3011},[2978,5909,3003],{"class":2998,"style":2999},[2978,5911,5912,5913,2987,5915,5917],{"class":2980,"style":2981},"    navigationRepaint",[2978,5914,3012],{"class":3010,"style":3011},[2978,5916,3080],{"class":3022,"style":3023},[2978,5918,3027],{"class":3010,"style":3011},[2978,5920,3030,5921,5923],{"class":2980,"style":2981},[2978,5922,3033],{"class":2998,"style":2999},[2978,5924,3027],{"class":3010,"style":3011},[2978,5926,5927,5929],{"class":2980,"style":2981},[2978,5928,3033],{"class":2998,"style":2999},[2978,5930,3042],{"class":2998,"style":2999},[2941,5932,2842],{"id":2841},[2915,5934,5935,5936,5939,5940,5943,5944,5947],{},"Transform top-level ",[2922,5937,5938],{},"await navigateTo()"," calls in ",[2922,5941,5942],{},"\u003Cscript setup>"," into an early return from the compiled ",[2922,5945,5946],{},"setup()"," function when the navigation succeeds.",[2915,5949,5950,5951,5953,5954,5956],{},"Without this flag, code after ",[2922,5952,5938],{}," continues to run, which can result in later code (including subsequent ",[2922,5955,771],{}," calls) overriding the redirect or attempting to render a page with missing data. With this flag enabled, a successful navigation stops execution of the rest of your setup code and the component renders a placeholder comment while the navigation proceeds.",[2915,5958,5959,5960,5962],{},"This flag is enabled by default with ",[2922,5961,3999],{},", but you can disable it:",[2969,5964,5965],{"language":2971,"meta":2972,"class":2973},[2922,5966,5967,3004,5979,3004,5985,3004,5994,3004,6000],{"class":2976},[2978,5968,5969,2987,5971,2987,5973,5975,5977],{"class":2980,"style":2981},[2978,5970,2986],{"class":2984,"style":2985},[2978,5972,2990],{"class":2984,"style":2985},[2978,5974,2995],{"class":2993,"style":2994},[2978,5976,3000],{"class":2998,"style":2999},[2978,5978,3003],{"class":2998,"style":2999},[2978,5980,3007,5981,2987,5983],{"class":2980,"style":2981},[2978,5982,3012],{"class":3010,"style":3011},[2978,5984,3003],{"class":2998,"style":2999},[2978,5986,5987,5988,2987,5990,5992],{"class":2980,"style":2981},"    navigateToEarlyReturn",[2978,5989,3012],{"class":3010,"style":3011},[2978,5991,3080],{"class":3022,"style":3023},[2978,5993,3027],{"class":3010,"style":3011},[2978,5995,3030,5996,5998],{"class":2980,"style":2981},[2978,5997,3033],{"class":2998,"style":2999},[2978,5999,3027],{"class":3010,"style":3011},[2978,6001,6002,6004],{"class":2980,"style":2981},[2978,6003,3033],{"class":2998,"style":2999},[2978,6005,3042],{"class":2998,"style":2999},[2969,6007,6009],{"language":3209,"filename":6008,"class":3325},"pages\u002Fexample.vue",[2922,6010,6011,3004,6027,3004,6048,3004,6050,3004,6067,3004,6080,3004,6084,3004,6086,3004,6091,3004,6117],{"class":3328},[2978,6012,6013,6015,2987,6017,2987,6019,6021,6023,6025],{"class":2980,"style":2981},[2978,6014,3340],{"class":3010,"style":3011},[2978,6016,3345],{"class":3343,"style":3344},[2978,6018,3350],{"class":3348,"style":3349},[2978,6020,5575],{"class":3348,"style":3349},[2978,6022,3366],{"class":3010,"style":3011},[2978,6024,5580],{"class":3376,"style":3377},[2978,6026,3353],{"class":3010,"style":3011},[2978,6028,6029,2987,6031,3361,6033,2987,6035,2987,6037,2987,6039,6041,6043,6046],{"class":2980,"style":2981},[2978,6030,3358],{"class":2984,"style":2985},[2978,6032,3003],{"class":2998,"style":2999},[2978,6034,3033],{"class":2998,"style":2999},[2978,6036,3366],{"class":3010,"style":3011},[2978,6038,3369],{"class":2984,"style":2985},[2978,6040,576],{"class":2993,"style":2994},[2978,6042,3000],{"class":2998,"style":2999},[2978,6044,6045],{"class":3376,"style":3377},"'\u002Fapi\u002Fdata'",[2978,6047,3042],{"class":2998,"style":2999},[2978,6049],{"class":2980,"style":2981},[2978,6051,6052,2987,6055,6057,4911,6060,6062,6063,2987,6065],{"class":2980,"style":2981},[2978,6053,6054],{"class":2984,"style":2985},"if",[2978,6056,3000],{"class":2998,"style":2999},[2978,6058,6059],{"class":3010,"style":3011},"!",[2978,6061,3483],{"class":3010,"style":3011},"value",[2978,6064,3042],{"class":2998,"style":2999},[2978,6066,3003],{"class":2998,"style":2999},[2978,6068,3030,6069,2987,6071,6073,6075,6078],{"class":2980,"style":2981},[2978,6070,3369],{"class":2984,"style":2985},[2978,6072,771],{"class":2993,"style":2994},[2978,6074,3000],{"class":2998,"style":2999},[2978,6076,6077],{"class":3376,"style":3377},"'\u002Ffallback'",[2978,6079,3042],{"class":2998,"style":2999},[2978,6081,6082],{"class":2980,"style":2981},[2978,6083,3033],{"class":2998,"style":2999},[2978,6085],{"class":2980,"style":2981},[2978,6087,6088],{"class":2980,"style":2981},[2978,6089,6090],{"class":3333,"style":3334},"\u002F\u002F with the flag enabled, this only runs if the navigation did not happen",[2978,6092,6093,6095,6096,6098,6099,6062,6101,6104,6107,6109,6110,6112,6113,5227,6115],{"class":2980,"style":2981},[2978,6094,3358],{"class":2984,"style":2985}," processed ",[2978,6097,3366],{"class":3010,"style":3011}," data",[2978,6100,3483],{"class":3010,"style":3011},[2978,6102,6103],{"class":3010,"style":3011},"!.",[2978,6105,6106],{"class":2993,"style":2994},"map",[2978,6108,3000],{"class":2998,"style":2999},"item ",[2978,6111,3390],{"class":2984,"style":2985}," item",[2978,6114,3483],{"class":3010,"style":3011},[2978,6116,3042],{"class":2998,"style":2999},[2978,6118,6119,6121,6123],{"class":2980,"style":2981},[2978,6120,3419],{"class":3010,"style":3011},[2978,6122,3345],{"class":3343,"style":3344},[2978,6124,3353],{"class":3010,"style":3011},[2915,6126,6127,6128,6130,6131,6133,6134,6137],{},"The transform only applies to top-level ",[2922,6129,5938],{}," statements in ",[2922,6132,5942],{}," whose result is not used. Calls with the ",[2922,6135,6136],{},"open"," option (or options that cannot be statically analysed) are not transformed, as they should not stop the current page from rendering.",[2915,6139,6140,6141,6143,6144,6147,6148,6150,6151,6154,6155,3483],{},"The early return only happens when the navigation succeeds (that is, when ",[2922,6142,771],{}," resolves to ",[2922,6145,6146],{},"undefined","). If the navigation is aborted or fails (for example, blocked by a navigation guard, or navigating to the current route), the rest of your setup code continues to run. On a successful navigation, nothing after the ",[2922,6149,771],{}," call runs: this includes ",[2922,6152,6153],{},"defineExpose"," and any lifecycle hook registrations later in ",[2922,6156,5942],{},[3148,6158,6160],{"icon":3150,"to":6159,"target":3152},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fissues\u002F23698","See full explanation on the GitHub issue.",[2941,6162,2845],{"id":2844},[2915,6164,6165],{},"Nuxt updates auto-generated Vue component names to match the full component name you would use to auto-import the component.",[2915,6167,6168],{},"If you encounter issues, you can disable this feature.",[2969,6170,6171],{"language":2971,"meta":2972,"class":2973},[2922,6172,6173,3004,6185,3004,6191,3004,6200,3004,6206],{"class":2976},[2978,6174,6175,2987,6177,2987,6179,6181,6183],{"class":2980,"style":2981},[2978,6176,2986],{"class":2984,"style":2985},[2978,6178,2990],{"class":2984,"style":2985},[2978,6180,2995],{"class":2993,"style":2994},[2978,6182,3000],{"class":2998,"style":2999},[2978,6184,3003],{"class":2998,"style":2999},[2978,6186,3007,6187,2987,6189],{"class":2980,"style":2981},[2978,6188,3012],{"class":3010,"style":3011},[2978,6190,3003],{"class":2998,"style":2999},[2978,6192,6193,6194,2987,6196,6198],{"class":2980,"style":2981},"    normalizeComponentNames",[2978,6195,3012],{"class":3010,"style":3011},[2978,6197,3080],{"class":3022,"style":3023},[2978,6199,3027],{"class":3010,"style":3011},[2978,6201,3030,6202,6204],{"class":2980,"style":2981},[2978,6203,3033],{"class":2998,"style":2999},[2978,6205,3027],{"class":3010,"style":3011},[2978,6207,6208,6210],{"class":2980,"style":2981},[2978,6209,3033],{"class":2998,"style":2999},[2978,6211,3042],{"class":2998,"style":2999},[2915,6213,6214],{},"By default, if you haven't set it manually, Vue will assign a component name that matches\nthe filename of the component.",[2969,6216,6217],{"language":5428,"filename":5429,"class":5430},[2922,6218,6219,3004,6222,3004,6225],{"class":5433},[2978,6220,6221],{"class":2980,"style":2981},"├─ components\u002F",[2978,6223,6224],{"class":2980,"style":2981},"├─── SomeFolder\u002F",[2978,6226,6227],{"class":2980,"style":2981},"├───── MyComponent.vue",[2915,6229,6230,6231,6234,6235,6238],{},"In this case, the component name would be ",[2922,6232,6233],{},"MyComponent",", as far as Vue is concerned. If you wanted to use ",[2922,6236,6237],{},"\u003CKeepAlive>"," with it, or identify it in the Vue DevTools, you would need to use this component.",[2915,6240,6241,6242,3483],{},"But in order to auto-import it, you would need to use ",[2922,6243,6244],{},"SomeFolderMyComponent",[2915,6246,6247,6248,6251],{},"By setting ",[2922,6249,6250],{},"experimental.normalizeComponentNames",", these two values match, and Vue will generate a component name that matches the Nuxt pattern for component naming.",[2941,6253,2848],{"id":2847},[2915,6255,6256,6257,6260,6261,6263],{},"Ensure that page component names match their route names. This sets the ",[2922,6258,6259],{},"__name"," property on page components so that Vue's ",[2922,6262,6237],{}," can correctly identify them by name.",[2915,6265,6266,6267,2957,6270,6273,6274,6277,6278,6280],{},"By default, Vue assigns component names based on the filename. For example, ",[2922,6268,6269],{},"pages\u002Ffoo\u002Findex.vue",[2922,6271,6272],{},"pages\u002Fbar\u002Findex.vue"," would both have the component name ",[2922,6275,6276],{},"index",". This makes name-based ",[2922,6279,6237],{}," filtering unreliable because multiple pages share the same name.",[2915,6282,6283,6284,6286,6287,2957,6290,6293,6294,6296,6297,6300,6301,6304,6305,6308],{},"With ",[2922,6285,2848],{}," enabled, page components are named after their route (e.g. ",[2922,6288,6289],{},"foo",[2922,6291,6292],{},"bar","), so you can use ",[2922,6295,6237],{}," with ",[2922,6298,6299],{},"include","\u002F",[2922,6302,6303],{},"exclude"," without manually adding ",[2922,6306,6307],{},"defineOptions({ name: '...' })"," to each page.",[2915,6310,4106,6311,4110,6313,6315],{},[2922,6312,4109],{},[2922,6314,4113],{}," or higher, but you can disable this feature:",[2969,6317,6318],{"language":2971,"meta":2972,"class":2973},[2922,6319,6320,3004,6332,3004,6338,3004,6347,3004,6353],{"class":2976},[2978,6321,6322,2987,6324,2987,6326,6328,6330],{"class":2980,"style":2981},[2978,6323,2986],{"class":2984,"style":2985},[2978,6325,2990],{"class":2984,"style":2985},[2978,6327,2995],{"class":2993,"style":2994},[2978,6329,3000],{"class":2998,"style":2999},[2978,6331,3003],{"class":2998,"style":2999},[2978,6333,3007,6334,2987,6336],{"class":2980,"style":2981},[2978,6335,3012],{"class":3010,"style":3011},[2978,6337,3003],{"class":2998,"style":2999},[2978,6339,6340,6341,2987,6343,6345],{"class":2980,"style":2981},"    normalizePageNames",[2978,6342,3012],{"class":3010,"style":3011},[2978,6344,3080],{"class":3022,"style":3023},[2978,6346,3027],{"class":3010,"style":3011},[2978,6348,3030,6349,6351],{"class":2980,"style":2981},[2978,6350,3033],{"class":2998,"style":2999},[2978,6352,3027],{"class":3010,"style":3011},[2978,6354,6355,6357],{"class":2980,"style":2981},[2978,6356,3033],{"class":2998,"style":2999},[2978,6358,3042],{"class":2998,"style":2999},[2969,6360,6361],{"language":3209,"filename":219,"class":3325},[2922,6362,6363,3004,6372,3004,6389],{"class":3328},[2978,6364,6365,6367,6370],{"class":2980,"style":2981},[2978,6366,3340],{"class":3010,"style":3011},[2978,6368,6369],{"class":3343,"style":3344},"template",[2978,6371,3353],{"class":3010,"style":3011},[2978,6373,3030,6374,6376,2987,6378,6381,6383,2987,6386],{"class":2980,"style":2981},[2978,6375,3340],{"class":3010,"style":3011},[2978,6377,5711],{"class":3343,"style":3344},[2978,6379,6380],{"class":2984,"style":2985},":keepalive",[2978,6382,3366],{"class":3010,"style":3011},[2978,6384,6385],{"class":3376,"style":3377},"\"{ include: ['foo'] }\"",[2978,6387,6388],{"class":3010,"style":3011},"\u002F>",[2978,6390,6391,6393,6395],{"class":2980,"style":2981},[2978,6392,3419],{"class":3010,"style":3011},[2978,6394,6369],{"class":3343,"style":3344},[2978,6396,3353],{"class":3010,"style":3011},[2941,6398,2851],{"id":2850},[2915,6400,6401,6402,6404,6405,3544],{},"When rendering a client-only page (with ",[2922,6403,4005],{},"), we optionally render a loading screen (from ",[2922,6406,6407],{},"~\u002Fspa-loading-template.html",[2915,6409,6410,6411,6414],{},"It can be set to ",[2922,6412,6413],{},"within",", which will render it like this:",[2969,6416,6419],{"language":6417,"class":6418},"html","shj shiki shj-lang-html",[2922,6420,6422,3004,6439,3004,6444],{"class":6421},"language-html",[2978,6423,6424,6426,2987,6429,6432,6434,6437],{"class":2980,"style":2981},[2978,6425,3340],{"class":3010,"style":3011},[2978,6427,6428],{"class":3343,"style":3344},"div",[2978,6430,6431],{"class":3348,"style":3349},"id",[2978,6433,3366],{"class":3010,"style":3011},[2978,6435,6436],{"class":3376,"style":3377},"\"__nuxt\"",[2978,6438,3353],{"class":3010,"style":3011},[2978,6440,3030,6441],{"class":2980,"style":2981},[2978,6442,6443],{"class":3333,"style":3334},"\u003C!-- spa loading template -->",[2978,6445,6446,6448,6450],{"class":2980,"style":2981},[2978,6447,3419],{"class":3010,"style":3011},[2978,6449,6428],{"class":3343,"style":3344},[2978,6451,3353],{"class":3010,"style":3011},[2915,6453,6454,6455,3012],{},"Alternatively, you can render the template alongside the Nuxt app root by setting it to ",[2922,6456,6457],{},"body",[2969,6459,6460],{"language":6417,"class":6418},[2922,6461,6462,3004,6482],{"class":6421},[2978,6463,6464,6466,2987,6468,6470,6472,6474,6476,6478,6480],{"class":2980,"style":2981},[2978,6465,3340],{"class":3010,"style":3011},[2978,6467,6428],{"class":3343,"style":3344},[2978,6469,6431],{"class":3348,"style":3349},[2978,6471,3366],{"class":3010,"style":3011},[2978,6473,6436],{"class":3376,"style":3377},[2978,6475,3353],{"class":3010,"style":3011},[2978,6477,3419],{"class":3010,"style":3011},[2978,6479,6428],{"class":3343,"style":3344},[2978,6481,3353],{"class":3010,"style":3011},[2978,6483,6484],{"class":2980,"style":2981},[2978,6485,6443],{"class":3333,"style":3334},[2915,6487,6488],{},"This avoids a white flash when hydrating a client-only page.",[2941,6490,2854],{"id":2853},[2915,6492,6493],{},"Enables performance markers for Nuxt hooks in browser devtools. This adds performance markers that you can track in the Performance tab of Chromium-based browsers, which is useful for debugging and optimizing performance.",[2915,6495,6496],{},"This is enabled by default in development mode. If you need to disable this feature, it is possible to do so:",[2969,6498,6499],{"language":2971,"meta":2972,"class":2973},[2922,6500,6501,3004,6513,3004,6519,3004,6528,3004,6534],{"class":2976},[2978,6502,6503,2987,6505,2987,6507,6509,6511],{"class":2980,"style":2981},[2978,6504,2986],{"class":2984,"style":2985},[2978,6506,2990],{"class":2984,"style":2985},[2978,6508,2995],{"class":2993,"style":2994},[2978,6510,3000],{"class":2998,"style":2999},[2978,6512,3003],{"class":2998,"style":2999},[2978,6514,3007,6515,2987,6517],{"class":2980,"style":2981},[2978,6516,3012],{"class":3010,"style":3011},[2978,6518,3003],{"class":2998,"style":2999},[2978,6520,6521,6522,2987,6524,6526],{"class":2980,"style":2981},"    browserDevtoolsTiming",[2978,6523,3012],{"class":3010,"style":3011},[2978,6525,3080],{"class":3022,"style":3023},[2978,6527,3027],{"class":3010,"style":3011},[2978,6529,3030,6530,6532],{"class":2980,"style":2981},[2978,6531,3033],{"class":2998,"style":2999},[2978,6533,3027],{"class":3010,"style":3011},[2978,6535,6536,6538],{"class":2980,"style":2981},[2978,6537,3033],{"class":2998,"style":2999},[2978,6539,3042],{"class":2998,"style":2999},[3148,6541,6544],{"icon":3150,"color":6542,"to":6543,"target":3152},"gray","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fpull\u002F29922","See PR #29922 for implementation details.",[3148,6546,6549],{"icon":6547,"color":6542,"to":6548,"target":3152},"i-simple-icons-googlechrome","https:\u002F\u002Fdeveloper.chrome.com\u002Fdocs\u002Fdevtools\u002Fperformance\u002Fextension#tracks","Learn more about Chrome DevTools Performance API.",[2941,6551,2857],{"id":2856},[2915,6553,6554,6555,6558],{},"Records mutations to ",[2922,6556,6557],{},"nuxt.options"," in module context, helping to debug configuration changes made by modules during the Nuxt initialization phase.",[2915,6560,6561,6562,6565],{},"This is enabled by default when ",[2922,6563,6564],{},"debug"," mode is enabled. If you need to disable this feature, it is possible to do so:",[2915,6567,6568],{},"To enable it explicitly:",[2969,6570,6571],{"language":2971,"meta":2972,"class":2973},[2922,6572,6573,3004,6585,3004,6591,3004,6600,3004,6606],{"class":2976},[2978,6574,6575,2987,6577,2987,6579,6581,6583],{"class":2980,"style":2981},[2978,6576,2986],{"class":2984,"style":2985},[2978,6578,2990],{"class":2984,"style":2985},[2978,6580,2995],{"class":2993,"style":2994},[2978,6582,3000],{"class":2998,"style":2999},[2978,6584,3003],{"class":2998,"style":2999},[2978,6586,3007,6587,2987,6589],{"class":2980,"style":2981},[2978,6588,3012],{"class":3010,"style":3011},[2978,6590,3003],{"class":2998,"style":2999},[2978,6592,6593,6594,2987,6596,6598],{"class":2980,"style":2981},"    debugModuleMutation",[2978,6595,3012],{"class":3010,"style":3011},[2978,6597,3024],{"class":3022,"style":3023},[2978,6599,3027],{"class":3010,"style":3011},[2978,6601,3030,6602,6604],{"class":2980,"style":2981},[2978,6603,3033],{"class":2998,"style":2999},[2978,6605,3027],{"class":3010,"style":3011},[2978,6607,6608,6610],{"class":2980,"style":2981},[2978,6609,3033],{"class":2998,"style":2999},[2978,6611,3042],{"class":2998,"style":2999},[3148,6613,6615],{"icon":3150,"color":6542,"to":6614,"target":3152},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fpull\u002F30555","See PR #30555 for implementation details.",[2941,6617,2860],{"id":2859},[2915,6619,6620,6621,6624],{},"This enables hydration strategies for ",[2922,6622,6623],{},"\u003CLazy>"," components, which improves performance by deferring hydration of components until they're needed.",[2915,6626,6627],{},"Lazy hydration is enabled by default, but you can disable this feature:",[2969,6629,6630],{"language":2971,"meta":2972,"class":2973},[2922,6631,6632,3004,6644,3004,6650,3004,6659,3004,6665],{"class":2976},[2978,6633,6634,2987,6636,2987,6638,6640,6642],{"class":2980,"style":2981},[2978,6635,2986],{"class":2984,"style":2985},[2978,6637,2990],{"class":2984,"style":2985},[2978,6639,2995],{"class":2993,"style":2994},[2978,6641,3000],{"class":2998,"style":2999},[2978,6643,3003],{"class":2998,"style":2999},[2978,6645,3007,6646,2987,6648],{"class":2980,"style":2981},[2978,6647,3012],{"class":3010,"style":3011},[2978,6649,3003],{"class":2998,"style":2999},[2978,6651,6652,6653,2987,6655,6657],{"class":2980,"style":2981},"    lazyHydration",[2978,6654,3012],{"class":3010,"style":3011},[2978,6656,3080],{"class":3022,"style":3023},[2978,6658,3027],{"class":3010,"style":3011},[2978,6660,3030,6661,6663],{"class":2980,"style":2981},[2978,6662,3033],{"class":2998,"style":2999},[2978,6664,3027],{"class":3010,"style":3011},[2978,6666,6667,6669],{"class":2980,"style":2981},[2978,6668,3033],{"class":2998,"style":2999},[2978,6670,3042],{"class":2998,"style":2999},[3148,6672,6674],{"icon":3150,"color":6542,"to":6673},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fcomponents#delayed-or-lazy-hydration","Read more about lazy hydration.",[2941,6676,2863],{"id":2862},[2915,6678,6679],{},"Disable resolving imports into Nuxt templates from the path of the module that added the template.",[2915,6681,6682,6683,6685],{},"By default, Nuxt attempts to resolve imports in templates relative to the module that added them. Setting this to ",[2922,6684,3080],{}," disables this behavior, which may be useful if you're experiencing resolution conflicts in certain environments.",[2915,6687,3050],{},[2969,6689,6690],{"language":2971,"meta":2972,"class":2973},[2922,6691,6692,3004,6704,3004,6710,3004,6719,3004,6725],{"class":2976},[2978,6693,6694,2987,6696,2987,6698,6700,6702],{"class":2980,"style":2981},[2978,6695,2986],{"class":2984,"style":2985},[2978,6697,2990],{"class":2984,"style":2985},[2978,6699,2995],{"class":2993,"style":2994},[2978,6701,3000],{"class":2998,"style":2999},[2978,6703,3003],{"class":2998,"style":2999},[2978,6705,3007,6706,2987,6708],{"class":2980,"style":2981},[2978,6707,3012],{"class":3010,"style":3011},[2978,6709,3003],{"class":2998,"style":2999},[2978,6711,6712,6713,2987,6715,6717],{"class":2980,"style":2981},"    templateImportResolution",[2978,6714,3012],{"class":3010,"style":3011},[2978,6716,3080],{"class":3022,"style":3023},[2978,6718,3027],{"class":3010,"style":3011},[2978,6720,3030,6721,6723],{"class":2980,"style":2981},[2978,6722,3033],{"class":2998,"style":2999},[2978,6724,3027],{"class":3010,"style":3011},[2978,6726,6727,6729],{"class":2980,"style":2981},[2978,6728,3033],{"class":2998,"style":2999},[2978,6730,3042],{"class":2998,"style":2999},[3148,6732,6734],{"icon":3150,"color":6542,"to":6733,"target":3152},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fpull\u002F31175","See PR #31175 for implementation details.",[2941,6736,2866],{"id":2865},[2915,6738,6739,6740,6743,6744,6746,6747,6749,6750,6752,6753,6756],{},"By default the route object returned by the auto-imported ",[2922,6741,6742],{},"useRoute()"," composable is kept in sync with the current page in view in ",[2922,6745,485],{},". This is not true for ",[2922,6748,3216],{},"'s exported ",[2922,6751,656],{}," or for the default ",[2922,6754,6755],{},"$route"," object available in your Vue templates.",[2915,6758,6759,6760,6762,6763,3483],{},"By enabling this option a mixin will be injected to keep the ",[2922,6761,6755],{}," template object in sync with Nuxt's managed ",[2922,6764,6742],{},[2915,6766,3050],{},[2969,6768,6769],{"language":2971,"meta":2972,"class":2973},[2922,6770,6771,3004,6783,3004,6789,3004,6798,3004,6804],{"class":2976},[2978,6772,6773,2987,6775,2987,6777,6779,6781],{"class":2980,"style":2981},[2978,6774,2986],{"class":2984,"style":2985},[2978,6776,2990],{"class":2984,"style":2985},[2978,6778,2995],{"class":2993,"style":2994},[2978,6780,3000],{"class":2998,"style":2999},[2978,6782,3003],{"class":2998,"style":2999},[2978,6784,3007,6785,2987,6787],{"class":2980,"style":2981},[2978,6786,3012],{"class":3010,"style":3011},[2978,6788,3003],{"class":2998,"style":2999},[2978,6790,6791,6792,2987,6794,6796],{"class":2980,"style":2981},"    templateRouteInjection",[2978,6793,3012],{"class":3010,"style":3011},[2978,6795,3080],{"class":3022,"style":3023},[2978,6797,3027],{"class":3010,"style":3011},[2978,6799,3030,6800,6802],{"class":2980,"style":2981},[2978,6801,3033],{"class":2998,"style":2999},[2978,6803,3027],{"class":3010,"style":3011},[2978,6805,6806,6808],{"class":2980,"style":2981},[2978,6807,3033],{"class":2998,"style":2999},[2978,6809,3042],{"class":2998,"style":2999},[2941,6811,2868],{"id":2868},[2915,6813,6814],{},"This option enables decorator syntax across your entire Nuxt\u002FNitro app.",[2915,6816,6817,6818,6822,6823,6829,6830,3483],{},"When using the Vite builder (default), decorators are lowered via ",[2927,6819,6821],{"href":6820},"https:\u002F\u002Fbabeljs.io\u002F","Babel"," using ",[2927,6824,6826],{"href":6825},"https:\u002F\u002Fbabeljs.io\u002Fdocs\u002Fbabel-plugin-proposal-decorators",[2922,6827,6828],{},"@babel\u002Fplugin-proposal-decorators",". When using the webpack or rspack builders, decorators are lowered via ",[2927,6831,6833],{"href":6832},"https:\u002F\u002Fgithub.com\u002Fevanw\u002Fesbuild\u002Freleases\u002Ftag\u002Fv0.21.3","esbuild",[2915,6835,6836,6837,6840,6841,6845,6846,2957,6849,3544],{},"For a long time, TypeScript has had support for decorators via ",[2922,6838,6839],{},"compilerOptions.experimentalDecorators",". This implementation predated the TC39 standardization process. Now, decorators are a ",[2927,6842,6844],{"href":6843},"https:\u002F\u002Fgithub.com\u002Ftc39\u002Fproposal-decorators","Stage 3 Proposal",", and supported without special configuration in TS 5.0+ (see ",[2927,6847,6848],{"href":6848},"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FTypeScript\u002Fpull\u002F52582",[2927,6850,6851],{"href":6851},"https:\u002F\u002Fdevblogs.microsoft.com\u002Ftypescript\u002Fannouncing-typescript-5-0-beta\u002F#decorators",[2915,6853,6854,6855,6858,6859,6862,6863,6865],{},"Enabling ",[2922,6856,6857],{},"experimental.decorators"," enables support for the TC39 proposal, ",[3525,6860,6861],{},"NOT"," for TypeScript's previous ",[2922,6864,6839],{}," implementation.",[3264,6867,6868],{},"Note that there may be changes before this finally lands in the JS standard.",[6870,6871,2872],"h3",{"id":2871},[2969,6873,6874],{"language":2971,"meta":2972,"class":2973},[2922,6875,6876,3004,6888,3004,6894,3004,6903,3004,6909],{"class":2976},[2978,6877,6878,2987,6880,2987,6882,6884,6886],{"class":2980,"style":2981},[2978,6879,2986],{"class":2984,"style":2985},[2978,6881,2990],{"class":2984,"style":2985},[2978,6883,2995],{"class":2993,"style":2994},[2978,6885,3000],{"class":2998,"style":2999},[2978,6887,3003],{"class":2998,"style":2999},[2978,6889,3007,6890,2987,6892],{"class":2980,"style":2981},[2978,6891,3012],{"class":3010,"style":3011},[2978,6893,3003],{"class":2998,"style":2999},[2978,6895,6896,6897,2987,6899,6901],{"class":2980,"style":2981},"    decorators",[2978,6898,3012],{"class":3010,"style":3011},[2978,6900,3024],{"class":3022,"style":3023},[2978,6902,3027],{"class":3010,"style":3011},[2978,6904,3030,6905,6907],{"class":2980,"style":2981},[2978,6906,3033],{"class":2998,"style":2999},[2978,6908,3027],{"class":3010,"style":3011},[2978,6910,6911,6913],{"class":2980,"style":2981},[2978,6912,3033],{"class":2998,"style":2999},[2978,6914,3042],{"class":2998,"style":2999},[2915,6916,6917],{},"When using the Vite builder or the Nitro server build, you will need to install additional Babel packages as dev dependencies:",[6919,6920,6921,6937,6950],"code-group",{},[2969,6922,6924],{"language":5428,"filename":6923,"class":5430},"npm",[2922,6925,6926],{"class":5433},[2978,6927,6928,2987,6930,6933,6936],{"class":2980,"style":2981},[2978,6929,6923],{"class":2993,"style":2994},[2978,6931,6932],{"class":2984,"style":2985},"install",[2978,6934,6935],{"class":2984,"style":2985}," -D"," @babel\u002Fplugin-proposal-decorators @babel\u002Fplugin-syntax-jsx",[2969,6938,6940],{"language":5428,"filename":6939,"class":5430},"pnpm",[2922,6941,6942],{"class":5433},[2978,6943,6944,2987,6946,6948,6936],{"class":2980,"style":2981},[2978,6945,6939],{"class":2993,"style":2994},[2978,6947,860],{"class":2984,"style":2985},[2978,6949,6935],{"class":2984,"style":2985},[2969,6951,6953],{"language":5428,"filename":6952,"class":5430},"yarn",[2922,6954,6955],{"class":5433},[2978,6956,6957,2987,6959,6961,6936],{"class":2980,"style":2981},[2978,6958,6952],{"class":2993,"style":2994},[2978,6960,860],{"class":2984,"style":2985},[2978,6962,6935],{"class":2984,"style":2985},[6964,6965,6966],"tip",{},"Nuxt will prompt you to install these automatically if they are not already present.",[2969,6968,6970],{"language":2971,"filename":6969,"class":2973},"app\u002Fapp.vue",[2922,6971,6972,3004,6996,3004,7009,3004,7013,3004,7015,3004,7024,3004,7027,3004,7040,3004,7047,3004,7051,3004,7055,3004,7057,3004,7081],{"class":2976},[2978,6973,6974,2987,6977,2987,6980,6982,6983,2987,6985,6987,2987,6989,6991,6992,2987,6994],{"class":2980,"style":2981},[2978,6975,6976],{"class":2984,"style":2985},"function",[2978,6978,6979],{"class":2993,"style":2994},"something",[2978,6981,3000],{"class":2998,"style":2999},"_method",[2978,6984,3012],{"class":3010,"style":3011},[2978,6986,3000],{"class":2998,"style":2999},[2978,6988,3042],{"class":2998,"style":2999},[2978,6990,3390],{"class":2984,"style":2985}," unknown",[2978,6993,3042],{"class":2998,"style":2999},[2978,6995,3003],{"class":2998,"style":2999},[2978,6997,3030,6998,2987,7000,7002,2987,7004,2987,7006],{"class":2980,"style":2981},[2978,6999,3397],{"class":2984,"style":2985},[2978,7001,3000],{"class":2998,"style":2999},[2978,7003,3042],{"class":2998,"style":2999},[2978,7005,3390],{"class":2984,"style":2985},[2978,7007,7008],{"class":3376,"style":3377},"'decorated'",[2978,7010,7011],{"class":2980,"style":2981},[2978,7012,3033],{"class":2998,"style":2999},[2978,7014],{"class":2980,"style":2981},[2978,7016,7017,2987,7019,2987,7022],{"class":2980,"style":2981},[2978,7018,4089],{"class":2984,"style":2985},[2978,7020,7021],{"class":3348,"style":3349},"SomeClass",[2978,7023,3003],{"class":2998,"style":2999},[2978,7025,7026],{"class":2980,"style":2981},"  @something",[2978,7028,3030,7029,2987,7031,2987,7034,7036,2987,7038],{"class":2980,"style":2981},[2978,7030,179],{"class":2984,"style":2985},[2978,7032,7033],{"class":2993,"style":2994},"someMethod",[2978,7035,3000],{"class":2998,"style":2999},[2978,7037,3042],{"class":2998,"style":2999},[2978,7039,3003],{"class":2998,"style":2999},[2978,7041,4499,7042,2987,7044],{"class":2980,"style":2981},[2978,7043,3397],{"class":2984,"style":2985},[2978,7045,7046],{"class":3376,"style":3377},"'initial'",[2978,7048,3030,7049],{"class":2980,"style":2981},[2978,7050,3033],{"class":2998,"style":2999},[2978,7052,7053],{"class":2980,"style":2981},[2978,7054,3033],{"class":2998,"style":2999},[2978,7056],{"class":2980,"style":2981},[2978,7058,7059,7061,7062,2987,7064,2987,7067,7069,7071,7073,7075,7077,7079],{"class":2980,"style":2981},[2978,7060,3358],{"class":2984,"style":2985}," value ",[2978,7063,3366],{"class":3010,"style":3011},[2978,7065,7066],{"class":2984,"style":2985},"new",[2978,7068,7021],{"class":3348,"style":3349},[2978,7070,3000],{"class":2998,"style":2999},[2978,7072,3042],{"class":2998,"style":2999},[2978,7074,3483],{"class":3010,"style":3011},[2978,7076,7033],{"class":2993,"style":2994},[2978,7078,3000],{"class":2998,"style":2999},[2978,7080,3042],{"class":2998,"style":2999},[2978,7082,7083],{"class":2980,"style":2981},[2978,7084,7085],{"class":3333,"style":3334},"\u002F\u002F this will return 'decorated'",[2941,7087,2874],{"id":2874},[2915,7089,7090],{},"This allows specifying the default options for core Nuxt components and composables.",[2915,7092,7093,7094,7097,7098,7101],{},"These options will likely be moved elsewhere in the future, such as into ",[2922,7095,7096],{},"app.config"," or into the ",[2922,7099,7100],{},"app\u002F"," directory.",[2969,7103,7104],{"language":2971,"meta":2972,"class":2973},[2922,7105,7106,3004,7118,3004,7124,3004,7131,3004,7138,3004,7148,3004,7157,3004,7164,3004,7173,3004,7180,3004,7186,3004,7193,3004,7202,3004,7208,3004,7215,3004,7224,3004,7230,3004,7236,3004,7242],{"class":2976},[2978,7107,7108,2987,7110,2987,7112,7114,7116],{"class":2980,"style":2981},[2978,7109,2986],{"class":2984,"style":2985},[2978,7111,2990],{"class":2984,"style":2985},[2978,7113,2995],{"class":2993,"style":2994},[2978,7115,3000],{"class":2998,"style":2999},[2978,7117,3003],{"class":2998,"style":2999},[2978,7119,3007,7120,2987,7122],{"class":2980,"style":2981},[2978,7121,3012],{"class":3010,"style":3011},[2978,7123,3003],{"class":2998,"style":2999},[2978,7125,7126,7127,2987,7129],{"class":2980,"style":2981},"    defaults",[2978,7128,3012],{"class":3010,"style":3011},[2978,7130,3003],{"class":2998,"style":2999},[2978,7132,7133,7134,2987,7136],{"class":2980,"style":2981},"      nuxtLink",[2978,7135,3012],{"class":3010,"style":3011},[2978,7137,3003],{"class":2998,"style":2999},[2978,7139,7140,7141,2987,7143,7146],{"class":2980,"style":2981},"        componentName",[2978,7142,3012],{"class":3010,"style":3011},[2978,7144,7145],{"class":3376,"style":3377},"'NuxtLink'",[2978,7147,3027],{"class":3010,"style":3011},[2978,7149,7150,7151,2987,7153,7155],{"class":2980,"style":2981},"        prefetch",[2978,7152,3012],{"class":3010,"style":3011},[2978,7154,3024],{"class":3022,"style":3023},[2978,7156,3027],{"class":3010,"style":3011},[2978,7158,7159,7160,2987,7162],{"class":2980,"style":2981},"        prefetchOn",[2978,7161,3012],{"class":3010,"style":3011},[2978,7163,3003],{"class":2998,"style":2999},[2978,7165,7166,7167,2987,7169,7171],{"class":2980,"style":2981},"          visibility",[2978,7168,3012],{"class":3010,"style":3011},[2978,7170,3024],{"class":3022,"style":3023},[2978,7172,3027],{"class":3010,"style":3011},[2978,7174,7175,7176,7178],{"class":2980,"style":2981},"        ",[2978,7177,3033],{"class":2998,"style":2999},[2978,7179,3027],{"class":3010,"style":3011},[2978,7181,5680,7182,7184],{"class":2980,"style":2981},[2978,7183,3033],{"class":2998,"style":2999},[2978,7185,3027],{"class":3010,"style":3011},[2978,7187,7188,7189,2987,7191],{"class":2980,"style":2981},"      useAsyncData",[2978,7190,3012],{"class":3010,"style":3011},[2978,7192,3003],{"class":2998,"style":2999},[2978,7194,7195,7196,2987,7198,7200],{"class":2980,"style":2981},"        deep",[2978,7197,3012],{"class":3010,"style":3011},[2978,7199,3024],{"class":3022,"style":3023},[2978,7201,3027],{"class":3010,"style":3011},[2978,7203,5680,7204,7206],{"class":2980,"style":2981},[2978,7205,3033],{"class":2998,"style":2999},[2978,7207,3027],{"class":3010,"style":3011},[2978,7209,7210,7211,2987,7213],{"class":2980,"style":2981},"      useState",[2978,7212,3012],{"class":3010,"style":3011},[2978,7214,3003],{"class":2998,"style":2999},[2978,7216,7217,7218,2987,7220,7222],{"class":2980,"style":2981},"        resetOnClear",[2978,7219,3012],{"class":3010,"style":3011},[2978,7221,3024],{"class":3022,"style":3023},[2978,7223,3027],{"class":3010,"style":3011},[2978,7225,5680,7226,7228],{"class":2980,"style":2981},[2978,7227,3033],{"class":2998,"style":2999},[2978,7229,3027],{"class":3010,"style":3011},[2978,7231,4499,7232,7234],{"class":2980,"style":2981},[2978,7233,3033],{"class":2998,"style":2999},[2978,7235,3027],{"class":3010,"style":3011},[2978,7237,3030,7238,7240],{"class":2980,"style":2981},[2978,7239,3033],{"class":2998,"style":2999},[2978,7241,3027],{"class":3010,"style":3011},[2978,7243,7244,7246],{"class":2980,"style":2981},[2978,7245,3033],{"class":2998,"style":2999},[2978,7247,3042],{"class":2998,"style":2999},[2915,7249,5553,7250,7253,7254,7258,7259,7261,7262,7266,7267,7269,7270,6296,7272,3483],{},[2922,7251,7252],{},"useState.resetOnClear"," option controls whether ",[2927,7255,7256],{"href":1670},[2922,7257,731],{}," resets state to its initial value (provided by the ",[2922,7260,910],{}," function of ",[2927,7263,7264],{"href":1653},[2922,7265,691],{},") instead of setting it to ",[2922,7268,6146],{},". This defaults to ",[2922,7271,3024],{},[2922,7273,3999],{},[2941,7275,2877],{"id":2876},[2915,7277,7278],{},"Whether to clean up Nuxt static and asyncData caches on route navigation.",[2915,7280,7281,7282,2957,7284,7287],{},"Nuxt will automatically purge cached data from ",[2922,7283,561],{},[2922,7285,7286],{},"nuxtApp.static.data",". This helps prevent memory leaks and ensures fresh data is loaded when needed, but it is possible to disable it.",[2915,7289,3050],{},[2969,7291,7292],{"language":2971,"meta":2972,"class":2973},[2922,7293,7294,3004,7306,3004,7312,3004,7321,3004,7327],{"class":2976},[2978,7295,7296,2987,7298,2987,7300,7302,7304],{"class":2980,"style":2981},[2978,7297,2986],{"class":2984,"style":2985},[2978,7299,2990],{"class":2984,"style":2985},[2978,7301,2995],{"class":2993,"style":2994},[2978,7303,3000],{"class":2998,"style":2999},[2978,7305,3003],{"class":2998,"style":2999},[2978,7307,3007,7308,2987,7310],{"class":2980,"style":2981},[2978,7309,3012],{"class":3010,"style":3011},[2978,7311,3003],{"class":2998,"style":2999},[2978,7313,7314,7315,2987,7317,7319],{"class":2980,"style":2981},"    purgeCachedData",[2978,7316,3012],{"class":3010,"style":3011},[2978,7318,3080],{"class":3022,"style":3023},[2978,7320,3027],{"class":3010,"style":3011},[2978,7322,3030,7323,7325],{"class":2980,"style":2981},[2978,7324,3033],{"class":2998,"style":2999},[2978,7326,3027],{"class":3010,"style":3011},[2978,7328,7329,7331],{"class":2980,"style":2981},[2978,7330,3033],{"class":2998,"style":2999},[2978,7332,3042],{"class":2998,"style":2999},[3148,7334,7336],{"icon":3150,"color":6542,"to":7335,"target":3152},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fpull\u002F31379","See PR #31379 for implementation details.",[2941,7338,2880],{"id":2879},[2915,7340,7341,7342,7344,7345,7349,7350,7353,7354,7358,7359,7365,7366,7369],{},"When a ",[2922,7343,495],{}," is prefetched and the destination route has ",[2927,7346,7348],{"href":7347},"#payloadextraction","payload extraction"," enabled (the default for prerendered and cached routes), forward any ",[2922,7351,7352],{},"\u003Clink rel=\"preload\">"," hints that the destination set via ",[2927,7355,7356],{"href":1604},[2922,7357,581],{}," (or via modules like ",[2927,7360,7362],{"href":7361},"https:\u002F\u002Fimage.nuxt.com",[2922,7363,7364],{},"@nuxt\u002Fimage","'s ",[2922,7367,7368],{},"\u003CNuxtImg preload>",") into the current document.",[2915,7371,7372,7373,7376,7377,7380],{},"The forwarded links are downgraded from ",[2922,7374,7375],{},"rel=\"preload\""," to ",[2922,7378,7379],{},"rel=\"prefetch\""," so they don't compete with the current page's critical resources. Only user-defined head tags are forwarded; build-time JS\u002FCSS chunk preloads are already handled separately by the prefetch pipeline.",[2915,7382,7383,7384,7387,7388,7390],{},"This flag is off by default because, combined with ",[2922,7385,7386],{},"prefetchOn: 'visibility'"," (the ",[2922,7389,495],{}," default), it could trigger a lot of cross-route prefetches at once. Enable it once you are confident the destination preloads are worth forwarding for the links your users typically encounter.",[2969,7392,7393],{"language":2971,"meta":2972,"class":2973},[2922,7394,7395,3004,7407,3004,7413,3004,7422,3004,7428],{"class":2976},[2978,7396,7397,2987,7399,2987,7401,7403,7405],{"class":2980,"style":2981},[2978,7398,2986],{"class":2984,"style":2985},[2978,7400,2990],{"class":2984,"style":2985},[2978,7402,2995],{"class":2993,"style":2994},[2978,7404,3000],{"class":2998,"style":2999},[2978,7406,3003],{"class":2998,"style":2999},[2978,7408,3007,7409,2987,7411],{"class":2980,"style":2981},[2978,7410,3012],{"class":3010,"style":3011},[2978,7412,3003],{"class":2998,"style":2999},[2978,7414,7415,7416,2987,7418,7420],{"class":2980,"style":2981},"    prefetchPreloadTags",[2978,7417,3012],{"class":3010,"style":3011},[2978,7419,3024],{"class":3022,"style":3023},[2978,7421,3027],{"class":3010,"style":3011},[2978,7423,3030,7424,7426],{"class":2980,"style":2981},[2978,7425,3033],{"class":2998,"style":2999},[2978,7427,3027],{"class":3010,"style":3011},[2978,7429,7430,7432],{"class":2980,"style":2981},[2978,7431,3033],{"class":2998,"style":2999},[2978,7433,3042],{"class":2998,"style":2999},[3148,7435,7437],{"icon":3150,"color":6542,"to":7436,"target":3152},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fissues\u002F34953","See issue #34953 for motivation.",[2941,7439,2883],{"id":2882},[2915,7441,7442,7443,7446,7447,2957,7449,7451,7452,3210,7455,7458,7459,3678],{},"Whether to call and use the result from ",[2922,7444,7445],{},"getCachedData"," when refreshing data for ",[2922,7448,561],{},[2922,7450,576],{}," (whether by ",[2922,7453,7454],{},"watch",[2922,7456,7457],{},"refreshNuxtData()",", or a manual ",[2922,7460,7461],{},"refresh()",[2915,7463,3050],{},[2969,7465,7466],{"language":2971,"meta":2972,"class":2973},[2922,7467,7468,3004,7480,3004,7486,3004,7495,3004,7501],{"class":2976},[2978,7469,7470,2987,7472,2987,7474,7476,7478],{"class":2980,"style":2981},[2978,7471,2986],{"class":2984,"style":2985},[2978,7473,2990],{"class":2984,"style":2985},[2978,7475,2995],{"class":2993,"style":2994},[2978,7477,3000],{"class":2998,"style":2999},[2978,7479,3003],{"class":2998,"style":2999},[2978,7481,3007,7482,2987,7484],{"class":2980,"style":2981},[2978,7483,3012],{"class":3010,"style":3011},[2978,7485,3003],{"class":2998,"style":2999},[2978,7487,7488,7489,2987,7491,7493],{"class":2980,"style":2981},"    granularCachedData",[2978,7490,3012],{"class":3010,"style":3011},[2978,7492,3080],{"class":3022,"style":3023},[2978,7494,3027],{"class":3010,"style":3011},[2978,7496,3030,7497,7499],{"class":2980,"style":2981},[2978,7498,3033],{"class":2998,"style":2999},[2978,7500,3027],{"class":3010,"style":3011},[2978,7502,7503,7505],{"class":2980,"style":2981},[2978,7504,3033],{"class":2998,"style":2999},[2978,7506,3042],{"class":2998,"style":2999},[3148,7508,7510],{"icon":3150,"color":6542,"to":7509,"target":3152},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fpull\u002F31373","See PR #31373 for implementation details.",[2941,7512,2886],{"id":2885},[2915,7514,7515,7516,7522,7523,2957,7525,7527,7528,7531,7532,7535],{},"Apply ",[2927,7517,7519],{"href":7518},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-async-data#params",[2922,7520,7521],{},"serialize: false"," by default to ",[2922,7524,561],{},[2922,7526,576],{}," calls made within components lazily hydrated with ",[2922,7529,7530],{},"hydrate-never",", keeping their data out of the ",[2922,7533,7534],{},"__NUXT_DATA__"," payload. Since these components never hydrate on the client, their data is not needed for hydration.",[2969,7537,7538],{"language":2971,"meta":2972,"class":2973},[2922,7539,7540,3004,7552,3004,7558,3004,7567,3004,7573],{"class":2976},[2978,7541,7542,2987,7544,2987,7546,7548,7550],{"class":2980,"style":2981},[2978,7543,2986],{"class":2984,"style":2985},[2978,7545,2990],{"class":2984,"style":2985},[2978,7547,2995],{"class":2993,"style":2994},[2978,7549,3000],{"class":2998,"style":2999},[2978,7551,3003],{"class":2998,"style":2999},[2978,7553,3007,7554,2987,7556],{"class":2980,"style":2981},[2978,7555,3012],{"class":3010,"style":3011},[2978,7557,3003],{"class":2998,"style":2999},[2978,7559,7560,7561,2987,7563,7565],{"class":2980,"style":2981},"    stripNeverHydratedData",[2978,7562,3012],{"class":3010,"style":3011},[2978,7564,3024],{"class":3022,"style":3023},[2978,7566,3027],{"class":3010,"style":3011},[2978,7568,3030,7569,7571],{"class":2980,"style":2981},[2978,7570,3033],{"class":2998,"style":2999},[2978,7572,3027],{"class":3010,"style":3011},[2978,7574,7575,7577],{"class":2980,"style":2981},[2978,7576,3033],{"class":2998,"style":2999},[2978,7578,3042],{"class":2998,"style":2999},[2915,7580,7581,7582,7585,7586,7588],{},"An explicit ",[2922,7583,7584],{},"serialize"," option always takes precedence. If the same key is shared with components that do hydrate, keep the ",[2922,7587,7584],{}," option consistent across calls (Nuxt warns about mismatches in development).",[2941,7590,2889],{"id":2888},[2915,7592,7593],{},"Use head optimisations:",[3959,7595,7596,7599],{},[3962,7597,7598],{},"Add the capo.js head plugin in order to render tags in of the head in a more performant way.",[3962,7600,7601],{},"Uses the hash hydration plugin to reduce initial hydration",[2915,7603,3050],{},[2969,7605,7606],{"language":2971,"meta":2972,"class":2973},[2922,7607,7608,3004,7620,3004,7626,3004,7635,3004,7641],{"class":2976},[2978,7609,7610,2987,7612,2987,7614,7616,7618],{"class":2980,"style":2981},[2978,7611,2986],{"class":2984,"style":2985},[2978,7613,2990],{"class":2984,"style":2985},[2978,7615,2995],{"class":2993,"style":2994},[2978,7617,3000],{"class":2998,"style":2999},[2978,7619,3003],{"class":2998,"style":2999},[2978,7621,3007,7622,2987,7624],{"class":2980,"style":2981},[2978,7623,3012],{"class":3010,"style":3011},[2978,7625,3003],{"class":2998,"style":2999},[2978,7627,7628,7629,2987,7631,7633],{"class":2980,"style":2981},"    headNext",[2978,7630,3012],{"class":3010,"style":3011},[2978,7632,3080],{"class":3022,"style":3023},[2978,7634,3027],{"class":3010,"style":3011},[2978,7636,3030,7637,7639],{"class":2980,"style":2981},[2978,7638,3033],{"class":2998,"style":2999},[2978,7640,3027],{"class":3010,"style":3011},[2978,7642,7643,7645],{"class":2980,"style":2981},[2978,7644,3033],{"class":2998,"style":2999},[2978,7646,3042],{"class":2998,"style":2999},[2941,7648,2892],{"id":2891},[2915,7650,7651,7653,7654,7657,7658,2957,7660,3483],{},[2922,7652,2892],{}," controls the ",[2922,7655,7656],{},"pending"," ref returned by ",[2922,7659,561],{},[2922,7661,576],{},[2915,7663,7664,7665,4852,7667,7669,7670,4852,7672,7674,7675,7678,7679,4852,7682,3210,7685,7687,7688,7690,7691,7694,7695,7698],{},"When ",[2922,7666,2892],{},[2922,7668,3080],{}," (the default), ",[2922,7671,7656],{},[2922,7673,3024],{}," while a request is in flight and matches ",[2922,7676,7677],{},"status === 'pending'",". While ",[2922,7680,7681],{},"status",[2922,7683,7684],{},"idle",[2922,7686,7656],{}," stays ",[2922,7689,3080],{},". You can see this with ",[2922,7692,7693],{},"{ immediate: false }",", or with ",[2922,7696,7697],{},"{ server: false }"," during server rendering.",[2915,7700,7701,7702,7705,7706,7708,7709,3996,7711,4852,7713,7715,7716,7718,7719,7721],{},"Set ",[2922,7703,7704],{},"pendingWhenIdle: true"," so ",[2922,7707,7656],{}," is also ",[2922,7710,3024],{},[2922,7712,7681],{},[2922,7714,7684],{}," and no cached data is available. Use ",[2922,7717,7681],{}," when your loading UI needs to distinguish ",[2922,7720,7684],{}," from an in-flight request.",[2969,7723,7724],{"language":2971,"meta":2972,"class":2973},[2922,7725,7726,3004,7738,3004,7744,3004,7753,3004,7759],{"class":2976},[2978,7727,7728,2987,7730,2987,7732,7734,7736],{"class":2980,"style":2981},[2978,7729,2986],{"class":2984,"style":2985},[2978,7731,2990],{"class":2984,"style":2985},[2978,7733,2995],{"class":2993,"style":2994},[2978,7735,3000],{"class":2998,"style":2999},[2978,7737,3003],{"class":2998,"style":2999},[2978,7739,3007,7740,2987,7742],{"class":2980,"style":2981},[2978,7741,3012],{"class":3010,"style":3011},[2978,7743,3003],{"class":2998,"style":2999},[2978,7745,7746,7747,2987,7749,7751],{"class":2980,"style":2981},"    pendingWhenIdle",[2978,7748,3012],{"class":3010,"style":3011},[2978,7750,3024],{"class":3022,"style":3023},[2978,7752,3027],{"class":3010,"style":3011},[2978,7754,3030,7755,7757],{"class":2980,"style":2981},[2978,7756,3033],{"class":2998,"style":2999},[2978,7758,3027],{"class":3010,"style":3011},[2978,7760,7761,7763],{"class":2980,"style":2981},[2978,7762,3033],{"class":2998,"style":2999},[2978,7764,3042],{"class":2998,"style":2999},[2941,7766,2895],{"id":2894},[2915,7768,7769],{},"By default, Nuxt improves chunk stability by using an import map to resolve the entry chunk of the bundle.",[2915,7771,7772,7773,7776],{},"This injects an import map at the top of your ",[2922,7774,7775],{},"\u003Chead>"," tag:",[2969,7778,7779],{"language":6417,"class":6418},[2922,7780,7781],{"class":6421},[2978,7782,7783,7785,2987,7787,7790,7792,7795,7797,7799,7800,7802,7804,7805,7807,7810,7812,7814,7816,7818],{"class":2980,"style":2981},[2978,7784,3340],{"class":3010,"style":3011},[2978,7786,3345],{"class":3343,"style":3344},[2978,7788,7789],{"class":3348,"style":3349},"type",[2978,7791,3366],{"class":3010,"style":3011},[2978,7793,7794],{"class":3376,"style":3377},"\"importmap\"",[2978,7796,3353],{"class":3010,"style":3011},[2978,7798,3003],{"class":2998,"style":2999},"\"imports\"",[2978,7801,3012],{"class":3010,"style":3011},[2978,7803,3003],{"class":2998,"style":2999},"\"#entry\"",[2978,7806,3012],{"class":3010,"style":3011},[2978,7808,7809],{"class":3376,"style":3377},"\"\u002F_nuxt\u002FDC5HVSK5.js\"",[2978,7811,3033],{"class":2998,"style":2999},[2978,7813,3033],{"class":2998,"style":2999},[2978,7815,3419],{"class":3010,"style":3011},[2978,7817,3345],{"class":3343,"style":3344},[2978,7819,3353],{"class":3010,"style":3011},[2915,7821,7822,7823,7826],{},"Within the script chunks emitted by Vite, imports will be from ",[2922,7824,7825],{},"#entry",". This means that changes to the entry will not invalidate chunks which are otherwise unchanged.",[2937,7828,7829,7830,7833,7834,7837,7838,3483],{},"Nuxt smartly disables this feature if you have configured ",[2922,7831,7832],{},"vite.build.target"," to include a browser that doesn't support import maps, or if you have configured ",[2922,7835,7836],{},"vite.build.rolldownOptions.output.entryFileNames"," to a value that does not include ",[2922,7839,7840],{},"[hash]",[2915,7842,7843],{},"If you need to disable this feature you can do so:",[2969,7845,7846],{"language":2971,"meta":2972,"class":2973},[2922,7847,7848,3004,7860,3004,7866,3004,7875,3004,7881,3004,7886,3004,7891,3004,7898,3004,7905,3004,7915,3004,7921,3004,7927],{"class":2976},[2978,7849,7850,2987,7852,2987,7854,7856,7858],{"class":2980,"style":2981},[2978,7851,2986],{"class":2984,"style":2985},[2978,7853,2990],{"class":2984,"style":2985},[2978,7855,2995],{"class":2993,"style":2994},[2978,7857,3000],{"class":2998,"style":2999},[2978,7859,3003],{"class":2998,"style":2999},[2978,7861,3007,7862,2987,7864],{"class":2980,"style":2981},[2978,7863,3012],{"class":3010,"style":3011},[2978,7865,3003],{"class":2998,"style":2999},[2978,7867,7868,7869,2987,7871,7873],{"class":2980,"style":2981},"    entryImportMap",[2978,7870,3012],{"class":3010,"style":3011},[2978,7872,3080],{"class":3022,"style":3023},[2978,7874,3027],{"class":3010,"style":3011},[2978,7876,3030,7877,7879],{"class":2980,"style":2981},[2978,7878,3033],{"class":2998,"style":2999},[2978,7880,3027],{"class":3010,"style":3011},[2978,7882,3030,7883],{"class":2980,"style":2981},[2978,7884,7885],{"class":3333,"style":3334},"\u002F\u002F or, better, simply tell vite your desired target",[2978,7887,3030,7888],{"class":2980,"style":2981},[2978,7889,7890],{"class":3333,"style":3334},"\u002F\u002F which nuxt will respect",[2978,7892,7893,7894,2987,7896],{"class":2980,"style":2981},"  vite",[2978,7895,3012],{"class":3010,"style":3011},[2978,7897,3003],{"class":2998,"style":2999},[2978,7899,7900,7901,2987,7903],{"class":2980,"style":2981},"    build",[2978,7902,3012],{"class":3010,"style":3011},[2978,7904,3003],{"class":2998,"style":2999},[2978,7906,7907,7908,2987,7910,7913],{"class":2980,"style":2981},"      target",[2978,7909,3012],{"class":3010,"style":3011},[2978,7911,7912],{"class":3376,"style":3377},"'safari13'",[2978,7914,3027],{"class":3010,"style":3011},[2978,7916,4499,7917,7919],{"class":2980,"style":2981},[2978,7918,3033],{"class":2998,"style":2999},[2978,7920,3027],{"class":3010,"style":3011},[2978,7922,3030,7923,7925],{"class":2980,"style":2981},[2978,7924,3033],{"class":2998,"style":2999},[2978,7926,3027],{"class":3010,"style":3011},[2978,7928,7929,7931],{"class":2980,"style":2981},[2978,7930,3033],{"class":2998,"style":2999},[2978,7932,3042],{"class":2998,"style":2999},[2941,7934,2898],{"id":2897},[2915,7936,7937,7938,7941],{},"Enable enhanced TypeScript developer experience with the ",[2922,7939,7940],{},"@dxup\u002Fnuxt"," module.",[2915,7943,7944],{},"This experimental plugin provides improved TypeScript integration and development tooling for better DX when working with TypeScript in Nuxt applications.",[2915,7946,2967],{},[2969,7948,7949],{"language":2971,"meta":2972,"class":2973},[2922,7950,7951,3004,7963,3004,7969,3004,7978,3004,7984],{"class":2976},[2978,7952,7953,2987,7955,2987,7957,7959,7961],{"class":2980,"style":2981},[2978,7954,2986],{"class":2984,"style":2985},[2978,7956,2990],{"class":2984,"style":2985},[2978,7958,2995],{"class":2993,"style":2994},[2978,7960,3000],{"class":2998,"style":2999},[2978,7962,3003],{"class":2998,"style":2999},[2978,7964,3007,7965,2987,7967],{"class":2980,"style":2981},[2978,7966,3012],{"class":3010,"style":3011},[2978,7968,3003],{"class":2998,"style":2999},[2978,7970,7971,7972,2987,7974,7976],{"class":2980,"style":2981},"    typescriptPlugin",[2978,7973,3012],{"class":3010,"style":3011},[2978,7975,3024],{"class":3022,"style":3023},[2978,7977,3027],{"class":3010,"style":3011},[2978,7979,3030,7980,7982],{"class":2980,"style":2981},[2978,7981,3033],{"class":2998,"style":2999},[2978,7983,3027],{"class":3010,"style":3011},[2978,7985,7986,7988],{"class":2980,"style":2981},[2978,7987,3033],{"class":2998,"style":2999},[2978,7989,3042],{"class":2998,"style":2999},[3521,7991,7992,7995],{},[2915,7993,7994],{},"To use this feature, you need to:",[3959,7996,7997,8004],{},[3962,7998,7999,8000,8003],{},"Have ",[2922,8001,8002],{},"typescript"," installed as a dependency",[3962,8005,8006,8007,3042],{},"Configure VS Code to use your workspace TypeScript version (see ",[2927,8008,8010],{"href":8009},"https:\u002F\u002Fcode.visualstudio.com\u002Fdocs\u002Ftypescript\u002Ftypescript-compiling#_using-the-workspace-version-of-typescript","VS Code documentation",[3148,8012,8014,8015,3483],{"icon":3150,"to":8013,"target":3152},"https:\u002F\u002Fgithub.com\u002FKazariEX\u002Fdxup","Learn more about ",[3525,8016,7940],{},[2941,8018,2901],{"id":2900},[2915,8020,8021,8022,8026],{},"Enable Vite 6's new ",[2927,8023,8025],{"href":8024},"https:\u002F\u002Fvite.dev\u002Fguide\u002Fapi-environment","Environment API"," for improved build configuration and plugin architecture.",[2915,8028,8029,8030,7376,8032,8034],{},"When you set ",[2922,8031,4109],{},[2922,8033,4113],{},", this feature is enabled by default. You can also enable it explicitly for testing:",[2969,8036,8037],{"language":2971,"meta":2972,"class":2973},[2922,8038,8039,3004,8051,3004,8057,3004,8066,3004,8072],{"class":2976},[2978,8040,8041,2987,8043,2987,8045,8047,8049],{"class":2980,"style":2981},[2978,8042,2986],{"class":2984,"style":2985},[2978,8044,2990],{"class":2984,"style":2985},[2978,8046,2995],{"class":2993,"style":2994},[2978,8048,3000],{"class":2998,"style":2999},[2978,8050,3003],{"class":2998,"style":2999},[2978,8052,3007,8053,2987,8055],{"class":2980,"style":2981},[2978,8054,3012],{"class":3010,"style":3011},[2978,8056,3003],{"class":2998,"style":2999},[2978,8058,8059,8060,2987,8062,8064],{"class":2980,"style":2981},"    viteEnvironmentApi",[2978,8061,3012],{"class":3010,"style":3011},[2978,8063,3024],{"class":3022,"style":3023},[2978,8065,3027],{"class":3010,"style":3011},[2978,8067,3030,8068,8070],{"class":2980,"style":2981},[2978,8069,3033],{"class":2998,"style":2999},[2978,8071,3027],{"class":3010,"style":3011},[2978,8073,8074,8076],{"class":2980,"style":2981},[2978,8075,3033],{"class":2998,"style":2999},[2978,8077,3042],{"class":2998,"style":2999},[2915,8079,8080],{},"The Vite Environment API provides better consistency between development and production builds, more granular control over environment-specific configuration, and improved performance.",[3521,8082,8083,8084,8088],{},"Enabling this feature changes how Vite plugins are registered and configured. See the ",[2927,8085,8087],{"href":8086},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fupgrade#migration-to-vite-environment-api","Vite Environment API migration guide"," for details on updating your plugins.",[3148,8090,8091],{"to":8024,"target":3152},"Learn more about Vite's Environment API.",[2941,8093,2904],{"id":2903},[2915,8095,8096,8097,8099,8100,3483],{},"Enables SSR streaming to dramatically improve Time to First Byte (TTFB). When enabled, the server sends the HTML shell (including ",[2922,8098,7775],{},", styles, preload hints, and entry scripts) immediately, then streams the rendered body content progressively using Vue's ",[2922,8101,8102],{},"renderToWebStream",[2969,8104,8105],{"language":2971,"meta":2972,"class":2973},[2922,8106,8107,3004,8119,3004,8125,3004,8134,3004,8140],{"class":2976},[2978,8108,8109,2987,8111,2987,8113,8115,8117],{"class":2980,"style":2981},[2978,8110,2986],{"class":2984,"style":2985},[2978,8112,2990],{"class":2984,"style":2985},[2978,8114,2995],{"class":2993,"style":2994},[2978,8116,3000],{"class":2998,"style":2999},[2978,8118,3003],{"class":2998,"style":2999},[2978,8120,3007,8121,2987,8123],{"class":2980,"style":2981},[2978,8122,3012],{"class":3010,"style":3011},[2978,8124,3003],{"class":2998,"style":2999},[2978,8126,8127,8128,2987,8130,8132],{"class":2980,"style":2981},"    ssrStreaming",[2978,8129,3012],{"class":3010,"style":3011},[2978,8131,3024],{"class":3022,"style":3023},[2978,8133,3027],{"class":3010,"style":3011},[2978,8135,3030,8136,8138],{"class":2980,"style":2981},[2978,8137,3033],{"class":2998,"style":2999},[2978,8139,3027],{"class":3010,"style":3011},[2978,8141,8142,8144],{"class":2980,"style":2981},[2978,8143,3033],{"class":2998,"style":2999},[2978,8145,3042],{"class":2998,"style":2999},[2915,8147,8148],{},"Streaming is automatically disabled for bot and crawler user agents (such as Googlebot, Bingbot, etc.) to ensure search engines receive fully-rendered HTML for SEO safety. The default pattern matches indexing crawlers only; Lighthouse and other audit tools deliberately fall outside it so synthetic measurements reflect the same streamed response real users get. You can customize the bot detection regex:",[2969,8150,8151],{"language":2971,"meta":2972,"class":2973},[2922,8152,8153,3004,8165,3004,8171,3004,8177,3004,8201,3004,8207,3004,8213],{"class":2976},[2978,8154,8155,2987,8157,2987,8159,8161,8163],{"class":2980,"style":2981},[2978,8156,2986],{"class":2984,"style":2985},[2978,8158,2990],{"class":2984,"style":2985},[2978,8160,2995],{"class":2993,"style":2994},[2978,8162,3000],{"class":2998,"style":2999},[2978,8164,3003],{"class":2998,"style":2999},[2978,8166,3007,8167,2987,8169],{"class":2980,"style":2981},[2978,8168,3012],{"class":3010,"style":3011},[2978,8170,3003],{"class":2998,"style":2999},[2978,8172,8127,8173,2987,8175],{"class":2980,"style":2981},[2978,8174,3012],{"class":3010,"style":3011},[2978,8176,3003],{"class":2998,"style":2999},[2978,8178,8179,8180,2987,8182,8185,8188,8191,8193,8196,8199],{"class":2980,"style":2981},"      botRegex",[2978,8181,3012],{"class":3010,"style":3011},[2978,8183,8184],{"class":3010,"style":3011},"\u002Fgooglebot",[2978,8186,8187],{"class":2984,"style":2985},"|",[2978,8189,8190],{"class":3010,"style":3011},"bingbot",[2978,8192,8187],{"class":2984,"style":2985},[2978,8194,8195],{"class":3010,"style":3011},"my-internal-crawler\u002F",[2978,8197,8198],{"class":2984,"style":2985},"i",[2978,8200,3027],{"class":3010,"style":3011},[2978,8202,4499,8203,8205],{"class":2980,"style":2981},[2978,8204,3033],{"class":2998,"style":2999},[2978,8206,3027],{"class":3010,"style":3011},[2978,8208,3030,8209,8211],{"class":2980,"style":2981},[2978,8210,3033],{"class":2998,"style":2999},[2978,8212,3027],{"class":3010,"style":3011},[2978,8214,8215,8217],{"class":2980,"style":2981},[2978,8216,3033],{"class":2998,"style":2999},[2978,8218,3042],{"class":2998,"style":2999},[2915,8220,8221,8222,3012],{},"You can also control streaming per-route using ",[2922,8223,8224],{},"routeRules",[2969,8226,8227],{"language":2971,"meta":2972,"class":2973},[2922,8228,8229,3004,8241,3004,8247,3004,8255,3004,8261,3004,8268,3004,8284,3004,8290],{"class":2976},[2978,8230,8231,2987,8233,2987,8235,8237,8239],{"class":2980,"style":2981},[2978,8232,2986],{"class":2984,"style":2985},[2978,8234,2990],{"class":2984,"style":2985},[2978,8236,2995],{"class":2993,"style":2994},[2978,8238,3000],{"class":2998,"style":2999},[2978,8240,3003],{"class":2998,"style":2999},[2978,8242,3007,8243,2987,8245],{"class":2980,"style":2981},[2978,8244,3012],{"class":3010,"style":3011},[2978,8246,3003],{"class":2998,"style":2999},[2978,8248,8127,8249,2987,8251,8253],{"class":2980,"style":2981},[2978,8250,3012],{"class":3010,"style":3011},[2978,8252,3024],{"class":3022,"style":3023},[2978,8254,3027],{"class":3010,"style":3011},[2978,8256,3030,8257,8259],{"class":2980,"style":2981},[2978,8258,3033],{"class":2998,"style":2999},[2978,8260,3027],{"class":3010,"style":3011},[2978,8262,8263,8264,2987,8266],{"class":2980,"style":2981},"  routeRules",[2978,8265,3012],{"class":3010,"style":3011},[2978,8267,3003],{"class":2998,"style":2999},[2978,8269,8270,8271,2987,8273,8275,8276,2987,8278,2987,8280,8282],{"class":2980,"style":2981},"    '\u002Fno-stream\u002F**'",[2978,8272,3012],{"class":3010,"style":3011},[2978,8274,3003],{"class":2998,"style":2999}," streaming",[2978,8277,3012],{"class":3010,"style":3011},[2978,8279,3080],{"class":3022,"style":3023},[2978,8281,3033],{"class":2998,"style":2999},[2978,8283,3027],{"class":3010,"style":3011},[2978,8285,3030,8286,8288],{"class":2980,"style":2981},[2978,8287,3033],{"class":2998,"style":2999},[2978,8289,3027],{"class":3010,"style":3011},[2978,8291,8292,8294],{"class":2980,"style":2981},[2978,8293,3033],{"class":2998,"style":2999},[2978,8295,3042],{"class":2998,"style":2999},[3264,8297,8298,8304],{},[2915,8299,8300,8303],{},[3525,8301,8302],{},"Automatic fallback to non-streamed rendering."," Streaming commits the response status and headers as soon as the shell is flushed, which is incompatible with features that need to mutate the response after render. Requests matching any of the following are not streamed; they use the buffered renderer, or short-circuit to a redirect or error response:",[3959,8305,8306,8328,8333,8339,8344,8351],{},[3962,8307,8308,8310,8311,3210,8314,3210,8316,3210,8319,3210,8322,3993,8324,8327],{},[2922,8309,8224],{}," setting ",[2922,8312,8313],{},"noScripts",[2922,8315,4177],{},[2922,8317,8318],{},"isr",[2922,8320,8321],{},"swr",[2922,8323,5232],{},[2922,8325,8326],{},"streaming: false"," for the route",[3962,8329,8330,8332],{},[2922,8331,4005],{}," routes (already SPA-rendered)",[3962,8334,8335,8336,3042],{},"Bot\u002Fcrawler user agents (controlled via ",[2922,8337,8338],{},"botRegex",[3962,8340,8341,8342,3042],{},"Prerendered routes (",[2922,8343,897],{},[3962,8345,8346,8347,8350],{},"Server-side ",[2922,8348,8349],{},"navigateTo()"," redirects from plugins, middleware, or page setup",[3962,8352,8353],{},"Fatal errors thrown during initial render (before the shell flushes)",[3264,8355,8356,8362,8365,8402,8405,8424],{},[2915,8357,8358,8361],{},[3525,8359,8360],{},"Response status and headers must be set before the shell is flushed."," Streaming commits the HTTP status and headers with the first byte, so anything that mutates the response after that point cannot reach the client. This is inherent to streaming, not a Nuxt-specific bug.",[2915,8363,8364],{},"The boundary is the shell flush:",[3959,8366,8367,8373],{},[3962,8368,8369,8372],{},[3525,8370,8371],{},"Reaches the client",": mutations from Nuxt and Nitro plugins, which run to completion before rendering begins.",[3962,8374,8375,8378,8379,3210,8382,3210,8385,8388,8389,6300,8392,8395,8396,8398,8399,8401],{},[3525,8376,8377],{},"Dropped",": ",[2922,8380,8381],{},"setResponseStatus()",[2922,8383,8384],{},"useResponseHeader()",[2922,8386,8387],{},"useCookie()"," writes and h3 ",[2922,8390,8391],{},"setHeader()",[2922,8393,8394],{},"appendResponseHeader()"," calls made during component rendering (including after an ",[2922,8397,3369],{}," in route middleware or ",[2922,8400,5942],{},"), since that work happens after the shell is already on the wire.",[2915,8403,8404],{},"To keep a response mutation, move it into a plugin, or opt the route out of streaming:",[3959,8406,8407,8413],{},[3962,8408,8409,8412],{},[2922,8410,8411],{},"routeRules: { '\u002Fpath': { streaming: false } }",": static, per route.",[3962,8414,8415,8416,8419,8420,8423],{},"the ",[2922,8417,8418],{},"render:route"," hook with ",[2922,8421,8422],{},"ctx.prefersStream = false",": runtime, per request (e.g. for routes that conditionally set a 404).",[2915,8425,8426],{},"In development the streaming handler logs a warning naming the dropped mutations and the route, so these never fail silently.",[2937,8428,8429,8430,8433],{},"If an error occurs during streaming after the HTTP status is already committed, ",[2922,8431,8432],{},"payload.error"," is set and the closing tags are still emitted as a well-formed document so the client picks up the error during hydration and renders the error page. Errors thrown before the shell flushes fall through to the buffered error renderer with the correct status code.",[2937,8435,8436,8439,8440,8442,8443,3996,8446,8449],{},[3525,8437,8438],{},"Route styles are streamed, JS hints are entry-only."," The shell is flushed before the route renders, so its ",[2922,8441,7775],{}," carries entry-chunk styles and hints only. Once render registers the page and layout modules, their CSS is streamed straight after the shell (inlined as ",[2922,8444,8445],{},"\u003Cstyle>",[2922,8447,8448],{},"inlineStyles"," is enabled, otherwise as stylesheet links), so page, layout, and top-level async-component styles arrive before the body paints (nested async components are a FOUC caveat, covered below). Route-specific JS chunks are not preloaded from the shell; the browser discovers them after parsing the entry script. Streaming improves TTFB on every route; LCP gains are largest on routes whose JS overlaps the entry chunk.",[2937,8451,8452,8455,8456,8458,8459,8462,8463,8466],{},[3525,8453,8454],{},"Component islands are compatible with streaming."," Island slot content and selective-client (",[2922,8457,4647],{},") components are normally stitched into the HTML in a post-render pass, which is impossible once the body has streamed past the island anchors. Instead, the renderer emits each island teleport as an inert ",[2922,8460,8461],{},"\u003Ctemplate>"," at the end of the document and relocates it into place with an inline script that runs before hydration. This is transparent to app code. The exception is apps built with ",[2922,8464,8465],{},"features.noScripts"," and island components, which fall back to the buffered renderer since the relocation script cannot run.",[6870,8468,2908],{"id":2907},[2915,8470,8471,8472,8475,8476,8479],{},"Modules participate in the streaming response via the existing ",[2922,8473,8474],{},"render:html"," hook (now with a ",[2922,8477,8478],{},"streaming: true"," flag on the second argument) plus a per-request decision hook and two streaming-only hooks:",[3959,8481,8482,8506,8536,8552],{},[3962,8483,8484,8488,8489,8492,8493,8495,8496,8499,8500,8502,8503,8505],{},[3525,8485,8486],{},[2922,8487,8418],{}," fires once per request before rendering begins, for every render (streaming enabled or not). Read ",[2922,8490,8491],{},"ctx.canStream"," to see whether streaming is possible for the route, and set ",[2922,8494,8422],{}," to force buffered rendering for this request, e.g. based on a cookie, auth state, or A\u002FB bucket. The renderer streams only when ",[2922,8497,8498],{},"canStream && prefersStream",". This is the runtime escape hatch for the static ",[2922,8501,8224],{}," \u002F ",[2922,8504,8338],{}," config.",[3962,8507,8508,8512,8513,8515,8516,3210,8519,3210,8522,8525,8526,8529,8530,6300,8532,8535],{},[3525,8509,8510],{},[2922,8511,8474],{}," fires once, before the shell flushes, with ",[2922,8514,8478],{}," on its second argument. Mutations to ",[2922,8517,8518],{},"htmlAttrs",[2922,8520,8521],{},"head",[2922,8523,8524],{},"bodyAttrs",", and ",[2922,8527,8528],{},"bodyPrepend"," reach the wire. Mutations to ",[2922,8531,6457],{},[2922,8533,8534],{},"bodyAppend"," are dropped, since the body is about to stream (a dev-mode warning is emitted). Modules that only mutate head fields (CSP injection, OG tags, analytics meta) work in streaming with no code changes.",[3962,8537,8538,8543,8544,8547,8548,8551],{},[3525,8539,8540],{},[2922,8541,8542],{},"render:html:chunk"," fires for each chunk produced by the renderer before it is enqueued. Mutate ",[2922,8545,8546],{},"ctx.chunk: Uint8Array"," to transform bytes (e.g. nonce injection); read ",[2922,8549,8550],{},"ctx.index"," to identify the first chunk vs. subsequent ones.",[3962,8553,8554,8559,8560,8563],{},[3525,8555,8556],{},[2922,8557,8558],{},"render:html:close"," fires after the body stream completes, before closing tags. Mutate ",[2922,8561,8562],{},"ctx.bodyAppend: string[]"," to inject final markup (end-of-body analytics tags, server-rendered debug widgets, etc.).",[2969,8565,8566],{"language":2971,"class":2973},[2922,8567,8568,3004,8573,3004,8587,3004,8589,3004,8609,3004,8642,3004,8656,3004,8673,3004,8678,3004,8710,3004,8766,3004,8770,3004,8776],{"class":2976},[2978,8569,8570],{"class":2980,"style":2981},[2978,8571,8572],{"class":3333,"style":3334},"\u002F\u002F modules\u002Fstreaming-csp\u002Fsrc\u002Fruntime\u002Fserver-plugin.ts",[2978,8574,8575,2987,8577,8579,8580,2987,8582,2987,8584],{"class":2980,"style":2981},[2978,8576,3473],{"class":2984,"style":2985},[2978,8578,3003],{"class":2998,"style":2999}," defineNitroPlugin ",[2978,8581,3033],{"class":2998,"style":2999},[2978,8583,5196],{"class":2984,"style":2985},[2978,8585,8586],{"class":3376,"style":3377},"'#imports'",[2978,8588],{"class":2980,"style":2981},[2978,8590,8591,2987,8593,2987,8595,8598,8600,8602,8603,2987,8605,2987,8607],{"class":2980,"style":2981},[2978,8592,2986],{"class":2984,"style":2985},[2978,8594,2990],{"class":2984,"style":2985},[2978,8596,8597],{"class":2993,"style":2994},"defineNitroPlugin",[2978,8599,3000],{"class":2998,"style":2999},[2978,8601,3000],{"class":2998,"style":2999},"nitro",[2978,8604,3042],{"class":2998,"style":2999},[2978,8606,3390],{"class":2984,"style":2985},[2978,8608,3003],{"class":2998,"style":2999},[2978,8610,8611,8612,8614,8615,8617,8620,8622,8625,2987,8627,5673,8629,2987,8631,8633,8634,8636,2987,8638,2987,8640],{"class":2980,"style":2981},"  nitro",[2978,8613,3483],{"class":3010,"style":3011},"hooks",[2978,8616,3483],{"class":3010,"style":3011},[2978,8618,8619],{"class":2993,"style":2994},"hook",[2978,8621,3000],{"class":2998,"style":2999},[2978,8623,8624],{"class":3376,"style":3377},"'render:html'",[2978,8626,3027],{"class":3010,"style":3011},[2978,8628,3000],{"class":2998,"style":2999},[2978,8630,3027],{"class":3010,"style":3011},[2978,8632,3003],{"class":2998,"style":2999}," event ",[2978,8635,3033],{"class":2998,"style":2999},[2978,8637,3042],{"class":2998,"style":2999},[2978,8639,3390],{"class":2984,"style":2985},[2978,8641,3003],{"class":2998,"style":2999},[2978,8643,4499,8644,8646,8647,8649,8650,8652,8653,8655],{"class":2980,"style":2981},[2978,8645,3358],{"class":2984,"style":2985}," nonce ",[2978,8648,3366],{"class":3010,"style":3011}," event",[2978,8651,3483],{"class":3010,"style":3011},"context",[2978,8654,3483],{"class":3010,"style":3011},"cspNonce",[2978,8657,4499,8658,2987,8660,8662,8664,8665,2987,8667,2987,8669,2987,8671],{"class":2980,"style":2981},[2978,8659,6054],{"class":2984,"style":2985},[2978,8661,3000],{"class":2998,"style":2999},[2978,8663,6059],{"class":3010,"style":3011},"nonce",[2978,8666,3042],{"class":2998,"style":2999},[2978,8668,3003],{"class":2998,"style":2999},[2978,8670,3397],{"class":2984,"style":2985},[2978,8672,3033],{"class":2998,"style":2999},[2978,8674,4499,8675],{"class":2980,"style":2981},[2978,8676,8677],{"class":3333,"style":3334},"\u002F\u002F Works for both streaming (pre-shell) and buffered (post-render) paths.",[2978,8679,4499,8680,2987,8683,8685,8688,8689,2987,8691,8694,8695,8697,8698,8521,8700,8702,8703,8706,2987,8708],{"class":2980,"style":2981},[2978,8681,8682],{"class":2984,"style":2985},"for",[2978,8684,3000],{"class":2998,"style":2999},[2978,8686,8687],{"class":2984,"style":2985},"let"," i ",[2978,8690,3366],{"class":3010,"style":3011},[2978,8692,8693],{"class":5529,"style":5530},"0","; i ",[2978,8696,3340],{"class":3010,"style":3011}," ctx",[2978,8699,3483],{"class":3010,"style":3011},[2978,8701,3483],{"class":3010,"style":3011},"length; i",[2978,8704,8705],{"class":3010,"style":3011},"++",[2978,8707,3042],{"class":2998,"style":2999},[2978,8709,3003],{"class":2998,"style":2999},[2978,8711,8712,8713,8521,8715,8198,8717,2987,8719,8697,8721,8521,8723,8198,8725,8727,8729,8732,8734,8737,8740,8743,8746,8749,8752,2987,8754,8757,8664,8759,8761,8764],{"class":2980,"style":2981},"      ctx",[2978,8714,3483],{"class":3010,"style":3011},[2978,8716,4488],{"class":2998,"style":2999},[2978,8718,4494],{"class":2998,"style":2999},[2978,8720,3366],{"class":3010,"style":3011},[2978,8722,3483],{"class":3010,"style":3011},[2978,8724,4488],{"class":2998,"style":2999},[2978,8726,4494],{"class":2998,"style":2999},[2978,8728,3483],{"class":3010,"style":3011},[2978,8730,8731],{"class":2993,"style":2994},"replace",[2978,8733,3000],{"class":2998,"style":2999},[2978,8735,8736],{"class":3010,"style":3011},"\u002F\u003Cscript(?!",[2978,8738,8739],{"class":5529,"style":5530},"[^>]",[2978,8741,8742],{"class":3343,"style":3344},"*",[2978,8744,8745],{"class":2984,"style":2985},"\\s",[2978,8747,8748],{"class":3010,"style":3011},"nonce=)\u002F",[2978,8750,8751],{"class":2984,"style":2985},"g",[2978,8753,3027],{"class":3010,"style":3011},[2978,8755,8756],{"class":3376,"style":3377},"`\u003Cscript nonce=\"",[2978,8758,5054],{"class":2984,"style":2985},[2978,8760,3033],{"class":2984,"style":2985},[2978,8762,8763],{"class":3376,"style":3377},"\"`",[2978,8765,3042],{"class":2998,"style":2999},[2978,8767,4499,8768],{"class":2980,"style":2981},[2978,8769,3033],{"class":2998,"style":2999},[2978,8771,3030,8772,8774],{"class":2980,"style":2981},[2978,8773,3033],{"class":2998,"style":2999},[2978,8775,3042],{"class":2998,"style":2999},[2978,8777,8778,8780],{"class":2980,"style":2981},[2978,8779,3033],{"class":2998,"style":2999},[2978,8781,3042],{"class":2998,"style":2999},[2937,8783,8784,8787,8788,8790,8791,8793,8794,6300,8797,8800,8801,8803],{},[3525,8785,8786],{},"CSP nonce."," The streaming renderer emits several inline scripts and styles that bypass unhead: the bootstrap queue, the IIFE, suspense head pushes, island-teleport relocation, and route ",[2922,8789,8445],{}," blocks. If a ",[2922,8792,8664],{}," is present on the rendered head scripts, the renderer reuses it on all of them automatically, so a strict ",[2922,8795,8796],{},"script-src",[2922,8798,8799],{},"style-src 'nonce-…'"," policy does not block streaming. A module only needs to put the nonce on the head scripts (as above); the ",[2922,8802,8542],{}," hook remains available for stamping scripts that components render into the body.",[3264,8805,8806,8819,8836],{},[2915,8807,8808,8811,8812,8814,8815,8818],{},[3525,8809,8810],{},"Dev-mode FOUC for SFC styles:"," in development, Vite serves SFC ",[2922,8813,8445],{}," blocks as JavaScript modules that inject styles client-side after the module evaluates, with no corresponding ",[2922,8816,8817],{},"\u003Clink>"," in the shell. With streaming, the browser starts painting the streamed DOM before those style-injection modules run, so SFC-defined styles flash unstyled briefly.",[2915,8820,8821,8822,8825,8826,8829,8830,8832,8833,8835],{},"Workaround: put paint-critical styles in a global CSS file registered via ",[2922,8823,8824],{},"css: ['~\u002Fassets\u002Fmain.css']",". Global CSS files are emitted as ",[2922,8827,8828],{},"\u003Clink rel=\"stylesheet\">"," in the shell ",[2922,8831,7775],{}," and apply before body content streams. SFC ",[2922,8834,8445],{}," blocks remain fine for component-scoped styling that doesn't gate the initial paint.",[2915,8837,8838,8839,8842,8843,8845,8846,3483],{},"Production builds extract all styles to real CSS files (or inline via ",[2922,8840,8841],{},"features.inlineStyles","), so this only affects ",[2922,8844,887],{},". Validate streaming visuals against ",[2922,8847,8848],{},"nuxt build && nuxt preview",[3264,8850,8851,8861,8871,8874,8904],{},[2915,8852,8853,8856,8857,8860],{},[3525,8854,8855],{},"Production FOUC for nested async components:"," the renderer inlines route CSS in a chunk sent straight after the shell. It can only inline the styles for components whose modules are already registered at that point: the page, the layout, and any async component placed directly inside a ",[2922,8858,8859],{},"\u003CSuspense>"," boundary (Vue instantiates those eagerly when render begins).",[2915,8862,8863,8864,8867,8868,8870],{},"An async component that is rendered ",[4909,8865,8866],{},"inside another async component"," is instantiated only once its parent resolves, after the first chunk has streamed. Its SFC ",[2922,8869,8445],{}," misses the post-shell styles chunk and is emitted in the closing HTML instead, behind the component's own DOM. The browser paints that component unstyled until the final chunk arrives.",[2915,8872,8873],{},"Avoid it by keeping paint-critical styling out of deeply nested async components:",[3959,8875,8876,8884,8890,8899],{},[3962,8877,8878,8879,8881,8882,3483],{},"Put styles that gate the initial paint in a global CSS file (",[2922,8880,8824],{},"); these reach the shell ",[2922,8883,7775],{},[3962,8885,8886,8887,8889],{},"Style with utility classes (Tailwind, UnoCSS): utility CSS lives in the entry stylesheet, not per-component ",[2922,8888,8445],{}," blocks.",[3962,8891,8892,8893,8895,8896,8898],{},"Keep async components that own paint-critical ",[2922,8894,8445],{}," directly under a ",[2922,8897,8859],{}," boundary rather than nested behind another async parent.",[3962,8900,8901,8902,3483],{},"Or opt the route out of streaming with ",[2922,8903,8411],{},[2915,8905,8906],{},"Non-paint-critical scoped styles on nested async components are fine: the brief flash only matters for above-the-fold content.",{"v5":8908,"v4":8909,"v3":8910,"v2":8911},"5 (nightly)","4.5.2","3.21.11","2.18.1"]