[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f30r277ag21rfj":3,"-docs-4-x-getting-started-data-fetching":2735,"versions":8752},[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":1323,"data":2736,"meta":2738,"nodes":2848},{"title":62,"description":63,"navigation.icon":2737},"i-lucide-cable",{"toc":2739,"key":2844,"source":2310,"stem":65,"extension":2845,"kind":2846,"type":2847,"partial":106},{"title":2740,"searchDepth":2741,"depth":2742,"links":2743},"",2,3,[2744,2754,2760,2762,2764,2767,2809,2816,2819,2822,2835],{"id":2745,"depth":2741,"text":2746,"children":2747},"the-need-for-usefetch-and-useasyncdata","The Need for useFetch and useAsyncData",[2748,2751],{"id":2749,"depth":2742,"text":2750},"the-need-for-usefetch-and-useasyncdata-suspense","Suspense",{"id":2752,"depth":2742,"text":2753},"the-need-for-usefetch-and-useasyncdata-a-note-on-await","A note on await",{"id":2755,"depth":2741,"text":702,"children":2756},"fetch",[2757],{"id":2758,"depth":2742,"text":2759},"fetch-pass-client-headers-to-the-api","Pass Client Headers to the API",{"id":2761,"depth":2741,"text":576},"usefetch",{"id":2763,"depth":2741,"text":561},"useasyncdata",{"id":2765,"depth":2741,"text":2766},"return-values","Return Values",{"id":2768,"depth":2741,"text":2769,"children":2770},"options","Options",[2771,2774,2777,2780,2806],{"id":2772,"depth":2742,"text":2773},"options-lazy","Lazy",{"id":2775,"depth":2742,"text":2776},"options-client-only-fetching","Client-only fetching",{"id":2778,"depth":2742,"text":2779},"options-minimize-payload-size","Minimize payload size",{"id":2781,"depth":2742,"text":2782,"children":2783},"options-caching-and-refetching","Caching and refetching",[2784,2788,2791,2794,2797,2800,2803],{"id":2785,"depth":2786,"text":2787},"options-caching-and-refetching-keys",4,"Keys",{"id":2789,"depth":2786,"text":2790},"options-caching-and-refetching-shared-state-and-option-consistency","Shared State and Option Consistency",{"id":2792,"depth":2786,"text":2793},"options-caching-and-refetching-reactive-keys","Reactive Keys",{"id":2795,"depth":2786,"text":2796},"options-caching-and-refetching-refresh-and-execute","Refresh and execute",{"id":2798,"depth":2786,"text":2799},"options-caching-and-refetching-clear","Clear",{"id":2801,"depth":2786,"text":2802},"options-caching-and-refetching-watch","Watch",{"id":2804,"depth":2786,"text":2805},"options-caching-and-refetching-computed-url","Computed URL",{"id":2807,"depth":2742,"text":2808},"options-not-immediate","Not immediate",{"id":2810,"depth":2741,"text":2811,"children":2812},"passing-headers-and-cookies","Passing Headers and Cookies",[2813],{"id":2814,"depth":2742,"text":2815},"passing-headers-and-cookies-pass-cookies-from-server-side-api-calls-on-ssr-response","Pass Cookies From Server-side API Calls on SSR Response",{"id":2817,"depth":2741,"text":2818},"options-api-support","Options API Support",{"id":2820,"depth":2741,"text":2821},"serializing-data-from-server-to-client","Serializing Data From Server to Client",{"id":2823,"depth":2741,"text":2824,"children":2825},"serializing-data-from-api-routes","Serializing Data From API Routes",[2826,2829,2832],{"id":2827,"depth":2742,"text":2828},"serializing-data-from-api-routes-example","Example",{"id":2830,"depth":2742,"text":2831},"serializing-data-from-api-routes-custom-serializer-function","Custom serializer function",{"id":2833,"depth":2742,"text":2834},"serializing-data-from-api-routes-using-an-alternative-serializer","Using an alternative serializer",{"id":2836,"depth":2741,"text":378,"children":2837},"recipes",[2838,2841],{"id":2839,"depth":2742,"text":2840},"recipes-consuming-sse-server-sent-events-via-post-request","Consuming SSE (Server-Sent Events) via POST request",{"id":2842,"depth":2742,"text":2843},"recipes-making-parallel-requests","Making parallel requests","docs\u002F1.getting-started\u002F10.data-fetching.md",".md","document","text\u002Fmarkdown",[2849,2866,2869,2904,2912,2920,2929,2941,2954,2967,3235,3244,3247,3257,3266,3271,3282,3298,3312,3349,3352,3378,3424,3428,3439,3538,3562,3568,3570,3585,3634,3673,3690,3783,3791,3836,3840,3850,3943,3954,3959,3961,3965,3969,3974,3995,3999,4012,4123,4156,4271,4279,4454,4547,4551,4553,4560,4631,4646,4652,4671,4673,4684,4686,4695,4864,4874,4925,4929,4933,4938,4940,4950,4956,5039,5050,5052,5058,5204,5211,5305,5312,5316,5318,5321,5332,5365,5372,5376,5378,5393,5400,5431,5560,5566,5591,5717,5720,5827,5829,5832,5950,5952,5960,6097,6109,6120,6122,6130,6258,6260,6270,6365,6372,6467,6475,6481,6578,6580,6583,6677,6685,6692,6948,6955,6957,6966,6975,7164,7170,7194,7196,7205,7211,7224,7226,7229,7408,7525,7527,7537,7636,7645,7647,7649,7683,7691,7703,7705,7722,7731,7733,7776,7830,7832,7842,8006,8095,8097,8106,8114,8240,8348,8350,8352,8368,8371,8580,8582,8589,8748],[2850,2851,2852,2853,2856,2857,2862,2863,2865],"p",{},"Nuxt comes with two composables and a built-in library to perform data-fetching in browser or server environments: ",[2854,2855,576],"code",{},", ",[2858,2859,2860],"a",{"href":1596},[2854,2861,561],{}," and ",[2854,2864,702],{},".",[2850,2867,2868],{},"In a nutshell:",[2870,2871,2872,2880,2894],"ul",{},[2873,2874,2875,2879],"li",{},[2858,2876,2877],{"href":1658},[2854,2878,702],{}," is the simplest way to make a network request.",[2873,2881,2882,2886,2887,2889,2890,2865],{},[2858,2883,2884],{"href":1602},[2854,2885,576],{}," is a wrapper around ",[2854,2888,702],{}," that fetches data only once in ",[2858,2891,2893],{"href":2892},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Frendering#universal-rendering","universal rendering",[2873,2895,2896,2900,2901,2903],{},[2858,2897,2898],{"href":1596},[2854,2899,561],{}," is similar to ",[2854,2902,576],{}," but offers more fine-grained control.",[2850,2905,2906,2907,2862,2909,2911],{},"Both ",[2854,2908,576],{},[2854,2910,561],{}," share a common set of options and patterns that we will detail in the last sections.",[2913,2914,2915,2916,2862,2918],"h2",{"id":2745},"The Need for ",[2854,2917,576],{},[2854,2919,561],{},[2850,2921,2922,2923,2928],{},"Nuxt is a framework which can run isomorphic (or universal) code in both server and client environments. If the ",[2858,2924,2925,2927],{"href":1658},[2854,2926,702],{}," function"," is used to perform data fetching in the setup function of a Vue component, this may cause data to be fetched twice, once on the server (to render the HTML) and once again on the client (when the HTML is hydrated). This can cause hydration issues, increase the time to interactivity and cause unpredictable behavior.",[2850,2930,2931,2932,2862,2936,2940],{},"The ",[2858,2933,2934],{"href":1602},[2854,2935,576],{},[2858,2937,2938],{"href":1596},[2854,2939,561],{}," composables solve this problem by ensuring that if an API call is made on the server, the data is forwarded to the client in the payload.",[2850,2942,2943,2944,2950,2951,2865],{},"The payload is a JavaScript object accessible through ",[2858,2945,2947],{"href":2946},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app#payload",[2854,2948,2949],{},"useNuxtApp().payload",". It is used on the client to avoid refetching the same data when the code is executed in the browser ",[2858,2952,2953],{"href":2892},"during hydration",[2955,2956,2957,2958,2962,2963,2865],"tip",{},"Use the ",[2858,2959,2961],{"href":2960},"https:\u002F\u002Fdevtools.nuxt.com","Nuxt DevTools"," to inspect this data in the ",[2964,2965,2966],"strong",{},"Payload tab",[2968,2969,2973],"pre",{"language":2970,"filename":2971,"class":2972},"vue","app\u002Fapp.vue","shj shiki shj-lang-vue",[2854,2974,2976,3011,3012,3011,3046,3011,3048,3011,3065,3011,3087,3011,3098,3011,3105,3011,3113,3011,3120,3011,3126,3011,3130,3011,3139,3011,3141,3011,3150,3011,3167,3011,3170,3011,3178,3011,3189,3011,3206,3011,3211,3011,3219,3011,3227],{"class":2975},"language-vue",[2977,2978,2981,2986,2991,2992,2991,2997,3000,3003,3008],"span",{"class":2979,"style":2980},"line","display: inline",[2977,2982,2985],{"class":2983,"style":2984},"shj-syn-oper shj-oper","color:#39ADB5;--shiki-dark:#89DDFF","\u003C",[2977,2987,2990],{"class":2988,"style":2989},"shj-syn-var shj-var","color:#E53935;--shiki-dark:#f07178","script"," ",[2977,2993,2996],{"class":2994,"style":2995},"shj-syn-class shj-class","color:#E2931D;--shiki-dark:#FFCB6B","setup",[2977,2998,2999],{"class":2994,"style":2995},"lang",[2977,3001,3002],{"class":2983,"style":2984},"=",[2977,3004,3007],{"class":3005,"style":3006},"shj-syn-str shj-str","color:#91B859;--shiki-dark:#C3E88D","\"ts\"",[2977,3009,3010],{"class":2983,"style":2984},">","\n",[2977,3013,3014,2991,3019,3024,3025,2991,3028,2991,3030,2991,3033,3037,3040,3043],{"class":2979,"style":2980},[2977,3015,3018],{"class":3016,"style":3017},"shj-syn-kwd shj-kwd","color:#9C3EDA;--shiki-dark:#C792EA","const",[2977,3020,3023],{"class":3021,"style":3022},"shj-syn-bracket shj-bracket","color:#90A4AE;--shiki-dark:#babed8","{"," data ",[2977,3026,3027],{"class":3021,"style":3022},"}",[2977,3029,3002],{"class":2983,"style":2984},[2977,3031,3032],{"class":3016,"style":3017},"await",[2977,3034,576],{"class":3035,"style":3036},"shj-syn-func shj-func","color:#6182B8;--shiki-dark:#82AAFF",[2977,3038,3039],{"class":3021,"style":3022},"(",[2977,3041,3042],{"class":3005,"style":3006},"'\u002Fapi\u002Fdata'",[2977,3044,3045],{"class":3021,"style":3022},")",[2977,3047],{"class":2979,"style":2980},[2977,3049,3050,2991,3053,2991,3056,2991,3059,3061,2991,3063],{"class":2979,"style":2980},[2977,3051,3052],{"class":3016,"style":3017},"async",[2977,3054,3055],{"class":3016,"style":3017},"function",[2977,3057,3058],{"class":3035,"style":3036},"handleFormSubmit",[2977,3060,3039],{"class":3021,"style":3022},[2977,3062,3045],{"class":3021,"style":3022},[2977,3064,3023],{"class":3021,"style":3022},[2977,3066,3067,3068,3070,3071,2991,3073,2991,3075,3077,3079,3082,2991,3085],{"class":2979,"style":2980},"  ",[2977,3069,3018],{"class":3016,"style":3017}," res ",[2977,3072,3002],{"class":2983,"style":2984},[2977,3074,3032],{"class":3016,"style":3017},[2977,3076,702],{"class":3035,"style":3036},[2977,3078,3039],{"class":3021,"style":3022},[2977,3080,3081],{"class":3005,"style":3006},"'\u002Fapi\u002Fsubmit'",[2977,3083,3084],{"class":2983,"style":2984},",",[2977,3086,3023],{"class":3021,"style":3022},[2977,3088,3089,3090,2991,3093,3096],{"class":2979,"style":2980},"    method",[2977,3091,3092],{"class":2983,"style":2984},":",[2977,3094,3095],{"class":3005,"style":3006},"'POST'",[2977,3097,3084],{"class":2983,"style":2984},[2977,3099,3100,3101,2991,3103],{"class":2979,"style":2980},"    body",[2977,3102,3092],{"class":2983,"style":2984},[2977,3104,3023],{"class":3021,"style":3022},[2977,3106,3107,3108],{"class":2979,"style":2980},"      ",[2977,3109,3112],{"class":3110,"style":3111},"shj-syn-cmnt shj-cmnt","color:#90A4AE;--shiki-dark:#676E95","\u002F\u002F My form data",[2977,3114,3115,3116,3118],{"class":2979,"style":2980},"    ",[2977,3117,3027],{"class":3021,"style":3022},[2977,3119,3084],{"class":2983,"style":2984},[2977,3121,3067,3122,3124],{"class":2979,"style":2980},[2977,3123,3027],{"class":3021,"style":3022},[2977,3125,3045],{"class":3021,"style":3022},[2977,3127,3128],{"class":2979,"style":2980},[2977,3129,3027],{"class":3021,"style":3022},[2977,3131,3132,3135,3137],{"class":2979,"style":2980},[2977,3133,3134],{"class":2983,"style":2984},"\u003C\u002F",[2977,3136,2990],{"class":2988,"style":2989},[2977,3138,3010],{"class":2983,"style":2984},[2977,3140],{"class":2979,"style":2980},[2977,3142,3143,3145,3148],{"class":2979,"style":2980},[2977,3144,2985],{"class":2983,"style":2984},[2977,3146,3147],{"class":2988,"style":2989},"template",[2977,3149,3010],{"class":2983,"style":2984},[2977,3151,3067,3152,3154,2991,3157,3160,3162,3165],{"class":2979,"style":2980},[2977,3153,2985],{"class":2983,"style":2984},[2977,3155,3156],{"class":2988,"style":2989},"div",[2977,3158,3159],{"class":3016,"style":3017},"v-if",[2977,3161,3002],{"class":2983,"style":2984},[2977,3163,3164],{"class":3005,"style":3006},"\"data == undefined\"",[2977,3166,3010],{"class":2983,"style":2984},[2977,3168,3169],{"class":2979,"style":2980},"    No data",[2977,3171,3067,3172,3174,3176],{"class":2979,"style":2980},[2977,3173,3134],{"class":2983,"style":2984},[2977,3175,3156],{"class":2988,"style":2989},[2977,3177,3010],{"class":2983,"style":2984},[2977,3179,3067,3180,3182,2991,3184,3187],{"class":2979,"style":2980},[2977,3181,2985],{"class":2983,"style":2984},[2977,3183,3156],{"class":2988,"style":2989},[2977,3185,3186],{"class":3016,"style":3017},"v-else",[2977,3188,3010],{"class":2983,"style":2984},[2977,3190,3115,3191,3193,2991,3196,3199,3201,3204],{"class":2979,"style":2980},[2977,3192,2985],{"class":2983,"style":2984},[2977,3194,3195],{"class":2988,"style":2989},"form",[2977,3197,3198],{"class":3016,"style":3017},"@submit",[2977,3200,3002],{"class":2983,"style":2984},[2977,3202,3203],{"class":3005,"style":3006},"\"handleFormSubmit\"",[2977,3205,3010],{"class":2983,"style":2984},[2977,3207,3107,3208],{"class":2979,"style":2980},[2977,3209,3210],{"class":3110,"style":3111},"\u003C!-- form input tags -->",[2977,3212,3115,3213,3215,3217],{"class":2979,"style":2980},[2977,3214,3134],{"class":2983,"style":2984},[2977,3216,3195],{"class":2988,"style":2989},[2977,3218,3010],{"class":2983,"style":2984},[2977,3220,3067,3221,3223,3225],{"class":2979,"style":2980},[2977,3222,3134],{"class":2983,"style":2984},[2977,3224,3156],{"class":2988,"style":2989},[2977,3226,3010],{"class":2983,"style":2984},[2977,3228,3229,3231,3233],{"class":2979,"style":2980},[2977,3230,3134],{"class":2983,"style":2984},[2977,3232,3147],{"class":2988,"style":2989},[2977,3234,3010],{"class":2983,"style":2984},[2850,3236,3237,3238,3240,3241,3243],{},"In the example above, ",[2854,3239,576],{}," would make sure that the request would occur on the server and is properly forwarded to the browser. ",[2854,3242,702],{}," has no such mechanism and is a better option to use when the request is solely made from the browser.",[3245,3246,2750],"h3",{"id":2749},[2850,3248,3249,3250,3256],{},"Nuxt uses Vue's ",[2858,3251,3253],{"href":3252},"https:\u002F\u002Fvuejs.org\u002Fguide\u002Fbuilt-ins\u002Fsuspense",[2854,3254,3255],{},"\u003CSuspense>"," component under the hood to prevent navigation before every async data is available to the view. The data fetching composables can help you leverage this feature and use what suits best on a per-call basis.",[3258,3259,3260,3261,3265],"note",{},"You can add the ",[2858,3262,3263],{"href":1551},[2854,3264,500],{}," to add a progress bar between page navigations.",[3245,3267,3268,3269],{"id":2752},"A note on ",[2854,3270,3032],{},[2850,3272,3273,3274,3276,3277,2862,3279,3281],{},"Examples in this documentation usually ",[2854,3275,3032],{}," calls to ",[2854,3278,576],{},[2854,3280,561],{},", but this is not always required.",[2850,3283,2931,3284,3286,3287,3290,3291,3293,3294,3297],{},[2854,3285,3032],{}," does ",[2964,3288,3289],{},"not"," change the server-rendered HTML. During server rendering, Nuxt waits for the request to resolve before serializing the page either way (",[2854,3292,3255],{},", and ",[2854,3295,3296],{},"onServerPrefetch"," under the hood), so the fully populated result is always sent to the browser.",[2850,3299,3300,3301,2991,3303,3307,3308,3311],{},"What the ",[2854,3302,3032],{},[3304,3305,3306],"em",{},"does"," change is what happens next in your own ",[2854,3309,3310],{},"\u003Cscript setup>",", and how client-side navigation behaves:",[2870,3313,3314,3331],{},[2873,3315,3316,3321,3322,3325,3326,3330],{},[2964,3317,3318,3319],{},"With ",[2854,3320,3032],{},", execution pauses until the data is ready, so any code after the call can rely on ",[2854,3323,3324],{},"data"," already being populated. On client-side navigation, this blocks navigation until the data resolves: the user stays on the current page (optionally with a ",[2858,3327,3328],{"href":1551},[2854,3329,500],{},") and then lands on a fully populated page. This is the default behaviour.",[2873,3332,3333,3338,3339,3341,3342,2862,3345,3348],{},[2964,3334,3335,3336],{},"Without ",[2854,3337,3032],{},", execution continues immediately while the request runs in the background, so ",[2854,3340,3324],{}," starts as its default value and fills in once the request resolves. On client-side navigation, this means navigation happens immediately and you are responsible for handling the loading and error states, typically via the returned ",[2854,3343,3344],{},"status",[2854,3346,3347],{},"error"," refs.",[2850,3350,3351],{},"Neither approach is universally better; the right choice depends on the experience you want for that route.",[2850,3353,3354,3355,3361,3362,3364,3365,3367,3368,3372,3373,3377],{},"Not awaiting has a similar user-visible effect to the ",[2858,3356,3358],{"href":3357},"#lazy",[2854,3359,3360],{},"lazy"," option (navigation is not blocked and you handle loading state yourself), but the two are not identical: ",[2854,3363,3360],{}," is an explicit flag that defers the request until the component mounts, whereas simply not awaiting starts the request during setup. Prefer ",[2854,3366,3360],{}," (or ",[2858,3369,3370],{"href":1617},[2854,3371,601],{}," \u002F ",[2858,3374,3375],{"href":1615},[2854,3376,596],{},") when you want non-blocking behaviour, since it makes the intent explicit.",[3379,3380,2931,3381,2862,3383,3385,3386,3388,3389,3391,3392,3394,3395,3398,3399,3402,3403,3406,3407,3409,3410,3412,3413,3415,3416,3418,3419,3421,3422,2865],"warning",{},[2854,3382,3032],{},[2854,3384,3360],{}," are independent, and on the client awaiting a ",[2854,3387,3360],{}," function won't have the effect you expect. If you ",[2854,3390,3032],{}," a ",[2854,3393,3360],{}," call (for example ",[2854,3396,3397],{},"await useLazyFetch(...)"," or ",[2854,3400,3401],{},"await useFetch(..., { lazy: true })","), it still blocks server rendering as usual, but on ",[2964,3404,3405],{},"client-side navigation"," the ",[2854,3408,3032],{}," resolves immediately without waiting for the request. ",[2854,3411,3324],{}," will still be at its default value right after the ",[2854,3414,3032],{},", and you must handle the loading state via ",[2854,3417,3344],{},". If you actually want the navigation to wait for the data, drop the ",[2854,3420,3360],{}," option rather than relying on ",[2854,3423,3032],{},[2913,3425,3426],{"id":2755},[2854,3427,702],{},[2850,3429,3430,3431,3435,3436,3438],{},"Nuxt includes the ",[2858,3432,3434],{"href":3433},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fofetch","ofetch"," library, and is auto-imported as the ",[2854,3437,702],{}," alias globally across your application.",[2968,3440,3442],{"language":2970,"meta":3441,"class":2972},"twoslash [pages\u002Ftodos.vue]",[2854,3443,3444,3011,3460,3011,3475,3011,3495,3011,3503,3011,3509,3011,3514,3011,3520,3011,3526,3011,3530],{"class":2975},[2977,3445,3446,3448,2991,3450,2991,3452,3454,3456,3458],{"class":2979,"style":2980},[2977,3447,2985],{"class":2983,"style":2984},[2977,3449,2990],{"class":2988,"style":2989},[2977,3451,2996],{"class":2994,"style":2995},[2977,3453,2999],{"class":2994,"style":2995},[2977,3455,3002],{"class":2983,"style":2984},[2977,3457,3007],{"class":3005,"style":3006},[2977,3459,3010],{"class":2983,"style":2984},[2977,3461,3462,2991,3464,2991,3466,2991,3469,3471,2991,3473],{"class":2979,"style":2980},[2977,3463,3052],{"class":3016,"style":3017},[2977,3465,3055],{"class":3016,"style":3017},[2977,3467,3468],{"class":3035,"style":3036},"addTodo",[2977,3470,3039],{"class":3021,"style":3022},[2977,3472,3045],{"class":3021,"style":3022},[2977,3474,3023],{"class":3021,"style":3022},[2977,3476,3067,3477,3479,3480,2991,3482,2991,3484,3486,3488,3491,2991,3493],{"class":2979,"style":2980},[2977,3478,3018],{"class":3016,"style":3017}," todo ",[2977,3481,3002],{"class":2983,"style":2984},[2977,3483,3032],{"class":3016,"style":3017},[2977,3485,702],{"class":3035,"style":3036},[2977,3487,3039],{"class":3021,"style":3022},[2977,3489,3490],{"class":3005,"style":3006},"'\u002Fapi\u002Ftodos'",[2977,3492,3084],{"class":2983,"style":2984},[2977,3494,3023],{"class":3021,"style":3022},[2977,3496,3089,3497,2991,3499,3501],{"class":2979,"style":2980},[2977,3498,3092],{"class":2983,"style":2984},[2977,3500,3095],{"class":3005,"style":3006},[2977,3502,3084],{"class":2983,"style":2984},[2977,3504,3100,3505,2991,3507],{"class":2979,"style":2980},[2977,3506,3092],{"class":2983,"style":2984},[2977,3508,3023],{"class":3021,"style":3022},[2977,3510,3107,3511],{"class":2979,"style":2980},[2977,3512,3513],{"class":3110,"style":3111},"\u002F\u002F My todo data",[2977,3515,3115,3516,3518],{"class":2979,"style":2980},[2977,3517,3027],{"class":3021,"style":3022},[2977,3519,3084],{"class":2983,"style":2984},[2977,3521,3067,3522,3524],{"class":2979,"style":2980},[2977,3523,3027],{"class":3021,"style":3022},[2977,3525,3045],{"class":3021,"style":3022},[2977,3527,3528],{"class":2979,"style":2980},[2977,3529,3027],{"class":3021,"style":3022},[2977,3531,3532,3534,3536],{"class":2979,"style":2980},[2977,3533,3134],{"class":2983,"style":2984},[2977,3535,2990],{"class":2988,"style":2989},[2977,3537,3010],{"class":2983,"style":2984},[3379,3539,3540,3541,3543,3544,3548,3549,3552,3553,3555,3556,3561],{},"Beware that using only ",[2854,3542,702],{}," will not provide ",[2858,3545,3547],{"href":3546},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fdata-fetching#the-need-for-usefetch-and-useasyncdata","network calls de-duplication and navigation prevention",". ",[3550,3551],"br",{},"\nIt is recommended to use ",[2854,3554,702],{}," for client-side interactions (event-based) or combined with ",[2858,3557,3559],{"href":3558},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fdata-fetching#useasyncdata",[2854,3560,561],{}," when fetching the initial component data.",[3563,3564,3565,3566,2865],"read-more",{"to":1658},"Read more about ",[2854,3567,702],{},[3245,3569,2759],{"id":2758},[2850,3571,3572,3573,3575,3576,3580,3581,3584],{},"When calling ",[2854,3574,576],{}," on the server, Nuxt will use ",[2858,3577,3578],{"href":1629},[2854,3579,631],{}," to proxy client headers and cookies (with the exception of headers not meant to be forwarded, like ",[2854,3582,3583],{},"host",").",[2968,3586,3587],{"language":2970,"class":2972},[2854,3588,3589,3011,3605,3011,3626],{"class":2975},[2977,3590,3591,3593,2991,3595,2991,3597,3599,3601,3603],{"class":2979,"style":2980},[2977,3592,2985],{"class":2983,"style":2984},[2977,3594,2990],{"class":2988,"style":2989},[2977,3596,2996],{"class":2994,"style":2995},[2977,3598,2999],{"class":2994,"style":2995},[2977,3600,3002],{"class":2983,"style":2984},[2977,3602,3007],{"class":3005,"style":3006},[2977,3604,3010],{"class":2983,"style":2984},[2977,3606,3607,2991,3609,3024,3611,2991,3613,2991,3615,2991,3617,3619,3621,3624],{"class":2979,"style":2980},[2977,3608,3018],{"class":3016,"style":3017},[2977,3610,3023],{"class":3021,"style":3022},[2977,3612,3027],{"class":3021,"style":3022},[2977,3614,3002],{"class":2983,"style":2984},[2977,3616,3032],{"class":3016,"style":3017},[2977,3618,576],{"class":3035,"style":3036},[2977,3620,3039],{"class":3021,"style":3022},[2977,3622,3623],{"class":3005,"style":3006},"'\u002Fapi\u002Fecho'",[2977,3625,3045],{"class":3021,"style":3022},[2977,3627,3628,3630,3632],{"class":2979,"style":2980},[2977,3629,3134],{"class":2983,"style":2984},[2977,3631,2990],{"class":2988,"style":2989},[2977,3633,3010],{"class":2983,"style":2984},[2968,3635,3638],{"language":3636,"class":3637},"ts","shj shiki shj-lang-ts",[2854,3639,3641,3011,3646],{"class":3640},"language-ts",[2977,3642,3643],{"class":2979,"style":2980},[2977,3644,3645],{"class":3110,"style":3111},"\u002F\u002F \u002Fapi\u002Fecho.ts",[2977,3647,3648,2991,3651,2991,3654,3657,3659,3660,2991,3663,3666,3668,3669,3671],{"class":2979,"style":2980},[2977,3649,3650],{"class":3016,"style":3017},"export",[2977,3652,3653],{"class":3016,"style":3017},"default",[2977,3655,3656],{"class":3035,"style":3036},"defineEventHandler",[2977,3658,3039],{"class":3021,"style":3022},"event ",[2977,3661,3662],{"class":3016,"style":3017},"=>",[2977,3664,3665],{"class":3035,"style":3036},"parseCookies",[2977,3667,3039],{"class":3021,"style":3022},"event",[2977,3670,3045],{"class":3021,"style":3022},[2977,3672,3045],{"class":3021,"style":3022},[2850,3674,3675,3676,3680,3681,3683,3684,3687,3688,2865],{},"Alternatively, the example below shows how to use ",[2858,3677,3678],{"href":1633},[2854,3679,641],{}," to access and send cookies to the API from a server-side request (originating on the client). Using an isomorphic ",[2854,3682,702],{}," call, we ensure that the API endpoint has access to the same ",[2854,3685,3686],{},"cookie"," header originally sent by the user's browser. This is only necessary if you aren't using ",[2854,3689,576],{},[2968,3691,3692],{"language":2970,"class":2972},[2854,3693,3694,3011,3710,3011,3732,3011,3734,3011,3749,3011,3771,3011,3775],{"class":2975},[2977,3695,3696,3698,2991,3700,2991,3702,3704,3706,3708],{"class":2979,"style":2980},[2977,3697,2985],{"class":2983,"style":2984},[2977,3699,2990],{"class":2988,"style":2989},[2977,3701,2996],{"class":2994,"style":2995},[2977,3703,2999],{"class":2994,"style":2995},[2977,3705,3002],{"class":2983,"style":2984},[2977,3707,3007],{"class":3005,"style":3006},[2977,3709,3010],{"class":2983,"style":2984},[2977,3711,3712,3714,3715,2991,3717,3719,3721,3724,3727,3730],{"class":2979,"style":2980},[2977,3713,3018],{"class":3016,"style":3017}," headers ",[2977,3716,3002],{"class":2983,"style":2984},[2977,3718,641],{"class":3035,"style":3036},[2977,3720,3039],{"class":3021,"style":3022},[2977,3722,3723],{"class":3021,"style":3022},"[",[2977,3725,3726],{"class":3005,"style":3006},"'cookie'",[2977,3728,3729],{"class":3021,"style":3022},"]",[2977,3731,3045],{"class":3021,"style":3022},[2977,3733],{"class":2979,"style":2980},[2977,3735,3736,2991,3738,2991,3740,2991,3743,3745,2991,3747],{"class":2979,"style":2980},[2977,3737,3052],{"class":3016,"style":3017},[2977,3739,3055],{"class":3016,"style":3017},[2977,3741,3742],{"class":3035,"style":3036},"getCurrentUser",[2977,3744,3039],{"class":3021,"style":3022},[2977,3746,3045],{"class":3021,"style":3022},[2977,3748,3023],{"class":3021,"style":3022},[2977,3750,3067,3751,2991,3754,2991,3756,3758,3760,3763,2991,3765,3714,3767,3769],{"class":2979,"style":2980},[2977,3752,3753],{"class":3016,"style":3017},"return",[2977,3755,3032],{"class":3016,"style":3017},[2977,3757,702],{"class":3035,"style":3036},[2977,3759,3039],{"class":3021,"style":3022},[2977,3761,3762],{"class":3005,"style":3006},"'\u002Fapi\u002Fme'",[2977,3764,3084],{"class":2983,"style":2984},[2977,3766,3023],{"class":3021,"style":3022},[2977,3768,3027],{"class":3021,"style":3022},[2977,3770,3045],{"class":3021,"style":3022},[2977,3772,3773],{"class":2979,"style":2980},[2977,3774,3027],{"class":3021,"style":3022},[2977,3776,3777,3779,3781],{"class":2979,"style":2980},[2977,3778,3134],{"class":2983,"style":2984},[2977,3780,2990],{"class":2988,"style":2989},[2977,3782,3010],{"class":2983,"style":2984},[2955,3784,3785,3786,3790],{},"You can also use ",[2858,3787,3788],{"href":1629},[2854,3789,631],{}," to proxy headers to the call automatically.",[3792,3793,3794,3797],"caution",{},[2850,3795,3796],{},"Be very careful before proxying headers to an external API and just include headers that you need. Not all headers are safe to be bypassed and might introduce unwanted behavior. Here is a list of common headers that are NOT to be proxied:",[2870,3798,3799,3806,3817,3828],{},[2873,3800,3801,2856,3803],{},[2854,3802,3583],{},[2854,3804,3805],{},"accept",[2873,3807,3808,2856,3811,2856,3814],{},[2854,3809,3810],{},"content-length",[2854,3812,3813],{},"content-md5",[2854,3815,3816],{},"content-type",[2873,3818,3819,2856,3822,2856,3825],{},[2854,3820,3821],{},"x-forwarded-host",[2854,3823,3824],{},"x-forwarded-port",[2854,3826,3827],{},"x-forwarded-proto",[2873,3829,3830,2856,3833],{},[2854,3831,3832],{},"cf-connecting-ip",[2854,3834,3835],{},"cf-ray",[2913,3837,3838],{"id":2761},[2854,3839,576],{},[2850,3841,2931,3842,3846,3847,3849],{},[2858,3843,3844],{"href":1602},[2854,3845,576],{}," composable uses ",[2854,3848,702],{}," under-the-hood to make SSR-safe network calls in the setup function.",[2968,3851,3853],{"language":2970,"meta":3852,"class":2972},"twoslash [app\u002Fapp.vue]",[2854,3854,3855,3011,3871,3011,3896,3011,3904,3011,3906,3011,3914,3011,3935],{"class":2975},[2977,3856,3857,3859,2991,3861,2991,3863,3865,3867,3869],{"class":2979,"style":2980},[2977,3858,2985],{"class":2983,"style":2984},[2977,3860,2990],{"class":2988,"style":2989},[2977,3862,2996],{"class":2994,"style":2995},[2977,3864,2999],{"class":2994,"style":2995},[2977,3866,3002],{"class":2983,"style":2984},[2977,3868,3007],{"class":3005,"style":3006},[2977,3870,3010],{"class":2983,"style":2984},[2977,3872,3873,2991,3875,3877,3878,3880,3881,2991,3883,2991,3885,2991,3887,3889,3891,3894],{"class":2979,"style":2980},[2977,3874,3018],{"class":3016,"style":3017},[2977,3876,3023],{"class":3021,"style":3022}," data",[2977,3879,3092],{"class":2983,"style":2984}," count ",[2977,3882,3027],{"class":3021,"style":3022},[2977,3884,3002],{"class":2983,"style":2984},[2977,3886,3032],{"class":3016,"style":3017},[2977,3888,576],{"class":3035,"style":3036},[2977,3890,3039],{"class":3021,"style":3022},[2977,3892,3893],{"class":3005,"style":3006},"'\u002Fapi\u002Fcount'",[2977,3895,3045],{"class":3021,"style":3022},[2977,3897,3898,3900,3902],{"class":2979,"style":2980},[2977,3899,3134],{"class":2983,"style":2984},[2977,3901,2990],{"class":2988,"style":2989},[2977,3903,3010],{"class":2983,"style":2984},[2977,3905],{"class":2979,"style":2980},[2977,3907,3908,3910,3912],{"class":2979,"style":2980},[2977,3909,2985],{"class":2983,"style":2984},[2977,3911,3147],{"class":2988,"style":2989},[2977,3913,3010],{"class":2983,"style":2984},[2977,3915,3067,3916,3918,3920,3922,3923,3880,3926,3929,3931,3933],{"class":2979,"style":2980},[2977,3917,2985],{"class":2983,"style":2984},[2977,3919,2850],{"class":2988,"style":2989},[2977,3921,3010],{"class":2983,"style":2984},"Page visits: ",[2977,3924,3925],{"class":2983,"style":2984},"{{",[2977,3927,3928],{"class":2983,"style":2984},"}}",[2977,3930,3134],{"class":2983,"style":2984},[2977,3932,2850],{"class":2988,"style":2989},[2977,3934,3010],{"class":2983,"style":2984},[2977,3936,3937,3939,3941],{"class":2979,"style":2980},[2977,3938,3134],{"class":2983,"style":2984},[2977,3940,3147],{"class":2988,"style":2989},[2977,3942,3010],{"class":2983,"style":2984},[2850,3944,3945,3946,3950,3951,3953],{},"This composable is a wrapper around the ",[2858,3947,3948],{"href":1596},[2854,3949,561],{}," composable and ",[2854,3952,702],{}," utility.",[3955,3956],"video-accordion",{"title":3957,"videoId":3958},"Watch a video from Alexander Lichter to avoid using useFetch the wrong way","njsGVmcWviY",[3563,3960],{"to":1602},[3962,3963],"link-example",{"to":3964},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching",[2913,3966,3967],{"id":2763},[2854,3968,561],{},[2850,3970,2931,3971,3973],{},[2854,3972,561],{}," composable is responsible for wrapping async logic and returning the result once it is resolved.",[2955,3975,3976,3979,3980,3548,3983,3985,3986,3989,3990,3994],{},[2854,3977,3978],{},"useFetch(url)"," is nearly equivalent to ",[2854,3981,3982],{},"useAsyncData(url, () => event.$fetch(url))",[3550,3984],{},"\nIt's developer experience sugar for the most common use case. (You can find out more about ",[2854,3987,3988],{},"event.fetch"," at ",[2858,3991,3992],{"href":1629},[2854,3993,631],{},".)",[3955,3996],{"title":3997,"videoId":3998},"Watch a video from Alexander Lichter to dig deeper into the difference between useFetch and useAsyncData","0X-aOpSGabA",[2850,4000,4001,4002,4006,4007,4011],{},"There are some cases when using the ",[2858,4003,4004],{"href":1602},[2854,4005,576],{}," composable is not appropriate, for example when a CMS or a third-party provides their own query layer. In this case, you can use ",[2858,4008,4009],{"href":1596},[2854,4010,561],{}," to wrap your calls and still keep the benefits provided by the composable.",[2968,4013,4015],{"language":2970,"filename":4014,"class":2972},"app\u002Fpages\u002Fusers.vue",[2854,4016,4017,3011,4033,3011,4074,3011,4076,3011,4081,3011,4115],{"class":2975},[2977,4018,4019,4021,2991,4023,2991,4025,4027,4029,4031],{"class":2979,"style":2980},[2977,4020,2985],{"class":2983,"style":2984},[2977,4022,2990],{"class":2988,"style":2989},[2977,4024,2996],{"class":2994,"style":2995},[2977,4026,2999],{"class":2994,"style":2995},[2977,4028,3002],{"class":2983,"style":2984},[2977,4030,3007],{"class":3005,"style":3006},[2977,4032,3010],{"class":2983,"style":2984},[2977,4034,4035,2991,4037,3877,4039,4041,4042,2991,4044,2991,4046,2991,4048,4050,4052,4055,2991,4057,4059,2991,4061,2991,4063,4066,4068,4070,4072],{"class":2979,"style":2980},[2977,4036,3018],{"class":3016,"style":3017},[2977,4038,3023],{"class":3021,"style":3022},[2977,4040,3084],{"class":2983,"style":2984}," error ",[2977,4043,3027],{"class":3021,"style":3022},[2977,4045,3002],{"class":2983,"style":2984},[2977,4047,3032],{"class":3016,"style":3017},[2977,4049,561],{"class":3035,"style":3036},[2977,4051,3039],{"class":3021,"style":3022},[2977,4053,4054],{"class":3005,"style":3006},"'users'",[2977,4056,3084],{"class":2983,"style":2984},[2977,4058,3039],{"class":3021,"style":3022},[2977,4060,3045],{"class":3021,"style":3022},[2977,4062,3662],{"class":3016,"style":3017},[2977,4064,4065],{"class":3035,"style":3036},"myGetFunction",[2977,4067,3039],{"class":3021,"style":3022},[2977,4069,4054],{"class":3005,"style":3006},[2977,4071,3045],{"class":3021,"style":3022},[2977,4073,3045],{"class":3021,"style":3022},[2977,4075],{"class":2979,"style":2980},[2977,4077,4078],{"class":2979,"style":2980},[2977,4079,4080],{"class":3110,"style":3111},"\u002F\u002F This is also possible:",[2977,4082,4083,2991,4085,3877,4087,4041,4089,2991,4091,2991,4093,2991,4095,4097,4099,4101,2991,4103,2991,4105,4107,4109,4111,4113],{"class":2979,"style":2980},[2977,4084,3018],{"class":3016,"style":3017},[2977,4086,3023],{"class":3021,"style":3022},[2977,4088,3084],{"class":2983,"style":2984},[2977,4090,3027],{"class":3021,"style":3022},[2977,4092,3002],{"class":2983,"style":2984},[2977,4094,3032],{"class":3016,"style":3017},[2977,4096,561],{"class":3035,"style":3036},[2977,4098,3039],{"class":3021,"style":3022},[2977,4100,3039],{"class":3021,"style":3022},[2977,4102,3045],{"class":3021,"style":3022},[2977,4104,3662],{"class":3016,"style":3017},[2977,4106,4065],{"class":3035,"style":3036},[2977,4108,3039],{"class":3021,"style":3022},[2977,4110,4054],{"class":3005,"style":3006},[2977,4112,3045],{"class":3021,"style":3022},[2977,4114,3045],{"class":3021,"style":3022},[2977,4116,4117,4119,4121],{"class":2979,"style":2980},[2977,4118,3134],{"class":2983,"style":2984},[2977,4120,2990],{"class":2988,"style":2989},[2977,4122,3010],{"class":2983,"style":2984},[3258,4124,4125,4126,4130,4131,2991,4133,4135,4136,4138,4139,4141,4142,2991,4144,4146,4147,4151,4152,2865],{},"The first argument of ",[2858,4127,4128],{"href":1596},[2854,4129,561],{}," is a unique key used to cache the response of the second argument, the querying function. This key can be ignored by directly passing the querying function, the key will be auto-generated.\n",[3550,4132],{},[3550,4134],{},"\nSince the autogenerated key only takes into account the location where ",[2854,4137,561],{}," is invoked, it is recommended to always create your own key to avoid unwanted behavior, like when you are creating your own custom composable wrapping ",[2854,4140,561],{},".\n",[3550,4143],{},[3550,4145],{},"\nSetting a key can be useful to share the same data between components using ",[2858,4148,4149],{"href":1623},[2854,4150,616],{}," or to ",[2858,4153,4155],{"href":4154},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data#refresh-specific-data","refresh specific data",[2968,4157,4159],{"language":2970,"filename":4158,"class":2972},"app\u002Fpages\u002Fusers\u002F[id].vue",[2854,4160,4161,3011,4177,3011,4197,3011,4199,3011,4239,3011,4257,3011,4263],{"class":2975},[2977,4162,4163,4165,2991,4167,2991,4169,4171,4173,4175],{"class":2979,"style":2980},[2977,4164,2985],{"class":2983,"style":2984},[2977,4166,2990],{"class":2988,"style":2989},[2977,4168,2996],{"class":2994,"style":2995},[2977,4170,2999],{"class":2994,"style":2995},[2977,4172,3002],{"class":2983,"style":2984},[2977,4174,3007],{"class":3005,"style":3006},[2977,4176,3010],{"class":2983,"style":2984},[2977,4178,4179,2991,4181,4183,4184,2991,4186,2991,4188,4190,4192,4194,4196],{"class":2979,"style":2980},[2977,4180,3018],{"class":3016,"style":3017},[2977,4182,3023],{"class":3021,"style":3022}," id ",[2977,4185,3027],{"class":3021,"style":3022},[2977,4187,3002],{"class":2983,"style":2984},[2977,4189,656],{"class":3035,"style":3036},[2977,4191,3039],{"class":3021,"style":3022},[2977,4193,3045],{"class":3021,"style":3022},[2977,4195,2865],{"class":2983,"style":2984},"params",[2977,4198],{"class":2979,"style":2980},[2977,4200,4201,2991,4203,3877,4205,4041,4207,2991,4209,2991,4211,2991,4213,4215,4217,4220,4223,4224,4226,4229,2991,4231,4233,2991,4235,2991,4237],{"class":2979,"style":2980},[2977,4202,3018],{"class":3016,"style":3017},[2977,4204,3023],{"class":3021,"style":3022},[2977,4206,3084],{"class":2983,"style":2984},[2977,4208,3027],{"class":3021,"style":3022},[2977,4210,3002],{"class":2983,"style":2984},[2977,4212,3032],{"class":3016,"style":3017},[2977,4214,561],{"class":3035,"style":3036},[2977,4216,3039],{"class":3021,"style":3022},[2977,4218,4219],{"class":3005,"style":3006},"`user:",[2977,4221,4222],{"class":3016,"style":3017},"${","id",[2977,4225,3027],{"class":3016,"style":3017},[2977,4227,4228],{"class":3005,"style":3006},"`",[2977,4230,3084],{"class":2983,"style":2984},[2977,4232,3039],{"class":3021,"style":3022},[2977,4234,3045],{"class":3021,"style":3022},[2977,4236,3662],{"class":3016,"style":3017},[2977,4238,3023],{"class":3021,"style":3022},[2977,4240,3067,4241,2991,4243,4245,4247,4249,2991,4251,4183,4253,4255],{"class":2979,"style":2980},[2977,4242,3753],{"class":3016,"style":3017},[2977,4244,4065],{"class":3035,"style":3036},[2977,4246,3039],{"class":3021,"style":3022},[2977,4248,4054],{"class":3005,"style":3006},[2977,4250,3084],{"class":2983,"style":2984},[2977,4252,3023],{"class":3021,"style":3022},[2977,4254,3027],{"class":3021,"style":3022},[2977,4256,3045],{"class":3021,"style":3022},[2977,4258,4259,4261],{"class":2979,"style":2980},[2977,4260,3027],{"class":3021,"style":3022},[2977,4262,3045],{"class":3021,"style":3022},[2977,4264,4265,4267,4269],{"class":2979,"style":2980},[2977,4266,3134],{"class":2983,"style":2984},[2977,4268,2990],{"class":2988,"style":2989},[2977,4270,3010],{"class":2983,"style":2984},[2850,4272,2931,4273,4275,4276,4278],{},[2854,4274,561],{}," composable is a great way to wrap and wait for multiple ",[2854,4277,702],{}," requests to be completed, and then process the results.",[2968,4280,4281],{"language":2970,"class":2972},[2854,4282,4283,3011,4299,3011,4344,3011,4372,3011,4391,3011,4410,3011,4416,3011,4418,3011,4430,3011,4436,3011,4441,3011,4446],{"class":2975},[2977,4284,4285,4287,2991,4289,2991,4291,4293,4295,4297],{"class":2979,"style":2980},[2977,4286,2985],{"class":2983,"style":2984},[2977,4288,2990],{"class":2988,"style":2989},[2977,4290,2996],{"class":2994,"style":2995},[2977,4292,2999],{"class":2994,"style":2995},[2977,4294,3002],{"class":2983,"style":2984},[2977,4296,3007],{"class":3005,"style":3006},[2977,4298,3010],{"class":2983,"style":2984},[2977,4300,4301,2991,4303,3877,4305,4307,4308,4310,4311,2991,4313,2991,4315,2991,4317,4319,4321,4324,2991,4326,2991,4328,4330,4331,2991,4333,4335,4336,4338,2991,4340,2991,4342],{"class":2979,"style":2980},[2977,4302,3018],{"class":3016,"style":3017},[2977,4304,3023],{"class":3021,"style":3022},[2977,4306,3092],{"class":2983,"style":2984}," discounts",[2977,4309,3084],{"class":2983,"style":2984}," status ",[2977,4312,3027],{"class":3021,"style":3022},[2977,4314,3002],{"class":2983,"style":2984},[2977,4316,3032],{"class":3016,"style":3017},[2977,4318,561],{"class":3035,"style":3036},[2977,4320,3039],{"class":3021,"style":3022},[2977,4322,4323],{"class":3005,"style":3006},"'cart-discount'",[2977,4325,3084],{"class":2983,"style":2984},[2977,4327,3052],{"class":3016,"style":3017},[2977,4329,3039],{"class":3021,"style":3022},"_nuxtApp",[2977,4332,3084],{"class":2983,"style":2984},[2977,4334,3023],{"class":3021,"style":3022}," signal ",[2977,4337,3027],{"class":3021,"style":3022},[2977,4339,3045],{"class":3021,"style":3022},[2977,4341,3662],{"class":3016,"style":3017},[2977,4343,3023],{"class":3021,"style":3022},[2977,4345,3067,4346,2991,4348,4350,4351,4353,4354,2991,4356,2991,4358,2991,4360,4363,4365,4368,4370],{"class":2979,"style":2980},[2977,4347,3018],{"class":3016,"style":3017},[2977,4349,3723],{"class":3021,"style":3022},"coupons",[2977,4352,3084],{"class":2983,"style":2984}," offers",[2977,4355,3729],{"class":3021,"style":3022},[2977,4357,3002],{"class":2983,"style":2984},[2977,4359,3032],{"class":3016,"style":3017},[2977,4361,4362],{"class":2994,"style":2995},"Promise",[2977,4364,2865],{"class":2983,"style":2984},[2977,4366,4367],{"class":3035,"style":3036},"all",[2977,4369,3039],{"class":3021,"style":3022},[2977,4371,3723],{"class":3021,"style":3022},[2977,4373,3115,4374,4376,4378,4381,2991,4383,4335,4385,4387,4389],{"class":2979,"style":2980},[2977,4375,702],{"class":3035,"style":3036},[2977,4377,3039],{"class":3021,"style":3022},[2977,4379,4380],{"class":3005,"style":3006},"'\u002Fcart\u002Fcoupons'",[2977,4382,3084],{"class":2983,"style":2984},[2977,4384,3023],{"class":3021,"style":3022},[2977,4386,3027],{"class":3021,"style":3022},[2977,4388,3045],{"class":3021,"style":3022},[2977,4390,3084],{"class":2983,"style":2984},[2977,4392,3115,4393,4395,4397,4400,2991,4402,4335,4404,4406,4408],{"class":2979,"style":2980},[2977,4394,702],{"class":3035,"style":3036},[2977,4396,3039],{"class":3021,"style":3022},[2977,4398,4399],{"class":3005,"style":3006},"'\u002Fcart\u002Foffers'",[2977,4401,3084],{"class":2983,"style":2984},[2977,4403,3023],{"class":3021,"style":3022},[2977,4405,3027],{"class":3021,"style":3022},[2977,4407,3045],{"class":3021,"style":3022},[2977,4409,3084],{"class":2983,"style":2984},[2977,4411,3067,4412,4414],{"class":2979,"style":2980},[2977,4413,3729],{"class":3021,"style":3022},[2977,4415,3045],{"class":3021,"style":3022},[2977,4417],{"class":2979,"style":2980},[2977,4419,3067,4420,2991,4422,4424,4425,4427,4428],{"class":2979,"style":2980},[2977,4421,3753],{"class":3016,"style":3017},[2977,4423,3023],{"class":3021,"style":3022}," coupons",[2977,4426,3084],{"class":2983,"style":2984}," offers ",[2977,4429,3027],{"class":3021,"style":3022},[2977,4431,4432,4434],{"class":2979,"style":2980},[2977,4433,3027],{"class":3021,"style":3022},[2977,4435,3045],{"class":3021,"style":3022},[2977,4437,4438],{"class":2979,"style":2980},[2977,4439,4440],{"class":3110,"style":3111},"\u002F\u002F discounts.value.coupons",[2977,4442,4443],{"class":2979,"style":2980},[2977,4444,4445],{"class":3110,"style":3111},"\u002F\u002F discounts.value.offers",[2977,4447,4448,4450,4452],{"class":2979,"style":2980},[2977,4449,3134],{"class":2983,"style":2984},[2977,4451,2990],{"class":2988,"style":2989},[2977,4453,3010],{"class":2983,"style":2984},[3258,4455,4456,4466],{},[2850,4457,4458,4460,4461,4465],{},[2854,4459,561],{}," is for fetching and caching data, not triggering side effects like calling Pinia actions, as this can cause unintended behavior such as repeated executions with nullish values. If you need to trigger side effects, use the ",[2858,4462,4463],{"href":1664},[2854,4464,716],{}," utility to do so.",[2968,4467,4468],{"language":2970,"class":2972},[2854,4469,4470,3011,4486,3011,4500,3011,4502,3011,4507,3011,4539],{"class":2975},[2977,4471,4472,4474,2991,4476,2991,4478,4480,4482,4484],{"class":2979,"style":2980},[2977,4473,2985],{"class":2983,"style":2984},[2977,4475,2990],{"class":2988,"style":2989},[2977,4477,2996],{"class":2994,"style":2995},[2977,4479,2999],{"class":2994,"style":2995},[2977,4481,3002],{"class":2983,"style":2984},[2977,4483,3007],{"class":3005,"style":3006},[2977,4485,3010],{"class":2983,"style":2984},[2977,4487,4488,4490,4491,2991,4493,4496,4498],{"class":2979,"style":2980},[2977,4489,3018],{"class":3016,"style":3017}," offersStore ",[2977,4492,3002],{"class":2983,"style":2984},[2977,4494,4495],{"class":3035,"style":3036},"useOffersStore",[2977,4497,3039],{"class":3021,"style":3022},[2977,4499,3045],{"class":3021,"style":3022},[2977,4501],{"class":2979,"style":2980},[2977,4503,4504],{"class":2979,"style":2980},[2977,4505,4506],{"class":3110,"style":3111},"\u002F\u002F you can't do this",[2977,4508,4509,2991,4511,4513,4515,4517,2991,4519,4521,4522,4524,4527,4529,4530,4196,4532,4534,4535,4537],{"class":2979,"style":2980},[2977,4510,3032],{"class":3016,"style":3017},[2977,4512,561],{"class":3035,"style":3036},[2977,4514,3039],{"class":3021,"style":3022},[2977,4516,3039],{"class":3021,"style":3022},[2977,4518,3045],{"class":3021,"style":3022},[2977,4520,3662],{"class":3016,"style":3017}," offersStore",[2977,4523,2865],{"class":2983,"style":2984},[2977,4525,4526],{"class":3035,"style":3036},"getOffer",[2977,4528,3039],{"class":3021,"style":3022},"route",[2977,4531,2865],{"class":2983,"style":2984},[2977,4533,2865],{"class":2983,"style":2984},"slug",[2977,4536,3045],{"class":3021,"style":3022},[2977,4538,3045],{"class":3021,"style":3022},[2977,4540,4541,4543,4545],{"class":2979,"style":2980},[2977,4542,3134],{"class":2983,"style":2984},[2977,4544,2990],{"class":2988,"style":2989},[2977,4546,3010],{"class":2983,"style":2984},[3563,4548,3565,4549,2865],{"to":1596},[2854,4550,561],{},[2913,4552,2766],{"id":2765},[2850,4554,4555,2862,4557,4559],{},[2854,4556,576],{},[2854,4558,561],{}," have the same return values listed below.",[2870,4561,4562,4567,4581,4609,4614],{},[2873,4563,4564,4566],{},[2854,4565,3324],{},": the result of the asynchronous function that is passed in.",[2873,4568,4569,4572,4573,4576,4577,4580],{},[2854,4570,4571],{},"refresh","\u002F",[2854,4574,4575],{},"execute",": a function that can be used to refresh the data returned by the ",[2854,4578,4579],{},"handler"," function.",[2873,4582,4583,4586,4587,4589,4590,4593,4594,4597,4598,4589,4600,4602,4603,4589,4605,4608],{},[2854,4584,4585],{},"clear",": a function that can be used to set ",[2854,4588,3324],{}," to ",[2854,4591,4592],{},"undefined"," (or the value of ",[2854,4595,4596],{},"options.default()"," if provided), set ",[2854,4599,3347],{},[2854,4601,4592],{},", set ",[2854,4604,3344],{},[2854,4606,4607],{},"idle",", and mark any currently pending requests as cancelled.",[2873,4610,4611,4613],{},[2854,4612,3347],{},": an error object if the data fetching failed.",[2873,4615,4616,4618,4619,2856,4622,2856,4625,2856,4628,3584],{},[2854,4617,3344],{},": a string indicating the status of the data request (",[2854,4620,4621],{},"\"idle\"",[2854,4623,4624],{},"\"pending\"",[2854,4626,4627],{},"\"success\"",[2854,4629,4630],{},"\"error\"",[3258,4632,4633,2856,4635,2862,4637,4639,4640,4643,4644],{},[2854,4634,3324],{},[2854,4636,3347],{},[2854,4638,3344],{}," are Vue refs accessible with ",[2854,4641,4642],{},".value"," in ",[2854,4645,3310],{},[2850,4647,4648,4649,4651],{},"By default, Nuxt waits until a ",[2854,4650,4571],{}," is finished before it can be executed again.",[3258,4653,4654,4655,4658,4659,4662,4663,4665,4666,4668,4669,2865],{},"If you have not fetched data on the server (for example, with ",[2854,4656,4657],{},"server: false","), then the data ",[3304,4660,4661],{},"will not"," be fetched until hydration completes. This means even if you await ",[2854,4664,576],{}," on client-side, ",[2854,4667,3324],{}," will remain undefined within ",[2854,4670,3310],{},[2913,4672,2769],{"id":2768},[2850,4674,4675,2862,4679,4683],{},[2858,4676,4677],{"href":1596},[2854,4678,561],{},[2858,4680,4681],{"href":1602},[2854,4682,576],{}," return the same object type and accept a common set of options as their last argument. They can help you control the composables behavior, such as navigation blocking, caching or execution.",[3245,4685,2773],{"id":2772},[2850,4687,4688,4689,4691,4692,4694],{},"By default, data fetching composables will wait for the resolution of their asynchronous function before navigating to a new page by using Vue's Suspense. This feature can be ignored on client-side navigation with the ",[2854,4690,3360],{}," option. In that case, you will have to manually handle loading state using the ",[2854,4693,3344],{}," value.",[2968,4696,4697],{"language":2970,"meta":3852,"class":2972},[2854,4698,4699,3011,4715,3011,4742,3011,4754,3011,4760,3011,4768,3011,4770,3011,4778,3011,4783,3011,4798,3011,4801,3011,4809,3011,4819,3011,4835,3011,4840,3011,4848,3011,4856],{"class":2975},[2977,4700,4701,4703,2991,4705,2991,4707,4709,4711,4713],{"class":2979,"style":2980},[2977,4702,2985],{"class":2983,"style":2984},[2977,4704,2990],{"class":2988,"style":2989},[2977,4706,2996],{"class":2994,"style":2995},[2977,4708,2999],{"class":2994,"style":2995},[2977,4710,3002],{"class":2983,"style":2984},[2977,4712,3007],{"class":3005,"style":3006},[2977,4714,3010],{"class":2983,"style":2984},[2977,4716,4717,2991,4719,4721,4722,3877,4724,4726,4727,2991,4729,2991,4731,4733,4735,4738,2991,4740],{"class":2979,"style":2980},[2977,4718,3018],{"class":3016,"style":3017},[2977,4720,3023],{"class":3021,"style":3022}," status",[2977,4723,3084],{"class":2983,"style":2984},[2977,4725,3092],{"class":2983,"style":2984}," posts ",[2977,4728,3027],{"class":3021,"style":3022},[2977,4730,3002],{"class":2983,"style":2984},[2977,4732,576],{"class":3035,"style":3036},[2977,4734,3039],{"class":3021,"style":3022},[2977,4736,4737],{"class":3005,"style":3006},"'\u002Fapi\u002Fposts'",[2977,4739,3084],{"class":2983,"style":2984},[2977,4741,3023],{"class":3021,"style":3022},[2977,4743,4744,4745,2991,4747,4752],{"class":2979,"style":2980},"  lazy",[2977,4746,3092],{"class":2983,"style":2984},[2977,4748,4751],{"class":4749,"style":4750},"shj-syn-bool shj-bool","color:#FF5370;--shiki-dark:#ff9cac","true",[2977,4753,3084],{"class":2983,"style":2984},[2977,4755,4756,4758],{"class":2979,"style":2980},[2977,4757,3027],{"class":3021,"style":3022},[2977,4759,3045],{"class":3021,"style":3022},[2977,4761,4762,4764,4766],{"class":2979,"style":2980},[2977,4763,3134],{"class":2983,"style":2984},[2977,4765,2990],{"class":2988,"style":2989},[2977,4767,3010],{"class":2983,"style":2984},[2977,4769],{"class":2979,"style":2980},[2977,4771,4772,4774,4776],{"class":2979,"style":2980},[2977,4773,2985],{"class":2983,"style":2984},[2977,4775,3147],{"class":2988,"style":2989},[2977,4777,3010],{"class":2983,"style":2984},[2977,4779,3067,4780],{"class":2979,"style":2980},[2977,4781,4782],{"class":3110,"style":3111},"\u003C!-- you will need to handle a loading state -->",[2977,4784,3067,4785,4787,2991,4789,4791,4793,4796],{"class":2979,"style":2980},[2977,4786,2985],{"class":2983,"style":2984},[2977,4788,3156],{"class":2988,"style":2989},[2977,4790,3159],{"class":3016,"style":3017},[2977,4792,3002],{"class":2983,"style":2984},[2977,4794,4795],{"class":3005,"style":3006},"\"status === 'pending'\"",[2977,4797,3010],{"class":2983,"style":2984},[2977,4799,4800],{"class":2979,"style":2980},"    Loading ...",[2977,4802,3067,4803,4805,4807],{"class":2979,"style":2980},[2977,4804,3134],{"class":2983,"style":2984},[2977,4806,3156],{"class":2988,"style":2989},[2977,4808,3010],{"class":2983,"style":2984},[2977,4810,3067,4811,4813,2991,4815,4817],{"class":2979,"style":2980},[2977,4812,2985],{"class":2983,"style":2984},[2977,4814,3156],{"class":2988,"style":2989},[2977,4816,3186],{"class":3016,"style":3017},[2977,4818,3010],{"class":2983,"style":2984},[2977,4820,3115,4821,4823,2991,4825,4828,4830,4833],{"class":2979,"style":2980},[2977,4822,2985],{"class":2983,"style":2984},[2977,4824,3156],{"class":2988,"style":2989},[2977,4826,4827],{"class":3016,"style":3017},"v-for",[2977,4829,3002],{"class":2983,"style":2984},[2977,4831,4832],{"class":3005,"style":3006},"\"post in posts\"",[2977,4834,3010],{"class":2983,"style":2984},[2977,4836,3107,4837],{"class":2979,"style":2980},[2977,4838,4839],{"class":3110,"style":3111},"\u003C!-- do something -->",[2977,4841,3115,4842,4844,4846],{"class":2979,"style":2980},[2977,4843,3134],{"class":2983,"style":2984},[2977,4845,3156],{"class":2988,"style":2989},[2977,4847,3010],{"class":2983,"style":2984},[2977,4849,3067,4850,4852,4854],{"class":2979,"style":2980},[2977,4851,3134],{"class":2983,"style":2984},[2977,4853,3156],{"class":2988,"style":2989},[2977,4855,3010],{"class":2983,"style":2984},[2977,4857,4858,4860,4862],{"class":2979,"style":2980},[2977,4859,3134],{"class":2983,"style":2984},[2977,4861,3147],{"class":2988,"style":2989},[2977,4863,3010],{"class":2983,"style":2984},[2850,4865,4866,4867,2862,4871,4873],{},"You can alternatively use ",[2858,4868,4869],{"href":1617},[2854,4870,601],{},[2854,4872,596],{}," as convenient methods to perform the same.",[2968,4875,4877],{"language":2970,"meta":4876,"class":2972},"twoslash",[2854,4878,4879,3011,4895,3011,4917],{"class":2975},[2977,4880,4881,4883,2991,4885,2991,4887,4889,4891,4893],{"class":2979,"style":2980},[2977,4882,2985],{"class":2983,"style":2984},[2977,4884,2990],{"class":2988,"style":2989},[2977,4886,2996],{"class":2994,"style":2995},[2977,4888,2999],{"class":2994,"style":2995},[2977,4890,3002],{"class":2983,"style":2984},[2977,4892,3007],{"class":3005,"style":3006},[2977,4894,3010],{"class":2983,"style":2984},[2977,4896,4897,2991,4899,4721,4901,3877,4903,4726,4905,2991,4907,2991,4909,4911,4913,4915],{"class":2979,"style":2980},[2977,4898,3018],{"class":3016,"style":3017},[2977,4900,3023],{"class":3021,"style":3022},[2977,4902,3084],{"class":2983,"style":2984},[2977,4904,3092],{"class":2983,"style":2984},[2977,4906,3027],{"class":3021,"style":3022},[2977,4908,3002],{"class":2983,"style":2984},[2977,4910,601],{"class":3035,"style":3036},[2977,4912,3039],{"class":3021,"style":3022},[2977,4914,4737],{"class":3005,"style":3006},[2977,4916,3045],{"class":3021,"style":3022},[2977,4918,4919,4921,4923],{"class":2979,"style":2980},[2977,4920,3134],{"class":2983,"style":2984},[2977,4922,2990],{"class":2988,"style":2989},[2977,4924,3010],{"class":2983,"style":2984},[3563,4926,3565,4927,2865],{"to":1617},[2854,4928,601],{},[3563,4930,3565,4931,2865],{"to":1615},[2854,4932,596],{},[3955,4934],{"title":4935,"videoId":4936,"platform":4937},"Watch a video from Vue School on blocking vs. non-blocking (lazy) requests","1022000555","vimeo",[3245,4939,2776],{"id":2775},[2850,4941,4942,4943,4945,4946,4949],{},"By default, data fetching composables will perform their asynchronous function on both client and server environments. Set the ",[2854,4944,184],{}," option to ",[2854,4947,4948],{},"false"," to only perform the call on the client-side. On initial load, the data will not be fetched before hydration is complete so you have to handle a pending state, though on subsequent client-side navigation the data will be awaited before loading the page.",[2850,4951,4952,4953,4955],{},"Combined with the ",[2854,4954,3360],{}," option, this can be useful for data that is not needed on the first render (for example, non-SEO sensitive data).",[2968,4957,4958],{"language":3636,"meta":4876,"class":3637},[2854,4959,4960,3011,4965,3011,4983,3011,4985,3011,4990,3011,5016,3011,5024,3011,5033],{"class":3640},[2977,4961,4962],{"class":2979,"style":2980},[2977,4963,4964],{"class":3110,"style":3111},"\u002F* This call is performed before hydration *\u002F",[2977,4966,4967,4969,4970,2991,4972,2991,4974,4976,4978,4981],{"class":2979,"style":2980},[2977,4968,3018],{"class":3016,"style":3017}," articles ",[2977,4971,3002],{"class":2983,"style":2984},[2977,4973,3032],{"class":3016,"style":3017},[2977,4975,576],{"class":3035,"style":3036},[2977,4977,3039],{"class":3021,"style":3022},[2977,4979,4980],{"class":3005,"style":3006},"'\u002Fapi\u002Farticle'",[2977,4982,3045],{"class":3021,"style":3022},[2977,4984],{"class":2979,"style":2980},[2977,4986,4987],{"class":2979,"style":2980},[2977,4988,4989],{"class":3110,"style":3111},"\u002F* This call will only be performed on the client *\u002F",[2977,4991,4992,2991,4994,4721,4996,3877,4998,5000,5001,2991,5003,2991,5005,5007,5009,5012,2991,5014],{"class":2979,"style":2980},[2977,4993,3018],{"class":3016,"style":3017},[2977,4995,3023],{"class":3021,"style":3022},[2977,4997,3084],{"class":2983,"style":2984},[2977,4999,3092],{"class":2983,"style":2984}," comments ",[2977,5002,3027],{"class":3021,"style":3022},[2977,5004,3002],{"class":2983,"style":2984},[2977,5006,576],{"class":3035,"style":3036},[2977,5008,3039],{"class":3021,"style":3022},[2977,5010,5011],{"class":3005,"style":3006},"'\u002Fapi\u002Fcomments'",[2977,5013,3084],{"class":2983,"style":2984},[2977,5015,3023],{"class":3021,"style":3022},[2977,5017,4744,5018,2991,5020,5022],{"class":2979,"style":2980},[2977,5019,3092],{"class":2983,"style":2984},[2977,5021,4751],{"class":4749,"style":4750},[2977,5023,3084],{"class":2983,"style":2984},[2977,5025,5026,5027,2991,5029,5031],{"class":2979,"style":2980},"  server",[2977,5028,3092],{"class":2983,"style":2984},[2977,5030,4948],{"class":4749,"style":4750},[2977,5032,3084],{"class":2983,"style":2984},[2977,5034,5035,5037],{"class":2979,"style":2980},[2977,5036,3027],{"class":3021,"style":3022},[2977,5038,3045],{"class":3021,"style":3022},[2850,5040,2931,5041,5043,5044,2865],{},[2854,5042,576],{}," composable is meant to be invoked in setup method or called directly at the top level of a function in lifecycle hooks, otherwise you should use ",[2858,5045,5047,5049],{"href":5046},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fdata-fetching#fetch",[2854,5048,702],{}," method",[3245,5051,2779],{"id":2778},[2850,5053,2931,5054,5057],{},[2854,5055,5056],{},"pick"," option helps you to minimize the payload size stored in your HTML document by only selecting the fields that you want returned from the composables.",[2968,5059,5060],{"language":2970,"class":2972},[2854,5061,5062,3011,5078,3011,5083,3011,5109,3011,5128,3011,5134,3011,5142,3011,5144,3011,5152,3011,5175,3011,5196],{"class":2975},[2977,5063,5064,5066,2991,5068,2991,5070,5072,5074,5076],{"class":2979,"style":2980},[2977,5065,2985],{"class":2983,"style":2984},[2977,5067,2990],{"class":2988,"style":2989},[2977,5069,2996],{"class":2994,"style":2995},[2977,5071,2999],{"class":2994,"style":2995},[2977,5073,3002],{"class":2983,"style":2984},[2977,5075,3007],{"class":3005,"style":3006},[2977,5077,3010],{"class":2983,"style":2984},[2977,5079,5080],{"class":2979,"style":2980},[2977,5081,5082],{"class":3110,"style":3111},"\u002F* only pick the fields used in your template *\u002F",[2977,5084,5085,2991,5087,3877,5089,5091,5092,2991,5094,2991,5096,2991,5098,5100,5102,5105,2991,5107],{"class":2979,"style":2980},[2977,5086,3018],{"class":3016,"style":3017},[2977,5088,3023],{"class":3021,"style":3022},[2977,5090,3092],{"class":2983,"style":2984}," mountain ",[2977,5093,3027],{"class":3021,"style":3022},[2977,5095,3002],{"class":2983,"style":2984},[2977,5097,3032],{"class":3016,"style":3017},[2977,5099,576],{"class":3035,"style":3036},[2977,5101,3039],{"class":3021,"style":3022},[2977,5103,5104],{"class":3005,"style":3006},"'\u002Fapi\u002Fmountains\u002Feverest'",[2977,5106,3084],{"class":2983,"style":2984},[2977,5108,3023],{"class":3021,"style":3022},[2977,5110,5111,5112,2991,5114,5116,5119,2991,5121,5124,5126],{"class":2979,"style":2980},"  pick",[2977,5113,3092],{"class":2983,"style":2984},[2977,5115,3723],{"class":3021,"style":3022},[2977,5117,5118],{"class":3005,"style":3006},"'title'",[2977,5120,3084],{"class":2983,"style":2984},[2977,5122,5123],{"class":3005,"style":3006},"'description'",[2977,5125,3729],{"class":3021,"style":3022},[2977,5127,3084],{"class":2983,"style":2984},[2977,5129,5130,5132],{"class":2979,"style":2980},[2977,5131,3027],{"class":3021,"style":3022},[2977,5133,3045],{"class":3021,"style":3022},[2977,5135,5136,5138,5140],{"class":2979,"style":2980},[2977,5137,3134],{"class":2983,"style":2984},[2977,5139,2990],{"class":2988,"style":2989},[2977,5141,3010],{"class":2983,"style":2984},[2977,5143],{"class":2979,"style":2980},[2977,5145,5146,5148,5150],{"class":2979,"style":2980},[2977,5147,2985],{"class":2983,"style":2984},[2977,5149,3147],{"class":2988,"style":2989},[2977,5151,3010],{"class":2983,"style":2984},[2977,5153,3067,5154,5156,5159,5161,5163,5164,5166,5167,5169,5171,5173],{"class":2979,"style":2980},[2977,5155,2985],{"class":2983,"style":2984},[2977,5157,5158],{"class":2988,"style":2989},"h1",[2977,5160,3010],{"class":2983,"style":2984},[2977,5162,3925],{"class":2983,"style":2984}," mountain",[2977,5165,2865],{"class":2983,"style":2984},"title ",[2977,5168,3928],{"class":2983,"style":2984},[2977,5170,3134],{"class":2983,"style":2984},[2977,5172,5158],{"class":2988,"style":2989},[2977,5174,3010],{"class":2983,"style":2984},[2977,5176,3067,5177,5179,5181,5183,5163,5185,5187,5188,5190,5192,5194],{"class":2979,"style":2980},[2977,5178,2985],{"class":2983,"style":2984},[2977,5180,2850],{"class":2988,"style":2989},[2977,5182,3010],{"class":2983,"style":2984},[2977,5184,3925],{"class":2983,"style":2984},[2977,5186,2865],{"class":2983,"style":2984},"description ",[2977,5189,3928],{"class":2983,"style":2984},[2977,5191,3134],{"class":2983,"style":2984},[2977,5193,2850],{"class":2988,"style":2989},[2977,5195,3010],{"class":2983,"style":2984},[2977,5197,5198,5200,5202],{"class":2979,"style":2980},[2977,5199,3134],{"class":2983,"style":2984},[2977,5201,3147],{"class":2988,"style":2989},[2977,5203,3010],{"class":2983,"style":2984},[2850,5205,5206,5207,5210],{},"If you need more control or map over several objects, you can use the ",[2854,5208,5209],{},"transform"," function to alter the result of the query.",[2968,5212,5213],{"language":3636,"class":3637},[2854,5214,5215,3011,5241,3011,5255,3011,5293,3011,5299],{"class":3640},[2977,5216,5217,2991,5219,3877,5221,5223,5224,2991,5226,2991,5228,2991,5230,5232,5234,5237,2991,5239],{"class":2979,"style":2980},[2977,5218,3018],{"class":3016,"style":3017},[2977,5220,3023],{"class":3021,"style":3022},[2977,5222,3092],{"class":2983,"style":2984}," mountains ",[2977,5225,3027],{"class":3021,"style":3022},[2977,5227,3002],{"class":2983,"style":2984},[2977,5229,3032],{"class":3016,"style":3017},[2977,5231,576],{"class":3035,"style":3036},[2977,5233,3039],{"class":3021,"style":3022},[2977,5235,5236],{"class":3005,"style":3006},"'\u002Fapi\u002Fmountains'",[2977,5238,3084],{"class":2983,"style":2984},[2977,5240,3023],{"class":3021,"style":3022},[2977,5242,5243,5244,2991,5246,5248,5249,2991,5251,2991,5253],{"class":2979,"style":2980},"  transform",[2977,5245,3092],{"class":2983,"style":2984},[2977,5247,3039],{"class":3021,"style":3022},"mountains",[2977,5250,3045],{"class":3021,"style":3022},[2977,5252,3662],{"class":3016,"style":3017},[2977,5254,3023],{"class":3021,"style":3022},[2977,5256,3115,5257,5259,5260,5262,5265,5267,5268,2991,5270,5272,5274,5275,5163,5277,5279,5280,5282,5283,5163,5285,5187,5287,5289,5291],{"class":2979,"style":2980},[2977,5258,3753],{"class":3016,"style":3017}," mountains",[2977,5261,2865],{"class":2983,"style":2984},[2977,5263,5264],{"class":3035,"style":3036},"map",[2977,5266,3039],{"class":3021,"style":3022},"mountain ",[2977,5269,3662],{"class":3016,"style":3017},[2977,5271,3039],{"class":3021,"style":3022},[2977,5273,3023],{"class":3021,"style":3022}," title",[2977,5276,3092],{"class":2983,"style":2984},[2977,5278,2865],{"class":2983,"style":2984},"title",[2977,5281,3084],{"class":2983,"style":2984}," description",[2977,5284,3092],{"class":2983,"style":2984},[2977,5286,2865],{"class":2983,"style":2984},[2977,5288,3027],{"class":3021,"style":3022},[2977,5290,3045],{"class":3021,"style":3022},[2977,5292,3045],{"class":3021,"style":3022},[2977,5294,3067,5295,5297],{"class":2979,"style":2980},[2977,5296,3027],{"class":3021,"style":3022},[2977,5298,3084],{"class":2983,"style":2984},[2977,5300,5301,5303],{"class":2979,"style":2980},[2977,5302,3027],{"class":3021,"style":3022},[2977,5304,3045],{"class":3021,"style":3022},[3258,5306,2906,5307,2862,5309,5311],{},[2854,5308,5056],{},[2854,5310,5209],{}," don't prevent the unwanted data from being fetched initially. But they will prevent unwanted data from being added to the payload transferred from server to client.",[3955,5313],{"title":5314,"videoId":5315,"platform":4937},"Watch a video from Vue School on minimizing payload size","1026410430",[3245,5317,2782],{"id":2781},[5319,5320,2787],"h4",{"id":2785},[2850,5322,5323,2862,5327,5331],{},[2858,5324,5325],{"href":1602},[2854,5326,576],{},[2858,5328,5329],{"href":1596},[2854,5330,561],{}," use keys to prevent refetching the same data.",[2870,5333,5334,5355],{},[2873,5335,5336,5340,5341,5343,5344,5347,5348,5351,5352,5354],{},[2858,5337,5338],{"href":1602},[2854,5339,576],{}," generates a key from the URL, the fetch options and the location of the call in your source code. This means two ",[2854,5342,576],{}," calls with the same URL in different components have ",[2964,5345,5346],{},"different"," keys and will each perform their own request. To share the same data between multiple components, provide the same explicit ",[2854,5349,5350],{},"key"," in the ",[2854,5353,2768],{}," object passed as a last argument.",[2873,5356,5357,5361,5362,5364],{},[2858,5358,5359],{"href":1596},[2854,5360,561],{}," uses its first argument as a key if it is a string. If the first argument is the handler function that performs the query, then a key that is unique to the location of the ",[2854,5363,561],{}," call in your source code will be generated for you.",[2955,5366,5367,5368],{},"To get the cached data by key, you can use ",[2858,5369,5370],{"href":1623},[2854,5371,616],{},[3955,5373],{"title":5374,"videoId":5375,"platform":4937},"Watch a video from Vue School on caching data with the key option","1026410044",[5319,5377,2790],{"id":2789},[2850,5379,5380,5381,3398,5383,5385,5386,2856,5388,2862,5390,5392],{},"When multiple components use the same key with ",[2854,5382,561],{},[2854,5384,576],{},", they will share the same ",[2854,5387,3324],{},[2854,5389,3347],{},[2854,5391,3344],{}," refs. This ensures consistency across components but requires some options to be consistent.",[2850,5394,5395,5396,5399],{},"The following options ",[2964,5397,5398],{},"must be consistent"," across all calls with the same key:",[2870,5401,5402,5406,5412,5416,5421,5426],{},[2873,5403,5404,2927],{},[2854,5405,4579],{},[2873,5407,5408,5411],{},[2854,5409,5410],{},"deep"," option",[2873,5413,5414,2927],{},[2854,5415,5209],{},[2873,5417,5418,5420],{},[2854,5419,5056],{}," array",[2873,5422,5423,2927],{},[2854,5424,5425],{},"getCachedData",[2873,5427,5428,5430],{},[2854,5429,3653],{}," value",[2968,5432,5433],{"language":3636,"class":3637},[2854,5434,5435,3011,5440,3011,5501],{"class":3640},[2977,5436,5437],{"class":2979,"style":2980},[2977,5438,5439],{"class":3110,"style":3111},"\u002F\u002F ❌ This will trigger a development warning",[2977,5441,5442,2991,5444,3877,5446,5448,5449,2991,5451,2991,5453,5455,5457,5459,2991,5461,4330,5463,2991,5465,4335,5467,5469,2991,5471,2991,5473,5475,5477,5480,2991,5482,4335,5484,5486,5488,2991,5490,5492,5493,2991,5495,2991,5497,5499],{"class":2979,"style":2980},[2977,5443,3018],{"class":3016,"style":3017},[2977,5445,3023],{"class":3021,"style":3022},[2977,5447,3092],{"class":2983,"style":2984}," users1 ",[2977,5450,3027],{"class":3021,"style":3022},[2977,5452,3002],{"class":2983,"style":2984},[2977,5454,561],{"class":3035,"style":3036},[2977,5456,3039],{"class":3021,"style":3022},[2977,5458,4054],{"class":3005,"style":3006},[2977,5460,3084],{"class":2983,"style":2984},[2977,5462,3039],{"class":3021,"style":3022},[2977,5464,3084],{"class":2983,"style":2984},[2977,5466,3023],{"class":3021,"style":3022},[2977,5468,3027],{"class":3021,"style":3022},[2977,5470,3045],{"class":3021,"style":3022},[2977,5472,3662],{"class":3016,"style":3017},[2977,5474,702],{"class":3035,"style":3036},[2977,5476,3039],{"class":3021,"style":3022},[2977,5478,5479],{"class":3005,"style":3006},"'\u002Fapi\u002Fusers'",[2977,5481,3084],{"class":2983,"style":2984},[2977,5483,3023],{"class":3021,"style":3022},[2977,5485,3027],{"class":3021,"style":3022},[2977,5487,3045],{"class":3021,"style":3022},[2977,5489,3084],{"class":2983,"style":2984},[2977,5491,3023],{"class":3021,"style":3022}," deep",[2977,5494,3092],{"class":2983,"style":2984},[2977,5496,4948],{"class":4749,"style":4750},[2977,5498,3027],{"class":3021,"style":3022},[2977,5500,3045],{"class":3021,"style":3022},[2977,5502,5503,2991,5505,3877,5507,5509,5510,2991,5512,2991,5514,5516,5518,5520,2991,5522,4330,5524,2991,5526,4335,5528,5530,2991,5532,2991,5534,5536,5538,5540,2991,5542,4335,5544,5546,5548,2991,5550,5492,5552,2991,5554,2991,5556,5558],{"class":2979,"style":2980},[2977,5504,3018],{"class":3016,"style":3017},[2977,5506,3023],{"class":3021,"style":3022},[2977,5508,3092],{"class":2983,"style":2984}," users2 ",[2977,5511,3027],{"class":3021,"style":3022},[2977,5513,3002],{"class":2983,"style":2984},[2977,5515,561],{"class":3035,"style":3036},[2977,5517,3039],{"class":3021,"style":3022},[2977,5519,4054],{"class":3005,"style":3006},[2977,5521,3084],{"class":2983,"style":2984},[2977,5523,3039],{"class":3021,"style":3022},[2977,5525,3084],{"class":2983,"style":2984},[2977,5527,3023],{"class":3021,"style":3022},[2977,5529,3027],{"class":3021,"style":3022},[2977,5531,3045],{"class":3021,"style":3022},[2977,5533,3662],{"class":3016,"style":3017},[2977,5535,702],{"class":3035,"style":3036},[2977,5537,3039],{"class":3021,"style":3022},[2977,5539,5479],{"class":3005,"style":3006},[2977,5541,3084],{"class":2983,"style":2984},[2977,5543,3023],{"class":3021,"style":3022},[2977,5545,3027],{"class":3021,"style":3022},[2977,5547,3045],{"class":3021,"style":3022},[2977,5549,3084],{"class":2983,"style":2984},[2977,5551,3023],{"class":3021,"style":3022},[2977,5553,3092],{"class":2983,"style":2984},[2977,5555,4751],{"class":4749,"style":4750},[2977,5557,3027],{"class":3021,"style":3022},[2977,5559,3045],{"class":3021,"style":3022},[2850,5561,5395,5562,5565],{},[2964,5563,5564],{},"can safely differ"," without triggering warnings:",[2870,5567,5568,5572,5576,5581,5586],{},[2873,5569,5570],{},[2854,5571,184],{},[2873,5573,5574],{},[2854,5575,3360],{},[2873,5577,5578],{},[2854,5579,5580],{},"immediate",[2873,5582,5583],{},[2854,5584,5585],{},"dedupe",[2873,5587,5588],{},[2854,5589,5590],{},"watch",[2968,5592,5593],{"language":3636,"class":3637},[2854,5594,5595,3011,5600,3011,5659],{"class":3640},[2977,5596,5597],{"class":2979,"style":2980},[2977,5598,5599],{"class":3110,"style":3111},"\u002F\u002F ✅ This is allowed",[2977,5601,5602,2991,5604,3877,5606,5448,5608,2991,5610,2991,5612,5614,5616,5618,2991,5620,4330,5622,2991,5624,4335,5626,5628,2991,5630,2991,5632,5634,5636,5638,2991,5640,4335,5642,5644,5646,2991,5648,5650,5651,2991,5653,2991,5655,5657],{"class":2979,"style":2980},[2977,5603,3018],{"class":3016,"style":3017},[2977,5605,3023],{"class":3021,"style":3022},[2977,5607,3092],{"class":2983,"style":2984},[2977,5609,3027],{"class":3021,"style":3022},[2977,5611,3002],{"class":2983,"style":2984},[2977,5613,561],{"class":3035,"style":3036},[2977,5615,3039],{"class":3021,"style":3022},[2977,5617,4054],{"class":3005,"style":3006},[2977,5619,3084],{"class":2983,"style":2984},[2977,5621,3039],{"class":3021,"style":3022},[2977,5623,3084],{"class":2983,"style":2984},[2977,5625,3023],{"class":3021,"style":3022},[2977,5627,3027],{"class":3021,"style":3022},[2977,5629,3045],{"class":3021,"style":3022},[2977,5631,3662],{"class":3016,"style":3017},[2977,5633,702],{"class":3035,"style":3036},[2977,5635,3039],{"class":3021,"style":3022},[2977,5637,5479],{"class":3005,"style":3006},[2977,5639,3084],{"class":2983,"style":2984},[2977,5641,3023],{"class":3021,"style":3022},[2977,5643,3027],{"class":3021,"style":3022},[2977,5645,3045],{"class":3021,"style":3022},[2977,5647,3084],{"class":2983,"style":2984},[2977,5649,3023],{"class":3021,"style":3022}," immediate",[2977,5652,3092],{"class":2983,"style":2984},[2977,5654,4751],{"class":4749,"style":4750},[2977,5656,3027],{"class":3021,"style":3022},[2977,5658,3045],{"class":3021,"style":3022},[2977,5660,5661,2991,5663,3877,5665,5509,5667,2991,5669,2991,5671,5673,5675,5677,2991,5679,4330,5681,2991,5683,4335,5685,5687,2991,5689,2991,5691,5693,5695,5697,2991,5699,4335,5701,5703,5705,2991,5707,5650,5709,2991,5711,2991,5713,5715],{"class":2979,"style":2980},[2977,5662,3018],{"class":3016,"style":3017},[2977,5664,3023],{"class":3021,"style":3022},[2977,5666,3092],{"class":2983,"style":2984},[2977,5668,3027],{"class":3021,"style":3022},[2977,5670,3002],{"class":2983,"style":2984},[2977,5672,561],{"class":3035,"style":3036},[2977,5674,3039],{"class":3021,"style":3022},[2977,5676,4054],{"class":3005,"style":3006},[2977,5678,3084],{"class":2983,"style":2984},[2977,5680,3039],{"class":3021,"style":3022},[2977,5682,3084],{"class":2983,"style":2984},[2977,5684,3023],{"class":3021,"style":3022},[2977,5686,3027],{"class":3021,"style":3022},[2977,5688,3045],{"class":3021,"style":3022},[2977,5690,3662],{"class":3016,"style":3017},[2977,5692,702],{"class":3035,"style":3036},[2977,5694,3039],{"class":3021,"style":3022},[2977,5696,5479],{"class":3005,"style":3006},[2977,5698,3084],{"class":2983,"style":2984},[2977,5700,3023],{"class":3021,"style":3022},[2977,5702,3027],{"class":3021,"style":3022},[2977,5704,3045],{"class":3021,"style":3022},[2977,5706,3084],{"class":2983,"style":2984},[2977,5708,3023],{"class":3021,"style":3022},[2977,5710,3092],{"class":2983,"style":2984},[2977,5712,4948],{"class":4749,"style":4750},[2977,5714,3027],{"class":3021,"style":3022},[2977,5716,3045],{"class":3021,"style":3022},[2850,5718,5719],{},"If you need independent instances, use different keys:",[2968,5721,5722],{"language":3636,"class":3637},[2854,5723,5724,3011,5729,3011,5778],{"class":3640},[2977,5725,5726],{"class":2979,"style":2980},[2977,5727,5728],{"class":3110,"style":3111},"\u002F\u002F These are completely independent instances",[2977,5730,5731,2991,5733,3877,5735,5448,5737,2991,5739,2991,5741,5743,5745,5748,2991,5750,4330,5752,2991,5754,4335,5756,5758,2991,5760,2991,5762,5764,5766,5768,2991,5770,4335,5772,5774,5776],{"class":2979,"style":2980},[2977,5732,3018],{"class":3016,"style":3017},[2977,5734,3023],{"class":3021,"style":3022},[2977,5736,3092],{"class":2983,"style":2984},[2977,5738,3027],{"class":3021,"style":3022},[2977,5740,3002],{"class":2983,"style":2984},[2977,5742,561],{"class":3035,"style":3036},[2977,5744,3039],{"class":3021,"style":3022},[2977,5746,5747],{"class":3005,"style":3006},"'users-1'",[2977,5749,3084],{"class":2983,"style":2984},[2977,5751,3039],{"class":3021,"style":3022},[2977,5753,3084],{"class":2983,"style":2984},[2977,5755,3023],{"class":3021,"style":3022},[2977,5757,3027],{"class":3021,"style":3022},[2977,5759,3045],{"class":3021,"style":3022},[2977,5761,3662],{"class":3016,"style":3017},[2977,5763,702],{"class":3035,"style":3036},[2977,5765,3039],{"class":3021,"style":3022},[2977,5767,5479],{"class":3005,"style":3006},[2977,5769,3084],{"class":2983,"style":2984},[2977,5771,3023],{"class":3021,"style":3022},[2977,5773,3027],{"class":3021,"style":3022},[2977,5775,3045],{"class":3021,"style":3022},[2977,5777,3045],{"class":3021,"style":3022},[2977,5779,5780,2991,5782,3877,5784,5509,5786,2991,5788,2991,5790,5792,5794,5797,2991,5799,4330,5801,2991,5803,4335,5805,5807,2991,5809,2991,5811,5813,5815,5817,2991,5819,4335,5821,5823,5825],{"class":2979,"style":2980},[2977,5781,3018],{"class":3016,"style":3017},[2977,5783,3023],{"class":3021,"style":3022},[2977,5785,3092],{"class":2983,"style":2984},[2977,5787,3027],{"class":3021,"style":3022},[2977,5789,3002],{"class":2983,"style":2984},[2977,5791,561],{"class":3035,"style":3036},[2977,5793,3039],{"class":3021,"style":3022},[2977,5795,5796],{"class":3005,"style":3006},"'users-2'",[2977,5798,3084],{"class":2983,"style":2984},[2977,5800,3039],{"class":3021,"style":3022},[2977,5802,3084],{"class":2983,"style":2984},[2977,5804,3023],{"class":3021,"style":3022},[2977,5806,3027],{"class":3021,"style":3022},[2977,5808,3045],{"class":3021,"style":3022},[2977,5810,3662],{"class":3016,"style":3017},[2977,5812,702],{"class":3035,"style":3036},[2977,5814,3039],{"class":3021,"style":3022},[2977,5816,5479],{"class":3005,"style":3006},[2977,5818,3084],{"class":2983,"style":2984},[2977,5820,3023],{"class":3021,"style":3022},[2977,5822,3027],{"class":3021,"style":3022},[2977,5824,3045],{"class":3021,"style":3022},[2977,5826,3045],{"class":3021,"style":3022},[5319,5828,2793],{"id":2792},[2850,5830,5831],{},"You can use computed refs, plain refs or getter functions as keys, allowing for dynamic data fetching that automatically updates when dependencies change:",[2968,5833,5834],{"language":3636,"class":3637},[2854,5835,5836,3011,5841,3011,5858,3011,5875,3011,5905,3011,5924,3011,5928,3011,5930,3011,5935,3011,5940],{"class":3640},[2977,5837,5838],{"class":2979,"style":2980},[2977,5839,5840],{"class":3110,"style":3111},"\u002F\u002F Using a computed property as a key",[2977,5842,5843,5845,5846,2991,5848,5851,5853,5856],{"class":2979,"style":2980},[2977,5844,3018],{"class":3016,"style":3017}," userId ",[2977,5847,3002],{"class":2983,"style":2984},[2977,5849,5850],{"class":3035,"style":3036},"ref",[2977,5852,3039],{"class":3021,"style":3022},[2977,5854,5855],{"class":3005,"style":3006},"'123'",[2977,5857,3045],{"class":3021,"style":3022},[2977,5859,5860,2991,5862,3877,5864,5866,5867,2991,5869,2991,5871,5873],{"class":2979,"style":2980},[2977,5861,3018],{"class":3016,"style":3017},[2977,5863,3023],{"class":3021,"style":3022},[2977,5865,3092],{"class":2983,"style":2984}," user ",[2977,5868,3027],{"class":3021,"style":3022},[2977,5870,3002],{"class":2983,"style":2984},[2977,5872,561],{"class":3035,"style":3036},[2977,5874,3039],{"class":3021,"style":3022},[2977,5876,3067,5877,5880,5882,5884,2991,5886,2991,5888,5891,5893,5894,5896,5897,5899,5901,5903],{"class":2979,"style":2980},[2977,5878,5879],{"class":3035,"style":3036},"computed",[2977,5881,3039],{"class":3021,"style":3022},[2977,5883,3039],{"class":3021,"style":3022},[2977,5885,3045],{"class":3021,"style":3022},[2977,5887,3662],{"class":3016,"style":3017},[2977,5889,5890],{"class":3005,"style":3006},"`user-",[2977,5892,4222],{"class":3016,"style":3017},"userId",[2977,5895,2865],{"class":2983,"style":2984},"value",[2977,5898,3027],{"class":3016,"style":3017},[2977,5900,4228],{"class":3005,"style":3006},[2977,5902,3045],{"class":3021,"style":3022},[2977,5904,3084],{"class":2983,"style":2984},[2977,5906,3067,5907,5909,2991,5911,2991,5913,5916,5893,5918,5896,5920,5922],{"class":2979,"style":2980},[2977,5908,3039],{"class":3021,"style":3022},[2977,5910,3045],{"class":3021,"style":3022},[2977,5912,3662],{"class":3016,"style":3017},[2977,5914,5915],{"class":3035,"style":3036},"fetchUser",[2977,5917,3039],{"class":3021,"style":3022},[2977,5919,2865],{"class":2983,"style":2984},[2977,5921,3045],{"class":3021,"style":3022},[2977,5923,3084],{"class":2983,"style":2984},[2977,5925,5926],{"class":2979,"style":2980},[2977,5927,3045],{"class":3021,"style":3022},[2977,5929],{"class":2979,"style":2980},[2977,5931,5932],{"class":2979,"style":2980},[2977,5933,5934],{"class":3110,"style":3111},"\u002F\u002F When userId changes, the data will be automatically refetched",[2977,5936,5937],{"class":2979,"style":2980},[2977,5938,5939],{"class":3110,"style":3111},"\u002F\u002F and the old data will be cleaned up if no other components use it",[2977,5941,5893,5942,5944,5945,2991,5947],{"class":2979,"style":2980},[2977,5943,2865],{"class":2983,"style":2984},"value ",[2977,5946,3002],{"class":2983,"style":2984},[2977,5948,5949],{"class":3005,"style":3006},"'456'",[5319,5951,2796],{"id":2795},[2850,5953,5954,5955,3398,5957,5959],{},"If you want to fetch or refresh data manually, use the ",[2854,5956,4575],{},[2854,5958,4571],{}," function provided by the composables.",[2968,5961,5962],{"language":2970,"meta":4876,"class":2972},[2854,5963,5964,3011,5980,3011,6009,3011,6017,3011,6019,3011,6027,3011,6035,3011,6053,3011,6070,3011,6073,3011,6081,3011,6089],{"class":2975},[2977,5965,5966,5968,2991,5970,2991,5972,5974,5976,5978],{"class":2979,"style":2980},[2977,5967,2985],{"class":2983,"style":2984},[2977,5969,2990],{"class":2988,"style":2989},[2977,5971,2996],{"class":2994,"style":2995},[2977,5973,2999],{"class":2994,"style":2995},[2977,5975,3002],{"class":2983,"style":2984},[2977,5977,3007],{"class":3005,"style":3006},[2977,5979,3010],{"class":2983,"style":2984},[2977,5981,5982,2991,5984,3877,5986,5988,5989,5991,5992,5994,5995,2991,5997,2991,5999,2991,6001,6003,6005,6007],{"class":2979,"style":2980},[2977,5983,3018],{"class":3016,"style":3017},[2977,5985,3023],{"class":3021,"style":3022},[2977,5987,3084],{"class":2983,"style":2984}," error",[2977,5990,3084],{"class":2983,"style":2984}," execute",[2977,5993,3084],{"class":2983,"style":2984}," refresh ",[2977,5996,3027],{"class":3021,"style":3022},[2977,5998,3002],{"class":2983,"style":2984},[2977,6000,3032],{"class":3016,"style":3017},[2977,6002,576],{"class":3035,"style":3036},[2977,6004,3039],{"class":3021,"style":3022},[2977,6006,5479],{"class":3005,"style":3006},[2977,6008,3045],{"class":3021,"style":3022},[2977,6010,6011,6013,6015],{"class":2979,"style":2980},[2977,6012,3134],{"class":2983,"style":2984},[2977,6014,2990],{"class":2988,"style":2989},[2977,6016,3010],{"class":2983,"style":2984},[2977,6018],{"class":2979,"style":2980},[2977,6020,6021,6023,6025],{"class":2979,"style":2980},[2977,6022,2985],{"class":2983,"style":2984},[2977,6024,3147],{"class":2988,"style":2989},[2977,6026,3010],{"class":2983,"style":2984},[2977,6028,3067,6029,6031,6033],{"class":2979,"style":2980},[2977,6030,2985],{"class":2983,"style":2984},[2977,6032,3156],{"class":2988,"style":2989},[2977,6034,3010],{"class":2983,"style":2984},[2977,6036,3115,6037,6039,6041,6043,3024,6045,6047,6049,6051],{"class":2979,"style":2980},[2977,6038,2985],{"class":2983,"style":2984},[2977,6040,2850],{"class":2988,"style":2989},[2977,6042,3010],{"class":2983,"style":2984},[2977,6044,3925],{"class":2983,"style":2984},[2977,6046,3928],{"class":2983,"style":2984},[2977,6048,3134],{"class":2983,"style":2984},[2977,6050,2850],{"class":2988,"style":2989},[2977,6052,3010],{"class":2983,"style":2984},[2977,6054,3115,6055,6057,2991,6060,6063,6065,6068],{"class":2979,"style":2980},[2977,6056,2985],{"class":2983,"style":2984},[2977,6058,6059],{"class":2988,"style":2989},"button",[2977,6061,6062],{"class":3016,"style":3017},"@click",[2977,6064,3002],{"class":2983,"style":2984},[2977,6066,6067],{"class":3005,"style":3006},"\"() => refresh()\"",[2977,6069,3010],{"class":2983,"style":2984},[2977,6071,6072],{"class":2979,"style":2980},"      Refresh data",[2977,6074,3115,6075,6077,6079],{"class":2979,"style":2980},[2977,6076,3134],{"class":2983,"style":2984},[2977,6078,6059],{"class":2988,"style":2989},[2977,6080,3010],{"class":2983,"style":2984},[2977,6082,3067,6083,6085,6087],{"class":2979,"style":2980},[2977,6084,3134],{"class":2983,"style":2984},[2977,6086,3156],{"class":2988,"style":2989},[2977,6088,3010],{"class":2983,"style":2984},[2977,6090,6091,6093,6095],{"class":2979,"style":2980},[2977,6092,3134],{"class":2983,"style":2984},[2977,6094,3147],{"class":2988,"style":2989},[2977,6096,3010],{"class":2983,"style":2984},[2850,6098,2931,6099,6101,6102,6104,6105,2865],{},[2854,6100,4575],{}," function is an alias for ",[2854,6103,4571],{}," that works in exactly the same way but is more semantic for cases when the fetch is ",[2858,6106,6108],{"href":6107},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fdata-fetching#not-immediate","not immediate",[2955,6110,6111,6112,2862,6116,2865],{},"To globally refetch or invalidate cached data, see ",[2858,6113,6114],{"href":1668},[2854,6115,726],{},[2858,6117,6118],{"href":1704},[2854,6119,816],{},[5319,6121,2799],{"id":2798},[2850,6123,6124,6125,6127,6128,5959],{},"If you want to clear the data provided, for whatever reason, without needing to know the specific key to pass to ",[2854,6126,726],{},", you can use the ",[2854,6129,4585],{},[2968,6131,6132],{"language":2970,"meta":4876,"class":2972},[2854,6133,6134,3011,6150,3011,6173,3011,6175,3011,6188,3011,6214,3011,6232,3011,6240,3011,6244,3011,6250],{"class":2975},[2977,6135,6136,6138,2991,6140,2991,6142,6144,6146,6148],{"class":2979,"style":2980},[2977,6137,2985],{"class":2983,"style":2984},[2977,6139,2990],{"class":2988,"style":2989},[2977,6141,2996],{"class":2994,"style":2995},[2977,6143,2999],{"class":2994,"style":2995},[2977,6145,3002],{"class":2983,"style":2984},[2977,6147,3007],{"class":3005,"style":3006},[2977,6149,3010],{"class":2983,"style":2984},[2977,6151,6152,2991,6154,3877,6156,6158,6159,2991,6161,2991,6163,2991,6165,6167,6169,6171],{"class":2979,"style":2980},[2977,6153,3018],{"class":3016,"style":3017},[2977,6155,3023],{"class":3021,"style":3022},[2977,6157,3084],{"class":2983,"style":2984}," clear ",[2977,6160,3027],{"class":3021,"style":3022},[2977,6162,3002],{"class":2983,"style":2984},[2977,6164,3032],{"class":3016,"style":3017},[2977,6166,576],{"class":3035,"style":3036},[2977,6168,3039],{"class":3021,"style":3022},[2977,6170,5479],{"class":3005,"style":3006},[2977,6172,3045],{"class":3021,"style":3022},[2977,6174],{"class":2979,"style":2980},[2977,6176,6177,6179,6180,2991,6182,6184,6186],{"class":2979,"style":2980},[2977,6178,3018],{"class":3016,"style":3017}," route ",[2977,6181,3002],{"class":2983,"style":2984},[2977,6183,656],{"class":3035,"style":3036},[2977,6185,3039],{"class":3021,"style":3022},[2977,6187,3045],{"class":3021,"style":3022},[2977,6189,6190,6192,6194,6196,2991,6198,6200,6201,6203,6204,2991,6206,6203,6208,2991,6210,2991,6212],{"class":2979,"style":2980},[2977,6191,5590],{"class":3035,"style":3036},[2977,6193,3039],{"class":3021,"style":3022},[2977,6195,3039],{"class":3021,"style":3022},[2977,6197,3045],{"class":3021,"style":3022},[2977,6199,3662],{"class":3016,"style":3017}," route",[2977,6202,2865],{"class":2983,"style":2984},"path",[2977,6205,3084],{"class":2983,"style":2984},[2977,6207,3039],{"class":3021,"style":3022},[2977,6209,3045],{"class":3021,"style":3022},[2977,6211,3662],{"class":3016,"style":3017},[2977,6213,3023],{"class":3021,"style":3022},[2977,6215,3067,6216,2991,6219,6221,6222,2991,6225,6228,2991,6230],{"class":2979,"style":2980},[2977,6217,6218],{"class":3016,"style":3017},"if",[2977,6220,3039],{"class":3021,"style":3022},"path ",[2977,6223,6224],{"class":2983,"style":2984},"===",[2977,6226,6227],{"class":3005,"style":3006},"'\u002F'",[2977,6229,3045],{"class":3021,"style":3022},[2977,6231,3023],{"class":3021,"style":3022},[2977,6233,3115,6234,6236,6238],{"class":2979,"style":2980},[2977,6235,4585],{"class":3035,"style":3036},[2977,6237,3039],{"class":3021,"style":3022},[2977,6239,3045],{"class":3021,"style":3022},[2977,6241,3067,6242],{"class":2979,"style":2980},[2977,6243,3027],{"class":3021,"style":3022},[2977,6245,6246,6248],{"class":2979,"style":2980},[2977,6247,3027],{"class":3021,"style":3022},[2977,6249,3045],{"class":3021,"style":3022},[2977,6251,6252,6254,6256],{"class":2979,"style":2980},[2977,6253,3134],{"class":2983,"style":2984},[2977,6255,2990],{"class":2988,"style":2989},[2977,6257,3010],{"class":2983,"style":2984},[5319,6259,2802],{"id":2801},[2850,6261,6262,6263,6265,6266,6269],{},"To re-run your fetching function each time other reactive values in your application change, use the ",[2854,6264,5590],{}," option. You can use it for one or multiple ",[3304,6267,6268],{},"watchable"," elements.",[2968,6271,6272],{"language":2970,"meta":4876,"class":2972},[2854,6273,6274,3011,6290,3011,6307,3011,6309,3011,6335,3011,6340,3011,6351,3011,6357],{"class":2975},[2977,6275,6276,6278,2991,6280,2991,6282,6284,6286,6288],{"class":2979,"style":2980},[2977,6277,2985],{"class":2983,"style":2984},[2977,6279,2990],{"class":2988,"style":2989},[2977,6281,2996],{"class":2994,"style":2995},[2977,6283,2999],{"class":2994,"style":2995},[2977,6285,3002],{"class":2983,"style":2984},[2977,6287,3007],{"class":3005,"style":3006},[2977,6289,3010],{"class":2983,"style":2984},[2977,6291,6292,4183,6294,2991,6296,6298,6300,6305],{"class":2979,"style":2980},[2977,6293,3018],{"class":3016,"style":3017},[2977,6295,3002],{"class":2983,"style":2984},[2977,6297,5850],{"class":3035,"style":3036},[2977,6299,3039],{"class":3021,"style":3022},[2977,6301,6304],{"class":6302,"style":6303},"shj-syn-num shj-num","color:#F76D47;--shiki-dark:#F78C6C","1",[2977,6306,3045],{"class":3021,"style":3022},[2977,6308],{"class":2979,"style":2980},[2977,6310,6311,2991,6313,3877,6315,5988,6317,5994,6319,2991,6321,2991,6323,2991,6325,6327,6329,6331,2991,6333],{"class":2979,"style":2980},[2977,6312,3018],{"class":3016,"style":3017},[2977,6314,3023],{"class":3021,"style":3022},[2977,6316,3084],{"class":2983,"style":2984},[2977,6318,3084],{"class":2983,"style":2984},[2977,6320,3027],{"class":3021,"style":3022},[2977,6322,3002],{"class":2983,"style":2984},[2977,6324,3032],{"class":3016,"style":3017},[2977,6326,576],{"class":3035,"style":3036},[2977,6328,3039],{"class":3021,"style":3022},[2977,6330,5479],{"class":3005,"style":3006},[2977,6332,3084],{"class":2983,"style":2984},[2977,6334,3023],{"class":3021,"style":3022},[2977,6336,3067,6337],{"class":2979,"style":2980},[2977,6338,6339],{"class":3110,"style":3111},"\u002F* Changing the id will trigger a refetch *\u002F",[2977,6341,6342,6343,2991,6345,4223,6347,6349],{"class":2979,"style":2980},"  watch",[2977,6344,3092],{"class":2983,"style":2984},[2977,6346,3723],{"class":3021,"style":3022},[2977,6348,3729],{"class":3021,"style":3022},[2977,6350,3084],{"class":2983,"style":2984},[2977,6352,6353,6355],{"class":2979,"style":2980},[2977,6354,3027],{"class":3021,"style":3022},[2977,6356,3045],{"class":3021,"style":3022},[2977,6358,6359,6361,6363],{"class":2979,"style":2980},[2977,6360,3134],{"class":2983,"style":2984},[2977,6362,2990],{"class":2988,"style":2989},[2977,6364,3010],{"class":2983,"style":2984},[2850,6366,6367,6368,6371],{},"Note that ",[2964,6369,6370],{},"watching a reactive value won't change the URL fetched",". For example, this will keep fetching the same initial ID of the user because the URL is constructed at the moment the function is invoked.",[2968,6373,6374],{"language":2970,"class":2972},[2854,6375,6376,3011,6392,3011,6406,3011,6408,3011,6443,3011,6453,3011,6459],{"class":2975},[2977,6377,6378,6380,2991,6382,2991,6384,6386,6388,6390],{"class":2979,"style":2980},[2977,6379,2985],{"class":2983,"style":2984},[2977,6381,2990],{"class":2988,"style":2989},[2977,6383,2996],{"class":2994,"style":2995},[2977,6385,2999],{"class":2994,"style":2995},[2977,6387,3002],{"class":2983,"style":2984},[2977,6389,3007],{"class":3005,"style":3006},[2977,6391,3010],{"class":2983,"style":2984},[2977,6393,6394,4183,6396,2991,6398,6400,6402,6404],{"class":2979,"style":2980},[2977,6395,3018],{"class":3016,"style":3017},[2977,6397,3002],{"class":2983,"style":2984},[2977,6399,5850],{"class":3035,"style":3036},[2977,6401,3039],{"class":3021,"style":3022},[2977,6403,6304],{"class":6302,"style":6303},[2977,6405,3045],{"class":3021,"style":3022},[2977,6407],{"class":2979,"style":2980},[2977,6409,6410,2991,6412,3877,6414,5988,6416,5994,6418,2991,6420,2991,6422,2991,6424,6426,6428,6431,4223,6433,5896,6435,6437,6439,2991,6441],{"class":2979,"style":2980},[2977,6411,3018],{"class":3016,"style":3017},[2977,6413,3023],{"class":3021,"style":3022},[2977,6415,3084],{"class":2983,"style":2984},[2977,6417,3084],{"class":2983,"style":2984},[2977,6419,3027],{"class":3021,"style":3022},[2977,6421,3002],{"class":2983,"style":2984},[2977,6423,3032],{"class":3016,"style":3017},[2977,6425,576],{"class":3035,"style":3036},[2977,6427,3039],{"class":3021,"style":3022},[2977,6429,6430],{"class":3005,"style":3006},"`\u002Fapi\u002Fusers\u002F",[2977,6432,4222],{"class":3016,"style":3017},[2977,6434,2865],{"class":2983,"style":2984},[2977,6436,3027],{"class":3016,"style":3017},[2977,6438,4228],{"class":3005,"style":3006},[2977,6440,3084],{"class":2983,"style":2984},[2977,6442,3023],{"class":3021,"style":3022},[2977,6444,6342,6445,2991,6447,4223,6449,6451],{"class":2979,"style":2980},[2977,6446,3092],{"class":2983,"style":2984},[2977,6448,3723],{"class":3021,"style":3022},[2977,6450,3729],{"class":3021,"style":3022},[2977,6452,3084],{"class":2983,"style":2984},[2977,6454,6455,6457],{"class":2979,"style":2980},[2977,6456,3027],{"class":3021,"style":3022},[2977,6458,3045],{"class":3021,"style":3022},[2977,6460,6461,6463,6465],{"class":2979,"style":2980},[2977,6462,3134],{"class":2983,"style":2984},[2977,6464,2990],{"class":2988,"style":2989},[2977,6466,3010],{"class":2983,"style":2984},[2850,6468,6469,6470,6474],{},"If you need to change the URL based on a reactive value, you may want to use a ",[2858,6471,6473],{"href":6472},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fdata-fetching#computed-url","computed URL"," instead.",[2850,6476,6477,6478,2865],{},"When reactive fetch options are provided, they'll be automatically watched and trigger refetches. In some cases, it can be useful to opt-out of this behavior by specifying ",[2854,6479,6480],{},"watch: false",[2968,6482,6483],{"language":3636,"class":3637},[2854,6484,6485,3011,6499,3011,6501,3011,6506,3011,6531,3011,6545,3011,6556,3011,6562,3011,6564,3011,6569],{"class":3640},[2977,6486,6487,4183,6489,2991,6491,6493,6495,6497],{"class":2979,"style":2980},[2977,6488,3018],{"class":3016,"style":3017},[2977,6490,3002],{"class":2983,"style":2984},[2977,6492,5850],{"class":3035,"style":3036},[2977,6494,3039],{"class":3021,"style":3022},[2977,6496,6304],{"class":6302,"style":6303},[2977,6498,3045],{"class":3021,"style":3022},[2977,6500],{"class":2979,"style":2980},[2977,6502,6503],{"class":2979,"style":2980},[2977,6504,6505],{"class":3110,"style":3111},"\u002F\u002F Won't automatically refetch when id changes",[2977,6507,6508,2991,6510,3877,6512,6514,6515,2991,6517,2991,6519,2991,6521,6523,6525,6527,2991,6529],{"class":2979,"style":2980},[2977,6509,3018],{"class":3016,"style":3017},[2977,6511,3023],{"class":3021,"style":3022},[2977,6513,3084],{"class":2983,"style":2984}," execute ",[2977,6516,3027],{"class":3021,"style":3022},[2977,6518,3002],{"class":2983,"style":2984},[2977,6520,3032],{"class":3016,"style":3017},[2977,6522,576],{"class":3035,"style":3036},[2977,6524,3039],{"class":3021,"style":3022},[2977,6526,5479],{"class":3005,"style":3006},[2977,6528,3084],{"class":2983,"style":2984},[2977,6530,3023],{"class":3021,"style":3022},[2977,6532,6533,6534,2991,6536,4183,6538,6540,2991,6542],{"class":2979,"style":2980},"  query",[2977,6535,3092],{"class":2983,"style":2984},[2977,6537,3023],{"class":3021,"style":3022},[2977,6539,3027],{"class":3021,"style":3022},[2977,6541,3084],{"class":2983,"style":2984},[2977,6543,6544],{"class":3110,"style":3111},"\u002F\u002F id is watched by default",[2977,6546,6342,6547,2991,6549,6551,2991,6553],{"class":2979,"style":2980},[2977,6548,3092],{"class":2983,"style":2984},[2977,6550,4948],{"class":4749,"style":4750},[2977,6552,3084],{"class":2983,"style":2984},[2977,6554,6555],{"class":3110,"style":3111},"\u002F\u002F disables automatic watching of id",[2977,6557,6558,6560],{"class":2979,"style":2980},[2977,6559,3027],{"class":3021,"style":3022},[2977,6561,3045],{"class":3021,"style":3022},[2977,6563],{"class":2979,"style":2980},[2977,6565,6566],{"class":2979,"style":2980},[2977,6567,6568],{"class":3110,"style":3111},"\u002F\u002F doesn't trigger refetch",[2977,6570,4223,6571,5944,6573,2991,6575],{"class":2979,"style":2980},[2977,6572,2865],{"class":2983,"style":2984},[2977,6574,3002],{"class":2983,"style":2984},[2977,6576,6577],{"class":6302,"style":6303},"2",[5319,6579,2805],{"id":2804},[2850,6581,6582],{},"Sometimes you may need to compute a URL from reactive values, and refresh the data each time these change. Instead of juggling your way around, you can attach each param as a reactive value. Nuxt will automatically use the reactive value and re-fetch each time it changes.",[2968,6584,6585],{"language":2970,"class":2972},[2854,6586,6587,3011,6603,3011,6618,3011,6620,3011,6643,3011,6649,3011,6657,3011,6663,3011,6669],{"class":2975},[2977,6588,6589,6591,2991,6593,2991,6595,6597,6599,6601],{"class":2979,"style":2980},[2977,6590,2985],{"class":2983,"style":2984},[2977,6592,2990],{"class":2988,"style":2989},[2977,6594,2996],{"class":2994,"style":2995},[2977,6596,2999],{"class":2994,"style":2995},[2977,6598,3002],{"class":2983,"style":2984},[2977,6600,3007],{"class":3005,"style":3006},[2977,6602,3010],{"class":2983,"style":2984},[2977,6604,6605,4183,6607,2991,6609,6611,6613,6616],{"class":2979,"style":2980},[2977,6606,3018],{"class":3016,"style":3017},[2977,6608,3002],{"class":2983,"style":2984},[2977,6610,5850],{"class":3035,"style":3036},[2977,6612,3039],{"class":3021,"style":3022},[2977,6614,6615],{"class":6302,"style":6303},"null",[2977,6617,3045],{"class":3021,"style":3022},[2977,6619],{"class":2979,"style":2980},[2977,6621,6622,2991,6624,3877,6626,4310,6628,2991,6630,2991,6632,6634,6636,6639,2991,6641],{"class":2979,"style":2980},[2977,6623,3018],{"class":3016,"style":3017},[2977,6625,3023],{"class":3021,"style":3022},[2977,6627,3084],{"class":2983,"style":2984},[2977,6629,3027],{"class":3021,"style":3022},[2977,6631,3002],{"class":2983,"style":2984},[2977,6633,601],{"class":3035,"style":3036},[2977,6635,3039],{"class":3021,"style":3022},[2977,6637,6638],{"class":3005,"style":3006},"'\u002Fapi\u002Fuser'",[2977,6640,3084],{"class":2983,"style":2984},[2977,6642,3023],{"class":3021,"style":3022},[2977,6644,6533,6645,2991,6647],{"class":2979,"style":2980},[2977,6646,3092],{"class":2983,"style":2984},[2977,6648,3023],{"class":3021,"style":3022},[2977,6650,6651,6652,6654,6655],{"class":2979,"style":2980},"    user_id",[2977,6653,3092],{"class":2983,"style":2984}," id",[2977,6656,3084],{"class":2983,"style":2984},[2977,6658,3067,6659,6661],{"class":2979,"style":2980},[2977,6660,3027],{"class":3021,"style":3022},[2977,6662,3084],{"class":2983,"style":2984},[2977,6664,6665,6667],{"class":2979,"style":2980},[2977,6666,3027],{"class":3021,"style":3022},[2977,6668,3045],{"class":3021,"style":3022},[2977,6670,6671,6673,6675],{"class":2979,"style":2980},[2977,6672,3134],{"class":2983,"style":2984},[2977,6674,2990],{"class":2988,"style":2989},[2977,6676,3010],{"class":2983,"style":2984},[2850,6678,6679,6680,6684],{},"In the case of more complex URL construction, you may use a callback as a ",[2858,6681,6683],{"href":6682},"https:\u002F\u002Fvuejs.org\u002Fguide\u002Fessentials\u002Fcomputed","computed getter"," that returns the URL string.",[2850,6686,6687,6688,6691],{},"Every time a dependency changes, the data will be fetched using the newly constructed URL. Combine this with ",[2858,6689,6690],{"href":6107},"not-immediate",", and you can wait until the reactive element changes before fetching.",[2968,6693,6694],{"language":2970,"class":2972},[2854,6695,6696,3011,6712,3011,6726,3011,6728,3011,6764,3011,6773,3011,6779,3011,6787,3011,6789,3011,6797,3011,6805,3011,6810,3011,6817,3011,6827,3011,6837,3011,6846,3011,6850,3011,6852,3011,6867,3011,6870,3011,6878,3011,6880,3011,6895,3011,6898,3011,6906,3011,6908,3011,6918,3011,6924,3011,6932,3011,6940],{"class":2975},[2977,6697,6698,6700,2991,6702,2991,6704,6706,6708,6710],{"class":2979,"style":2980},[2977,6699,2985],{"class":2983,"style":2984},[2977,6701,2990],{"class":2988,"style":2989},[2977,6703,2996],{"class":2994,"style":2995},[2977,6705,2999],{"class":2994,"style":2995},[2977,6707,3002],{"class":2983,"style":2984},[2977,6709,3007],{"class":3005,"style":3006},[2977,6711,3010],{"class":2983,"style":2984},[2977,6713,6714,4183,6716,2991,6718,6720,6722,6724],{"class":2979,"style":2980},[2977,6715,3018],{"class":3016,"style":3017},[2977,6717,3002],{"class":2983,"style":2984},[2977,6719,5850],{"class":3035,"style":3036},[2977,6721,3039],{"class":3021,"style":3022},[2977,6723,6615],{"class":6302,"style":6303},[2977,6725,3045],{"class":3021,"style":3022},[2977,6727],{"class":2979,"style":2980},[2977,6729,6730,2991,6732,3877,6734,4310,6736,2991,6738,2991,6740,6742,6744,6746,2991,6748,2991,6750,6752,4223,6754,5896,6756,6758,6760,2991,6762],{"class":2979,"style":2980},[2977,6731,3018],{"class":3016,"style":3017},[2977,6733,3023],{"class":3021,"style":3022},[2977,6735,3084],{"class":2983,"style":2984},[2977,6737,3027],{"class":3021,"style":3022},[2977,6739,3002],{"class":2983,"style":2984},[2977,6741,601],{"class":3035,"style":3036},[2977,6743,3039],{"class":3021,"style":3022},[2977,6745,3039],{"class":3021,"style":3022},[2977,6747,3045],{"class":3021,"style":3022},[2977,6749,3662],{"class":3016,"style":3017},[2977,6751,6430],{"class":3005,"style":3006},[2977,6753,4222],{"class":3016,"style":3017},[2977,6755,2865],{"class":2983,"style":2984},[2977,6757,3027],{"class":3016,"style":3017},[2977,6759,4228],{"class":3005,"style":3006},[2977,6761,3084],{"class":2983,"style":2984},[2977,6763,3023],{"class":3021,"style":3022},[2977,6765,6766,6767,2991,6769,6771],{"class":2979,"style":2980},"  immediate",[2977,6768,3092],{"class":2983,"style":2984},[2977,6770,4948],{"class":4749,"style":4750},[2977,6772,3084],{"class":2983,"style":2984},[2977,6774,6775,6777],{"class":2979,"style":2980},[2977,6776,3027],{"class":3021,"style":3022},[2977,6778,3045],{"class":3021,"style":3022},[2977,6780,6781,6783,6785],{"class":2979,"style":2980},[2977,6782,3134],{"class":2983,"style":2984},[2977,6784,2990],{"class":2988,"style":2989},[2977,6786,3010],{"class":2983,"style":2984},[2977,6788],{"class":2979,"style":2980},[2977,6790,6791,6793,6795],{"class":2979,"style":2980},[2977,6792,2985],{"class":2983,"style":2984},[2977,6794,3147],{"class":2988,"style":2989},[2977,6796,3010],{"class":2983,"style":2984},[2977,6798,3067,6799,6801,6803],{"class":2979,"style":2980},[2977,6800,2985],{"class":2983,"style":2984},[2977,6802,3156],{"class":2988,"style":2989},[2977,6804,3010],{"class":2983,"style":2984},[2977,6806,3115,6807],{"class":2979,"style":2980},[2977,6808,6809],{"class":3110,"style":3111},"\u003C!-- disable the input while fetching -->",[2977,6811,3115,6812,6814],{"class":2979,"style":2980},[2977,6813,2985],{"class":2983,"style":2984},[2977,6815,6816],{"class":2988,"style":2989},"input",[2977,6818,3107,6819,6822,6824],{"class":2979,"style":2980},[2977,6820,6821],{"class":3016,"style":3017},"v-model",[2977,6823,3002],{"class":2983,"style":2984},[2977,6825,6826],{"class":3005,"style":3006},"\"id\"",[2977,6828,3107,6829,6832,6834],{"class":2979,"style":2980},[2977,6830,6831],{"class":2994,"style":2995},"type",[2977,6833,3002],{"class":2983,"style":2984},[2977,6835,6836],{"class":3005,"style":3006},"\"number\"",[2977,6838,3107,6839,6842,6844],{"class":2979,"style":2980},[2977,6840,6841],{"class":3016,"style":3017},":disabled",[2977,6843,3002],{"class":2983,"style":2984},[2977,6845,4795],{"class":3005,"style":3006},[2977,6847,3115,6848],{"class":2979,"style":2980},[2977,6849,3010],{"class":2983,"style":2984},[2977,6851],{"class":2979,"style":2980},[2977,6853,3115,6854,6856,2991,6858,6860,6862,6865],{"class":2979,"style":2980},[2977,6855,2985],{"class":2983,"style":2984},[2977,6857,3156],{"class":2988,"style":2989},[2977,6859,3159],{"class":3016,"style":3017},[2977,6861,3002],{"class":2983,"style":2984},[2977,6863,6864],{"class":3005,"style":3006},"\"status === 'idle'\"",[2977,6866,3010],{"class":2983,"style":2984},[2977,6868,6869],{"class":2979,"style":2980},"      Type a user ID",[2977,6871,3115,6872,6874,6876],{"class":2979,"style":2980},[2977,6873,3134],{"class":2983,"style":2984},[2977,6875,3156],{"class":2988,"style":2989},[2977,6877,3010],{"class":2983,"style":2984},[2977,6879],{"class":2979,"style":2980},[2977,6881,3115,6882,6884,2991,6886,6889,6891,6893],{"class":2979,"style":2980},[2977,6883,2985],{"class":2983,"style":2984},[2977,6885,3156],{"class":2988,"style":2989},[2977,6887,6888],{"class":3016,"style":3017},"v-else-if",[2977,6890,3002],{"class":2983,"style":2984},[2977,6892,4795],{"class":3005,"style":3006},[2977,6894,3010],{"class":2983,"style":2984},[2977,6896,6897],{"class":2979,"style":2980},"      Loading ...",[2977,6899,3115,6900,6902,6904],{"class":2979,"style":2980},[2977,6901,3134],{"class":2983,"style":2984},[2977,6903,3156],{"class":2988,"style":2989},[2977,6905,3010],{"class":2983,"style":2984},[2977,6907],{"class":2979,"style":2980},[2977,6909,3115,6910,6912,2991,6914,6916],{"class":2979,"style":2980},[2977,6911,2985],{"class":2983,"style":2984},[2977,6913,3156],{"class":2988,"style":2989},[2977,6915,3186],{"class":3016,"style":3017},[2977,6917,3010],{"class":2983,"style":2984},[2977,6919,3107,6920,3024,6922],{"class":2979,"style":2980},[2977,6921,3925],{"class":2983,"style":2984},[2977,6923,3928],{"class":2983,"style":2984},[2977,6925,3115,6926,6928,6930],{"class":2979,"style":2980},[2977,6927,3134],{"class":2983,"style":2984},[2977,6929,3156],{"class":2988,"style":2989},[2977,6931,3010],{"class":2983,"style":2984},[2977,6933,3067,6934,6936,6938],{"class":2979,"style":2980},[2977,6935,3134],{"class":2983,"style":2984},[2977,6937,3156],{"class":2988,"style":2989},[2977,6939,3010],{"class":2983,"style":2984},[2977,6941,6942,6944,6946],{"class":2979,"style":2980},[2977,6943,3134],{"class":2983,"style":2984},[2977,6945,3147],{"class":2988,"style":2989},[2977,6947,3010],{"class":2983,"style":2984},[2850,6949,6950,6951,2865],{},"If you need to force a refresh when other reactive values change, you can also ",[2858,6952,6954],{"href":6953},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fdata-fetching#watch","watch other values",[3245,6956,2808],{"id":2807},[2850,6958,2931,6959,6961,6962,6965],{},[2854,6960,576],{}," composable will start fetching data the moment it is invoked. You may prevent this by setting ",[2854,6963,6964],{},"immediate: false",", for example, to wait for user interaction.",[2850,6967,6968,6969,6971,6972,6974],{},"With that, you will need both the ",[2854,6970,3344],{}," to handle the fetch lifecycle, and ",[2854,6973,4575],{}," to start the data fetch.",[2968,6976,6977],{"language":2970,"class":2972},[2854,6978,6979,3011,6995,3011,7023,3011,7031,3011,7037,3011,7045,3011,7047,3011,7055,3011,7069,3011,7084,3011,7087,3011,7095,3011,7103,3011,7105,3011,7119,3011,7122,3011,7130,3011,7132,3011,7142,3011,7148,3011,7156],{"class":2975},[2977,6980,6981,6983,2991,6985,2991,6987,6989,6991,6993],{"class":2979,"style":2980},[2977,6982,2985],{"class":2983,"style":2984},[2977,6984,2990],{"class":2988,"style":2989},[2977,6986,2996],{"class":2994,"style":2995},[2977,6988,2999],{"class":2994,"style":2995},[2977,6990,3002],{"class":2983,"style":2984},[2977,6992,3007],{"class":3005,"style":3006},[2977,6994,3010],{"class":2983,"style":2984},[2977,6996,6997,2991,6999,3877,7001,5988,7003,5991,7005,4310,7007,2991,7009,2991,7011,2991,7013,7015,7017,7019,2991,7021],{"class":2979,"style":2980},[2977,6998,3018],{"class":3016,"style":3017},[2977,7000,3023],{"class":3021,"style":3022},[2977,7002,3084],{"class":2983,"style":2984},[2977,7004,3084],{"class":2983,"style":2984},[2977,7006,3084],{"class":2983,"style":2984},[2977,7008,3027],{"class":3021,"style":3022},[2977,7010,3002],{"class":2983,"style":2984},[2977,7012,3032],{"class":3016,"style":3017},[2977,7014,601],{"class":3035,"style":3036},[2977,7016,3039],{"class":3021,"style":3022},[2977,7018,5011],{"class":3005,"style":3006},[2977,7020,3084],{"class":2983,"style":2984},[2977,7022,3023],{"class":3021,"style":3022},[2977,7024,6766,7025,2991,7027,7029],{"class":2979,"style":2980},[2977,7026,3092],{"class":2983,"style":2984},[2977,7028,4948],{"class":4749,"style":4750},[2977,7030,3084],{"class":2983,"style":2984},[2977,7032,7033,7035],{"class":2979,"style":2980},[2977,7034,3027],{"class":3021,"style":3022},[2977,7036,3045],{"class":3021,"style":3022},[2977,7038,7039,7041,7043],{"class":2979,"style":2980},[2977,7040,3134],{"class":2983,"style":2984},[2977,7042,2990],{"class":2988,"style":2989},[2977,7044,3010],{"class":2983,"style":2984},[2977,7046],{"class":2979,"style":2980},[2977,7048,7049,7051,7053],{"class":2979,"style":2980},[2977,7050,2985],{"class":2983,"style":2984},[2977,7052,3147],{"class":2988,"style":2989},[2977,7054,3010],{"class":2983,"style":2984},[2977,7056,3067,7057,7059,2991,7061,7063,7065,7067],{"class":2979,"style":2980},[2977,7058,2985],{"class":2983,"style":2984},[2977,7060,3156],{"class":2988,"style":2989},[2977,7062,3159],{"class":3016,"style":3017},[2977,7064,3002],{"class":2983,"style":2984},[2977,7066,6864],{"class":3005,"style":3006},[2977,7068,3010],{"class":2983,"style":2984},[2977,7070,3115,7071,7073,2991,7075,7077,7079,7082],{"class":2979,"style":2980},[2977,7072,2985],{"class":2983,"style":2984},[2977,7074,6059],{"class":2988,"style":2989},[2977,7076,6062],{"class":3016,"style":3017},[2977,7078,3002],{"class":2983,"style":2984},[2977,7080,7081],{"class":3005,"style":3006},"\"execute\"",[2977,7083,3010],{"class":2983,"style":2984},[2977,7085,7086],{"class":2979,"style":2980},"      Get data",[2977,7088,3115,7089,7091,7093],{"class":2979,"style":2980},[2977,7090,3134],{"class":2983,"style":2984},[2977,7092,6059],{"class":2988,"style":2989},[2977,7094,3010],{"class":2983,"style":2984},[2977,7096,3067,7097,7099,7101],{"class":2979,"style":2980},[2977,7098,3134],{"class":2983,"style":2984},[2977,7100,3156],{"class":2988,"style":2989},[2977,7102,3010],{"class":2983,"style":2984},[2977,7104],{"class":2979,"style":2980},[2977,7106,3067,7107,7109,2991,7111,7113,7115,7117],{"class":2979,"style":2980},[2977,7108,2985],{"class":2983,"style":2984},[2977,7110,3156],{"class":2988,"style":2989},[2977,7112,6888],{"class":3016,"style":3017},[2977,7114,3002],{"class":2983,"style":2984},[2977,7116,4795],{"class":3005,"style":3006},[2977,7118,3010],{"class":2983,"style":2984},[2977,7120,7121],{"class":2979,"style":2980},"    Loading comments...",[2977,7123,3067,7124,7126,7128],{"class":2979,"style":2980},[2977,7125,3134],{"class":2983,"style":2984},[2977,7127,3156],{"class":2988,"style":2989},[2977,7129,3010],{"class":2983,"style":2984},[2977,7131],{"class":2979,"style":2980},[2977,7133,3067,7134,7136,2991,7138,7140],{"class":2979,"style":2980},[2977,7135,2985],{"class":2983,"style":2984},[2977,7137,3156],{"class":2988,"style":2989},[2977,7139,3186],{"class":3016,"style":3017},[2977,7141,3010],{"class":2983,"style":2984},[2977,7143,3115,7144,3024,7146],{"class":2979,"style":2980},[2977,7145,3925],{"class":2983,"style":2984},[2977,7147,3928],{"class":2983,"style":2984},[2977,7149,3067,7150,7152,7154],{"class":2979,"style":2980},[2977,7151,3134],{"class":2983,"style":2984},[2977,7153,3156],{"class":2988,"style":2989},[2977,7155,3010],{"class":2983,"style":2984},[2977,7157,7158,7160,7162],{"class":2979,"style":2980},[2977,7159,3134],{"class":2983,"style":2984},[2977,7161,3147],{"class":2988,"style":2989},[2977,7163,3010],{"class":2983,"style":2984},[2850,7165,7166,7167,7169],{},"For finer control, the ",[2854,7168,3344],{}," variable can be:",[2870,7171,7172,7177,7183,7188],{},[2873,7173,7174,7176],{},[2854,7175,4607],{}," when the fetch hasn't started",[2873,7178,7179,7182],{},[2854,7180,7181],{},"pending"," when a fetch has started but not yet completed",[2873,7184,7185,7187],{},[2854,7186,3347],{}," when the fetch fails",[2873,7189,7190,7193],{},[2854,7191,7192],{},"success"," when the fetch is completed successfully",[2913,7195,2811],{"id":2810},[2850,7197,7198,7199,7201,7202,7204],{},"When we call ",[2854,7200,702],{}," in the browser, user headers like ",[2854,7203,3686],{}," will be directly sent to the API.",[2850,7206,7207,7208,7210],{},"Normally, during server-side-rendering, due to security considerations, the ",[2854,7209,702],{}," wouldn't include the user's browser cookies, nor pass on cookies from the fetch response.",[2850,7212,7213,7214,7216,7217,7221,7222,3584],{},"However, when calling ",[2854,7215,576],{}," with a relative URL on the server, Nuxt will use ",[2858,7218,7219],{"href":1629},[2854,7220,631],{}," to proxy headers and cookies (with the exception of headers not meant to be forwarded, like ",[2854,7223,3583],{},[3245,7225,2815],{"id":2814},[2850,7227,7228],{},"If you want to pass on\u002Fproxy cookies in the other direction, from an internal request back to the client, you will need to handle this yourself.",[2968,7230,7232],{"language":3636,"filename":7231,"class":3637},"app\u002Fcomposables\u002Ffetch.ts",[2854,7233,7234,3011,7250,3011,7267,3011,7269,3011,7299,3011,7304,3011,7323,3011,7328,3011,7348,3011,7353,3011,7371,3011,7388,3011,7392,3011,7397,3011,7404],{"class":3640},[2977,7235,7236,2991,7239,7241,7242,2991,7244,2991,7247],{"class":2979,"style":2980},[2977,7237,7238],{"class":3016,"style":3017},"import",[2977,7240,3023],{"class":3021,"style":3022}," appendResponseHeader ",[2977,7243,3027],{"class":3021,"style":3022},[2977,7245,7246],{"class":3016,"style":3017},"from",[2977,7248,7249],{"class":3005,"style":3006},"'h3'",[2977,7251,7252,2991,7254,2991,7256,2991,7258,2991,7261,2991,7263,2991,7265],{"class":2979,"style":2980},[2977,7253,7238],{"class":3016,"style":3017},[2977,7255,6831],{"class":3016,"style":3017},[2977,7257,3023],{"class":3021,"style":3022},[2977,7259,7260],{"class":2994,"style":2995},"H3Event",[2977,7262,3027],{"class":3021,"style":3022},[2977,7264,7246],{"class":3016,"style":3017},[2977,7266,7249],{"class":3005,"style":3006},[2977,7268],{"class":2979,"style":2980},[2977,7270,7271,2991,7273,7275,7276,2991,7278,2991,7280,3668,7282,2991,7284,7286,7288,7289,7293,2991,7295,2991,7297],{"class":2979,"style":2980},[2977,7272,3650],{"class":3016,"style":3017},[2977,7274,3018],{"class":3016,"style":3017}," fetchWithCookie ",[2977,7277,3002],{"class":2983,"style":2984},[2977,7279,3052],{"class":3016,"style":3017},[2977,7281,3039],{"class":3021,"style":3022},[2977,7283,3092],{"class":2983,"style":2984},[2977,7285,7260],{"class":2994,"style":2995},[2977,7287,3084],{"class":2983,"style":2984}," url",[2977,7290,7292],{"class":7291,"style":2995},"shj-syn-type shj-type",": string",[2977,7294,3045],{"class":3021,"style":3022},[2977,7296,3662],{"class":3016,"style":3017},[2977,7298,3023],{"class":3021,"style":3022},[2977,7300,3067,7301],{"class":2979,"style":2980},[2977,7302,7303],{"class":3110,"style":3111},"\u002F* Get the response from the server endpoint *\u002F",[2977,7305,3067,7306,3070,7308,2991,7310,7312,7313,7315,7318,7320,7321],{"class":2979,"style":2980},[2977,7307,3018],{"class":3016,"style":3017},[2977,7309,3002],{"class":2983,"style":2984},[2977,7311,3032],{"class":3016,"style":3017}," $fetch",[2977,7314,2865],{"class":2983,"style":2984},[2977,7316,7317],{"class":3035,"style":3036},"raw",[2977,7319,3039],{"class":3021,"style":3022},"url",[2977,7322,3045],{"class":3021,"style":3022},[2977,7324,3067,7325],{"class":2979,"style":2980},[2977,7326,7327],{"class":3110,"style":3111},"\u002F* Get the cookies from the response *\u002F",[2977,7329,3067,7330,7332,7333,7335,7336,7338,7339,7341,7344,7346],{"class":2979,"style":2980},[2977,7331,3018],{"class":3016,"style":3017}," cookies ",[2977,7334,3002],{"class":2983,"style":2984}," res",[2977,7337,2865],{"class":2983,"style":2984},"headers",[2977,7340,2865],{"class":2983,"style":2984},[2977,7342,7343],{"class":3035,"style":3036},"getSetCookie",[2977,7345,3039],{"class":3021,"style":3022},[2977,7347,3045],{"class":3021,"style":3022},[2977,7349,3067,7350],{"class":2979,"style":2980},[2977,7351,7352],{"class":3110,"style":3111},"\u002F* Attach each cookie to our incoming Request *\u002F",[2977,7354,3067,7355,2991,7358,7360,7362,7363,7366,7367,2991,7369],{"class":2979,"style":2980},[2977,7356,7357],{"class":3016,"style":3017},"for",[2977,7359,3039],{"class":3021,"style":3022},[2977,7361,3018],{"class":3016,"style":3017}," cookie ",[2977,7364,7365],{"class":3016,"style":3017},"of"," cookies",[2977,7368,3045],{"class":3021,"style":3022},[2977,7370,3023],{"class":3021,"style":3022},[2977,7372,3115,7373,7376,3668,7378,2991,7380,7383,7385,7386],{"class":2979,"style":2980},[2977,7374,7375],{"class":3035,"style":3036},"appendResponseHeader",[2977,7377,3039],{"class":3021,"style":3022},[2977,7379,3084],{"class":2983,"style":2984},[2977,7381,7382],{"class":3005,"style":3006},"'set-cookie'",[2977,7384,3084],{"class":2983,"style":2984}," cookie",[2977,7387,3045],{"class":3021,"style":3022},[2977,7389,3067,7390],{"class":2979,"style":2980},[2977,7391,3027],{"class":3021,"style":3022},[2977,7393,3067,7394],{"class":2979,"style":2980},[2977,7395,7396],{"class":3110,"style":3111},"\u002F* Return the data of the response *\u002F",[2977,7398,3067,7399,7335,7401,7403],{"class":2979,"style":2980},[2977,7400,3753],{"class":3016,"style":3017},[2977,7402,2865],{"class":2983,"style":2984},"_data",[2977,7405,7406],{"class":2979,"style":2980},[2977,7407,3027],{"class":3021,"style":3022},[2968,7409,7410],{"language":2970,"class":2972},[2854,7411,7412,3011,7428,3011,7433,3011,7446,3011,7448,3011,7488,3011,7490,3011,7517],{"class":2975},[2977,7413,7414,7416,2991,7418,2991,7420,7422,7424,7426],{"class":2979,"style":2980},[2977,7415,2985],{"class":2983,"style":2984},[2977,7417,2990],{"class":2988,"style":2989},[2977,7419,2996],{"class":2994,"style":2995},[2977,7421,2999],{"class":2994,"style":2995},[2977,7423,3002],{"class":2983,"style":2984},[2977,7425,3007],{"class":3005,"style":3006},[2977,7427,3010],{"class":2983,"style":2984},[2977,7429,7430],{"class":2979,"style":2980},[2977,7431,7432],{"class":3110,"style":3111},"\u002F\u002F This composable will automatically pass cookies to the client",[2977,7434,7435,7437,7438,2991,7440,7442,7444],{"class":2979,"style":2980},[2977,7436,3018],{"class":3016,"style":3017}," event ",[2977,7439,3002],{"class":2983,"style":2984},[2977,7441,626],{"class":3035,"style":3036},[2977,7443,3039],{"class":3021,"style":3022},[2977,7445,3045],{"class":3021,"style":3022},[2977,7447],{"class":2979,"style":2980},[2977,7449,7450,2991,7452,3877,7454,7456,7457,2991,7459,2991,7461,2991,7463,7465,7467,7469,2991,7471,2991,7473,7476,3668,7478,2991,7481,7484,7486],{"class":2979,"style":2980},[2977,7451,3018],{"class":3016,"style":3017},[2977,7453,3023],{"class":3021,"style":3022},[2977,7455,3092],{"class":2983,"style":2984}," result ",[2977,7458,3027],{"class":3021,"style":3022},[2977,7460,3002],{"class":2983,"style":2984},[2977,7462,3032],{"class":3016,"style":3017},[2977,7464,561],{"class":3035,"style":3036},[2977,7466,3039],{"class":3021,"style":3022},[2977,7468,3039],{"class":3021,"style":3022},[2977,7470,3045],{"class":3021,"style":3022},[2977,7472,3662],{"class":3016,"style":3017},[2977,7474,7475],{"class":3035,"style":3036},"fetchWithCookie",[2977,7477,3039],{"class":3021,"style":3022},[2977,7479,7480],{"class":2983,"style":2984},"!,",[2977,7482,7483],{"class":3005,"style":3006},"'\u002Fapi\u002Fwith-cookie'",[2977,7485,3045],{"class":3021,"style":3022},[2977,7487,3045],{"class":3021,"style":3022},[2977,7489],{"class":2979,"style":2980},[2977,7491,7492,7495,7497,7499,2991,7501,7503,7504,7506,7509,2846,7511,3686,7513,7515],{"class":2979,"style":2980},[2977,7493,7494],{"class":3035,"style":3036},"onMounted",[2977,7496,3039],{"class":3021,"style":3022},[2977,7498,3039],{"class":3021,"style":3022},[2977,7500,3045],{"class":3021,"style":3022},[2977,7502,3662],{"class":3016,"style":3017}," console",[2977,7505,2865],{"class":2983,"style":2984},[2977,7507,7508],{"class":3035,"style":3036},"log",[2977,7510,3039],{"class":3021,"style":3022},[2977,7512,2865],{"class":2983,"style":2984},[2977,7514,3045],{"class":3021,"style":3022},[2977,7516,3045],{"class":3021,"style":3022},[2977,7518,7519,7521,7523],{"class":2979,"style":2980},[2977,7520,3134],{"class":2983,"style":2984},[2977,7522,2990],{"class":2988,"style":2989},[2977,7524,3010],{"class":2983,"style":2984},[2913,7526,2818],{"id":2817},[2850,7528,7529,7530,7533,7534,7536],{},"Nuxt provides a way to perform ",[2854,7531,7532],{},"asyncData"," fetching within the Options API. You must wrap your component definition within ",[2854,7535,746],{}," for this to work.",[2968,7538,7539],{"language":2970,"class":2972},[2854,7540,7541,3011,7549,3011,7561,3011,7566,3011,7576,3011,7588,3011,7594,3011,7612,3011,7616,3011,7622,3011,7628],{"class":2975},[2977,7542,7543,7545,7547],{"class":2979,"style":2980},[2977,7544,2985],{"class":2983,"style":2984},[2977,7546,2990],{"class":2988,"style":2989},[2977,7548,3010],{"class":2983,"style":2984},[2977,7550,7551,2991,7553,2991,7555,7557,7559],{"class":2979,"style":2980},[2977,7552,3650],{"class":3016,"style":3017},[2977,7554,3653],{"class":3016,"style":3017},[2977,7556,746],{"class":3035,"style":3036},[2977,7558,3039],{"class":3021,"style":3022},[2977,7560,3023],{"class":3021,"style":3022},[2977,7562,3067,7563],{"class":2979,"style":2980},[2977,7564,7565],{"class":3110,"style":3111},"\u002F* Use the fetchKey option to provide a unique key *\u002F",[2977,7567,7568,7569,2991,7571,7574],{"class":2979,"style":2980},"  fetchKey",[2977,7570,3092],{"class":2983,"style":2984},[2977,7572,7573],{"class":3005,"style":3006},"'hello'",[2977,7575,3084],{"class":2983,"style":2984},[2977,7577,3067,7578,2991,7580,2991,7582,7584,2991,7586],{"class":2979,"style":2980},[2977,7579,3052],{"class":3016,"style":3017},[2977,7581,7532],{"class":3035,"style":3036},[2977,7583,3039],{"class":3021,"style":3022},[2977,7585,3045],{"class":3021,"style":3022},[2977,7587,3023],{"class":3021,"style":3022},[2977,7589,3115,7590,2991,7592],{"class":2979,"style":2980},[2977,7591,3753],{"class":3016,"style":3017},[2977,7593,3023],{"class":3021,"style":3022},[2977,7595,7596,7597,2991,7599,2991,7601,7603,7605,7608,7610],{"class":2979,"style":2980},"      hello",[2977,7598,3092],{"class":2983,"style":2984},[2977,7600,3032],{"class":3016,"style":3017},[2977,7602,702],{"class":3035,"style":3036},[2977,7604,3039],{"class":3021,"style":3022},[2977,7606,7607],{"class":3005,"style":3006},"'\u002Fapi\u002Fhello'",[2977,7609,3045],{"class":3021,"style":3022},[2977,7611,3084],{"class":2983,"style":2984},[2977,7613,3115,7614],{"class":2979,"style":2980},[2977,7615,3027],{"class":3021,"style":3022},[2977,7617,3067,7618,7620],{"class":2979,"style":2980},[2977,7619,3027],{"class":3021,"style":3022},[2977,7621,3084],{"class":2983,"style":2984},[2977,7623,7624,7626],{"class":2979,"style":2980},[2977,7625,3027],{"class":3021,"style":3022},[2977,7627,3045],{"class":3021,"style":3022},[2977,7629,7630,7632,7634],{"class":2979,"style":2980},[2977,7631,3134],{"class":2983,"style":2984},[2977,7633,2990],{"class":2988,"style":2989},[2977,7635,3010],{"class":2983,"style":2984},[3258,7637,7638,7639,3398,7641,7644],{},"Using ",[2854,7640,3310],{},[2854,7642,7643],{},"\u003Cscript setup lang=\"ts\">"," are the recommended way of declaring Vue components in Nuxt.",[3563,7646],{"to":1676},[2913,7648,2821],{"id":2820},[2850,7650,7651,7652,2862,7654,7656,7657,7660,7661,7667,7668,2856,7670,2856,7673,2856,7676,2862,7679,7682],{},"When using ",[2854,7653,561],{},[2854,7655,596],{}," to transfer data fetched on server to the client (as well as anything else that utilizes ",[2858,7658,7659],{"href":2946},"the Nuxt payload","), the payload is serialized with ",[2858,7662,7664],{"href":7663},"https:\u002F\u002Fgithub.com\u002Fsveltejs\u002Fdevalue",[2854,7665,7666],{},"devalue",". This allows us to transfer not just basic JSON but also to serialize and revive\u002Fdeserialize more advanced kinds of data, such as regular expressions, Dates, Map and Set, ",[2854,7669,5850],{},[2854,7671,7672],{},"reactive",[2854,7674,7675],{},"shallowRef",[2854,7677,7678],{},"shallowReactive",[2854,7680,7681],{},"NuxtError"," - and more.",[2850,7684,7685,7686,7690],{},"It is also possible to define your own serializer\u002Fdeserializer for types that are not supported by Nuxt. You can read more in the ",[2858,7687,7688],{"href":2946},[2854,7689,611],{}," docs.",[3258,7692,7693,7694,7697,7698,3398,7700,7702],{},"Note that this ",[3304,7695,7696],{},"does not apply"," to data passed from your server routes when fetched with ",[2854,7699,702],{},[2854,7701,576],{}," - see the next section for more information.",[2913,7704,2824],{"id":2823},[2850,7706,7707,7708,7710,7711,7714,7715,2862,7717,7721],{},"When fetching data from the ",[2854,7709,184],{}," directory, the response is serialized using ",[2854,7712,7713],{},"JSON.stringify",". However, since serialization is limited to only JavaScript primitive types, Nuxt does its best to convert the return type of ",[2854,7716,702],{},[2858,7718,7719],{"href":1602},[2854,7720,576],{}," to match the actual value.",[3563,7723,7727,7728,7730],{"icon":7724,"to":7725,"target":7726},"i-simple-icons-mdnwebdocs","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FJavaScript\u002FReference\u002FGlobal_Objects\u002FJSON\u002Fstringify#description","_blank","Learn more about ",[2854,7729,7713],{}," limitations.",[3245,7732,2828],{"id":2827},[2968,7734,7736],{"language":3636,"filename":7735,"class":3637},"server\u002Fapi\u002Ffoo.ts",[2854,7737,7738,3011,7756,3011,7770],{"class":3640},[2977,7739,7740,2991,7742,2991,7744,7746,7748,7750,2991,7752,2991,7754],{"class":2979,"style":2980},[2977,7741,3650],{"class":3016,"style":3017},[2977,7743,3653],{"class":3016,"style":3017},[2977,7745,3656],{"class":3035,"style":3036},[2977,7747,3039],{"class":3021,"style":3022},[2977,7749,3039],{"class":3021,"style":3022},[2977,7751,3045],{"class":3021,"style":3022},[2977,7753,3662],{"class":3016,"style":3017},[2977,7755,3023],{"class":3021,"style":3022},[2977,7757,3067,7758,2991,7760,2991,7763,7766,7768],{"class":2979,"style":2980},[2977,7759,3753],{"class":3016,"style":3017},[2977,7761,7762],{"class":3016,"style":3017},"new",[2977,7764,7765],{"class":2994,"style":2995},"Date",[2977,7767,3039],{"class":3021,"style":3022},[2977,7769,3045],{"class":3021,"style":3022},[2977,7771,7772,7774],{"class":2979,"style":2980},[2977,7773,3027],{"class":3021,"style":3022},[2977,7775,3045],{"class":3021,"style":3022},[2968,7777,7778],{"language":2970,"filename":2971,"class":2972},[2854,7779,7780,3011,7796,3011,7801,3011,7822],{"class":2975},[2977,7781,7782,7784,2991,7786,2991,7788,7790,7792,7794],{"class":2979,"style":2980},[2977,7783,2985],{"class":2983,"style":2984},[2977,7785,2990],{"class":2988,"style":2989},[2977,7787,2996],{"class":2994,"style":2995},[2977,7789,2999],{"class":2994,"style":2995},[2977,7791,3002],{"class":2983,"style":2984},[2977,7793,3007],{"class":3005,"style":3006},[2977,7795,3010],{"class":2983,"style":2984},[2977,7797,7798],{"class":2979,"style":2980},[2977,7799,7800],{"class":3110,"style":3111},"\u002F\u002F Type of `data` is inferred as string even though we returned a Date object",[2977,7802,7803,2991,7805,3024,7807,2991,7809,2991,7811,2991,7813,7815,7817,7820],{"class":2979,"style":2980},[2977,7804,3018],{"class":3016,"style":3017},[2977,7806,3023],{"class":3021,"style":3022},[2977,7808,3027],{"class":3021,"style":3022},[2977,7810,3002],{"class":2983,"style":2984},[2977,7812,3032],{"class":3016,"style":3017},[2977,7814,576],{"class":3035,"style":3036},[2977,7816,3039],{"class":3021,"style":3022},[2977,7818,7819],{"class":3005,"style":3006},"'\u002Fapi\u002Ffoo'",[2977,7821,3045],{"class":3021,"style":3022},[2977,7823,7824,7826,7828],{"class":2979,"style":2980},[2977,7825,3134],{"class":2983,"style":2984},[2977,7827,2990],{"class":2988,"style":2989},[2977,7829,3010],{"class":2983,"style":2984},[3245,7831,2831],{"id":2830},[2850,7833,7834,7835,7838,7839,7841],{},"To customize the serialization behavior, you can define a ",[2854,7836,7837],{},"toJSON"," function on your returned object. If you define a ",[2854,7840,7837],{}," method, Nuxt will respect the return type of the function and will not try to convert the types.",[2968,7843,7845],{"language":3636,"filename":7844,"class":3637},"server\u002Fapi\u002Fbar.ts",[2854,7846,7847,3011,7865,3011,7873,3011,7888,3011,7890,3011,7900,3011,7906,3011,7913,3011,7935,3011,7955,3011,7975,3011,7982,3011,7986,3011,7992,3011,7996,3011,8000],{"class":3640},[2977,7848,7849,2991,7851,2991,7853,7855,7857,7859,2991,7861,2991,7863],{"class":2979,"style":2980},[2977,7850,3650],{"class":3016,"style":3017},[2977,7852,3653],{"class":3016,"style":3017},[2977,7854,3656],{"class":3035,"style":3036},[2977,7856,3039],{"class":3021,"style":3022},[2977,7858,3039],{"class":3021,"style":3022},[2977,7860,3045],{"class":3021,"style":3022},[2977,7862,3662],{"class":3016,"style":3017},[2977,7864,3023],{"class":3021,"style":3022},[2977,7866,3067,7867,3024,7869,2991,7871],{"class":2979,"style":2980},[2977,7868,3018],{"class":3016,"style":3017},[2977,7870,3002],{"class":2983,"style":2984},[2977,7872,3023],{"class":3021,"style":3022},[2977,7874,7875,7876,2991,7878,2991,7880,7882,7884,7886],{"class":2979,"style":2980},"    createdAt",[2977,7877,3092],{"class":2983,"style":2984},[2977,7879,7762],{"class":3016,"style":3017},[2977,7881,7765],{"class":2994,"style":2995},[2977,7883,3039],{"class":3021,"style":3022},[2977,7885,3045],{"class":3021,"style":3022},[2977,7887,3084],{"class":2983,"style":2984},[2977,7889],{"class":2979,"style":2980},[2977,7891,3115,7892,2991,7894,7896,2991,7898],{"class":2979,"style":2980},[2977,7893,7837],{"class":3035,"style":3036},[2977,7895,3039],{"class":3021,"style":3022},[2977,7897,3045],{"class":3021,"style":3022},[2977,7899,3023],{"class":3021,"style":3022},[2977,7901,3107,7902,2991,7904],{"class":2979,"style":2980},[2977,7903,3753],{"class":3016,"style":3017},[2977,7905,3023],{"class":3021,"style":3022},[2977,7907,7908,7909,2991,7911],{"class":2979,"style":2980},"        createdAt",[2977,7910,3092],{"class":2983,"style":2984},[2977,7912,3023],{"class":3021,"style":3022},[2977,7914,7915,7916,2991,7918,7921,7923,7924,7926,7929,7931,7933],{"class":2979,"style":2980},"          year",[2977,7917,3092],{"class":2983,"style":2984},[2977,7919,7920],{"class":3016,"style":3017},"this",[2977,7922,2865],{"class":2983,"style":2984},"createdAt",[2977,7925,2865],{"class":2983,"style":2984},[2977,7927,7928],{"class":3035,"style":3036},"getFullYear",[2977,7930,3039],{"class":3021,"style":3022},[2977,7932,3045],{"class":3021,"style":3022},[2977,7934,3084],{"class":2983,"style":2984},[2977,7936,7937,7938,2991,7940,7942,7923,7944,7946,7949,7951,7953],{"class":2979,"style":2980},"          month",[2977,7939,3092],{"class":2983,"style":2984},[2977,7941,7920],{"class":3016,"style":3017},[2977,7943,2865],{"class":2983,"style":2984},[2977,7945,2865],{"class":2983,"style":2984},[2977,7947,7948],{"class":3035,"style":3036},"getMonth",[2977,7950,3039],{"class":3021,"style":3022},[2977,7952,3045],{"class":3021,"style":3022},[2977,7954,3084],{"class":2983,"style":2984},[2977,7956,7957,7958,2991,7960,7962,7923,7964,7966,7969,7971,7973],{"class":2979,"style":2980},"          day",[2977,7959,3092],{"class":2983,"style":2984},[2977,7961,7920],{"class":3016,"style":3017},[2977,7963,2865],{"class":2983,"style":2984},[2977,7965,2865],{"class":2983,"style":2984},[2977,7967,7968],{"class":3035,"style":3036},"getDate",[2977,7970,3039],{"class":3021,"style":3022},[2977,7972,3045],{"class":3021,"style":3022},[2977,7974,3084],{"class":2983,"style":2984},[2977,7976,7977,7978,7980],{"class":2979,"style":2980},"        ",[2977,7979,3027],{"class":3021,"style":3022},[2977,7981,3084],{"class":2983,"style":2984},[2977,7983,3107,7984],{"class":2979,"style":2980},[2977,7985,3027],{"class":3021,"style":3022},[2977,7987,3115,7988,7990],{"class":2979,"style":2980},[2977,7989,3027],{"class":3021,"style":3022},[2977,7991,3084],{"class":2983,"style":2984},[2977,7993,3067,7994],{"class":2979,"style":2980},[2977,7995,3027],{"class":3021,"style":3022},[2977,7997,3067,7998,3877],{"class":2979,"style":2980},[2977,7999,3753],{"class":3016,"style":3017},[2977,8001,8002,8004],{"class":2979,"style":2980},[2977,8003,3027],{"class":3021,"style":3022},[2977,8005,3045],{"class":3021,"style":3022},[2968,8007,8008],{"language":2970,"filename":2971,"class":2972},[2854,8009,8010,3011,8026,3011,8031,3011,8036,3011,8041,3011,8046,3011,8051,3011,8056,3011,8061,3011,8066,3011,8087],{"class":2975},[2977,8011,8012,8014,2991,8016,2991,8018,8020,8022,8024],{"class":2979,"style":2980},[2977,8013,2985],{"class":2983,"style":2984},[2977,8015,2990],{"class":2988,"style":2989},[2977,8017,2996],{"class":2994,"style":2995},[2977,8019,2999],{"class":2994,"style":2995},[2977,8021,3002],{"class":2983,"style":2984},[2977,8023,3007],{"class":3005,"style":3006},[2977,8025,3010],{"class":2983,"style":2984},[2977,8027,8028],{"class":2979,"style":2980},[2977,8029,8030],{"class":3110,"style":3111},"\u002F\u002F Type of `data` is inferred as",[2977,8032,8033],{"class":2979,"style":2980},[2977,8034,8035],{"class":3110,"style":3111},"\u002F\u002F {",[2977,8037,8038],{"class":2979,"style":2980},[2977,8039,8040],{"class":3110,"style":3111},"\u002F\u002F   createdAt: {",[2977,8042,8043],{"class":2979,"style":2980},[2977,8044,8045],{"class":3110,"style":3111},"\u002F\u002F     year: number",[2977,8047,8048],{"class":2979,"style":2980},[2977,8049,8050],{"class":3110,"style":3111},"\u002F\u002F     month: number",[2977,8052,8053],{"class":2979,"style":2980},[2977,8054,8055],{"class":3110,"style":3111},"\u002F\u002F     day: number",[2977,8057,8058],{"class":2979,"style":2980},[2977,8059,8060],{"class":3110,"style":3111},"\u002F\u002F   }",[2977,8062,8063],{"class":2979,"style":2980},[2977,8064,8065],{"class":3110,"style":3111},"\u002F\u002F }",[2977,8067,8068,2991,8070,3024,8072,2991,8074,2991,8076,2991,8078,8080,8082,8085],{"class":2979,"style":2980},[2977,8069,3018],{"class":3016,"style":3017},[2977,8071,3023],{"class":3021,"style":3022},[2977,8073,3027],{"class":3021,"style":3022},[2977,8075,3002],{"class":2983,"style":2984},[2977,8077,3032],{"class":3016,"style":3017},[2977,8079,576],{"class":3035,"style":3036},[2977,8081,3039],{"class":3021,"style":3022},[2977,8083,8084],{"class":3005,"style":3006},"'\u002Fapi\u002Fbar'",[2977,8086,3045],{"class":3021,"style":3022},[2977,8088,8089,8091,8093],{"class":2979,"style":2980},[2977,8090,3134],{"class":2983,"style":2984},[2977,8092,2990],{"class":2988,"style":2989},[2977,8094,3010],{"class":2983,"style":2984},[3245,8096,2834],{"id":2833},[2850,8098,8099,8100,8102,8103,8105],{},"Nuxt does not currently support an alternative serializer to ",[2854,8101,7713],{},". However, you can return your payload as a normal string and utilize the ",[2854,8104,7837],{}," method to maintain type safety.",[2850,8107,8108,8109,8113],{},"In the example below, we use ",[2858,8110,8112],{"href":8111},"https:\u002F\u002Fgithub.com\u002Fflightcontrolhq\u002Fsuperjson","superjson"," as our serializer.",[2968,8115,8117],{"language":3636,"filename":8116,"class":3637},"server\u002Fapi\u002Fsuperjson.ts",[2854,8118,8119,3011,8129,3011,8131,3011,8149,3011,8157,3011,8171,3011,8173,3011,8178,3011,8188,3011,8194,3011,8200,3011,8204,3011,8206,3011,8211,3011,8234],{"class":3640},[2977,8120,8121,8123,8124,2991,8126],{"class":2979,"style":2980},[2977,8122,7238],{"class":3016,"style":3017}," superjson ",[2977,8125,7246],{"class":3016,"style":3017},[2977,8127,8128],{"class":3005,"style":3006},"'superjson'",[2977,8130],{"class":2979,"style":2980},[2977,8132,8133,2991,8135,2991,8137,8139,8141,8143,2991,8145,2991,8147],{"class":2979,"style":2980},[2977,8134,3650],{"class":3016,"style":3017},[2977,8136,3653],{"class":3016,"style":3017},[2977,8138,3656],{"class":3035,"style":3036},[2977,8140,3039],{"class":3021,"style":3022},[2977,8142,3039],{"class":3021,"style":3022},[2977,8144,3045],{"class":3021,"style":3022},[2977,8146,3662],{"class":3016,"style":3017},[2977,8148,3023],{"class":3021,"style":3022},[2977,8150,3067,8151,3024,8153,2991,8155],{"class":2979,"style":2980},[2977,8152,3018],{"class":3016,"style":3017},[2977,8154,3002],{"class":2983,"style":2984},[2977,8156,3023],{"class":3021,"style":3022},[2977,8158,7875,8159,2991,8161,2991,8163,8165,8167,8169],{"class":2979,"style":2980},[2977,8160,3092],{"class":2983,"style":2984},[2977,8162,7762],{"class":3016,"style":3017},[2977,8164,7765],{"class":2994,"style":2995},[2977,8166,3039],{"class":3021,"style":3022},[2977,8168,3045],{"class":3021,"style":3022},[2977,8170,3084],{"class":2983,"style":2984},[2977,8172],{"class":2979,"style":2980},[2977,8174,3115,8175],{"class":2979,"style":2980},[2977,8176,8177],{"class":3110,"style":3111},"\u002F\u002F Workaround the type conversion",[2977,8179,3115,8180,2991,8182,8184,2991,8186],{"class":2979,"style":2980},[2977,8181,7837],{"class":3035,"style":3036},[2977,8183,3039],{"class":3021,"style":3022},[2977,8185,3045],{"class":3021,"style":3022},[2977,8187,3023],{"class":3021,"style":3022},[2977,8189,3107,8190,2991,8192],{"class":2979,"style":2980},[2977,8191,3753],{"class":3016,"style":3017},[2977,8193,7920],{"class":3016,"style":3017},[2977,8195,3115,8196,8198],{"class":2979,"style":2980},[2977,8197,3027],{"class":3021,"style":3022},[2977,8199,3084],{"class":2983,"style":2984},[2977,8201,3067,8202],{"class":2979,"style":2980},[2977,8203,3027],{"class":3021,"style":3022},[2977,8205],{"class":2979,"style":2980},[2977,8207,3067,8208],{"class":2979,"style":2980},[2977,8209,8210],{"class":3110,"style":3111},"\u002F\u002F Serialize the output to string, using superjson",[2977,8212,3067,8213,8215,8216,8218,8221,3324,8223,2991,8225,8228,8229,2991,8231,3877],{"class":2979,"style":2980},[2977,8214,3753],{"class":3016,"style":3017}," superjson",[2977,8217,2865],{"class":2983,"style":2984},[2977,8219,8220],{"class":3035,"style":3036},"stringify",[2977,8222,3039],{"class":3021,"style":3022},[2977,8224,3045],{"class":3021,"style":3022},[2977,8226,8227],{"class":3016,"style":3017},"as"," unknown ",[2977,8230,8227],{"class":3016,"style":3017},[2977,8232,8233],{"class":3016,"style":3017},"typeof",[2977,8235,8236,8238],{"class":2979,"style":2980},[2977,8237,3027],{"class":3021,"style":3022},[2977,8239,3045],{"class":3021,"style":3022},[2968,8241,8242],{"language":2970,"filename":2971,"class":2972},[2854,8243,8244,3011,8260,3011,8268,3011,8270,3011,8275,3011,8298,3011,8310,3011,8328,3011,8334,3011,8340],{"class":2975},[2977,8245,8246,8248,2991,8250,2991,8252,8254,8256,8258],{"class":2979,"style":2980},[2977,8247,2985],{"class":2983,"style":2984},[2977,8249,2990],{"class":2988,"style":2989},[2977,8251,2996],{"class":2994,"style":2995},[2977,8253,2999],{"class":2994,"style":2995},[2977,8255,3002],{"class":2983,"style":2984},[2977,8257,3007],{"class":3005,"style":3006},[2977,8259,3010],{"class":2983,"style":2984},[2977,8261,8262,8123,8264,2991,8266],{"class":2979,"style":2980},[2977,8263,7238],{"class":3016,"style":3017},[2977,8265,7246],{"class":3016,"style":3017},[2977,8267,8128],{"class":3005,"style":3006},[2977,8269],{"class":2979,"style":2980},[2977,8271,8272],{"class":2979,"style":2980},[2977,8273,8274],{"class":3110,"style":3111},"\u002F\u002F `date` is inferred as { createdAt: Date } and you can safely use the Date object methods",[2977,8276,8277,2991,8279,3024,8281,2991,8283,2991,8285,2991,8287,8289,8291,8294,2991,8296],{"class":2979,"style":2980},[2977,8278,3018],{"class":3016,"style":3017},[2977,8280,3023],{"class":3021,"style":3022},[2977,8282,3027],{"class":3021,"style":3022},[2977,8284,3002],{"class":2983,"style":2984},[2977,8286,3032],{"class":3016,"style":3017},[2977,8288,576],{"class":3035,"style":3036},[2977,8290,3039],{"class":3021,"style":3022},[2977,8292,8293],{"class":3005,"style":3006},"'\u002Fapi\u002Fsuperjson'",[2977,8295,3084],{"class":2983,"style":2984},[2977,8297,3023],{"class":3021,"style":3022},[2977,8299,5243,8300,2991,8302,5896,8304,2991,8306,2991,8308],{"class":2979,"style":2980},[2977,8301,3092],{"class":2983,"style":2984},[2977,8303,3039],{"class":3021,"style":3022},[2977,8305,3045],{"class":3021,"style":3022},[2977,8307,3662],{"class":3016,"style":3017},[2977,8309,3023],{"class":3021,"style":3022},[2977,8311,3115,8312,8215,8314,8316,8319,5944,8321,8228,8323,8325,8326],{"class":2979,"style":2980},[2977,8313,3753],{"class":3016,"style":3017},[2977,8315,2865],{"class":2983,"style":2984},[2977,8317,8318],{"class":3035,"style":3036},"parse",[2977,8320,3039],{"class":3021,"style":3022},[2977,8322,8227],{"class":3016,"style":3017},[2977,8324,8227],{"class":3016,"style":3017}," string",[2977,8327,3045],{"class":3021,"style":3022},[2977,8329,3067,8330,8332],{"class":2979,"style":2980},[2977,8331,3027],{"class":3021,"style":3022},[2977,8333,3084],{"class":2983,"style":2984},[2977,8335,8336,8338],{"class":2979,"style":2980},[2977,8337,3027],{"class":3021,"style":3022},[2977,8339,3045],{"class":3021,"style":3022},[2977,8341,8342,8344,8346],{"class":2979,"style":2980},[2977,8343,3134],{"class":2983,"style":2984},[2977,8345,2990],{"class":2988,"style":2989},[2977,8347,3010],{"class":2983,"style":2984},[2913,8349,378],{"id":2836},[3245,8351,2840],{"id":2839},[2955,8353,8354,8355,8361,8362,2865],{},"If you're consuming SSE via GET request, you can use ",[2858,8356,8358],{"href":8357},"https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FEventSource",[2854,8359,8360],{},"EventSource"," or VueUse composable ",[2858,8363,8365],{"href":8364},"https:\u002F\u002Fvueuse.org\u002Fcore\u002Fuseeventsource\u002F",[2854,8366,8367],{},"useEventSource",[2850,8369,8370],{},"When consuming SSE via POST request, you need to handle the connection manually. Here's how you can do it:",[2968,8372,8373],{"language":3636,"class":3637},[2854,8374,8375,3011,8380,3011,8405,3011,8414,3011,8421,3011,8431,3011,8437,3011,8447,3011,8453,3011,8455,3011,8460,3011,8495,3011,8497,3011,8502,3011,8515,3011,8540,3011,8542,3011,8558,3011,8560,3011,8576],{"class":3640},[2977,8376,8377],{"class":2979,"style":2980},[2977,8378,8379],{"class":3110,"style":3111},"\u002F\u002F Make a POST request to the SSE endpoint",[2977,8381,8382,8384,8385,2991,8387,7312,8389,8391,8394,8396,8398,8401,2991,8403],{"class":2979,"style":2980},[2977,8383,3018],{"class":3016,"style":3017}," response ",[2977,8386,3002],{"class":2983,"style":2984},[2977,8388,3032],{"class":3016,"style":3017},[2977,8390,2985],{"class":2983,"style":2984},[2977,8392,8393],{"class":2994,"style":2995},"ReadableStream",[2977,8395,3010],{"class":2983,"style":2984},[2977,8397,3039],{"class":3021,"style":3022},[2977,8399,8400],{"class":3005,"style":3006},"'\u002Fchats\u002Fask-ai'",[2977,8402,3084],{"class":2983,"style":2984},[2977,8404,3023],{"class":3021,"style":3022},[2977,8406,8407,8408,2991,8410,8412],{"class":2979,"style":2980},"  method",[2977,8409,3092],{"class":2983,"style":2984},[2977,8411,3095],{"class":3005,"style":3006},[2977,8413,3084],{"class":2983,"style":2984},[2977,8415,8416,8417,2991,8419],{"class":2979,"style":2980},"  body",[2977,8418,3092],{"class":2983,"style":2984},[2977,8420,3023],{"class":3021,"style":3022},[2977,8422,8423,8424,2991,8426,8429],{"class":2979,"style":2980},"    query",[2977,8425,3092],{"class":2983,"style":2984},[2977,8427,8428],{"class":3005,"style":3006},"'Hello AI, how are you?'",[2977,8430,3084],{"class":2983,"style":2984},[2977,8432,3067,8433,8435],{"class":2979,"style":2980},[2977,8434,3027],{"class":3021,"style":3022},[2977,8436,3084],{"class":2983,"style":2984},[2977,8438,8439,8440,2991,8442,8445],{"class":2979,"style":2980},"  responseType",[2977,8441,3092],{"class":2983,"style":2984},[2977,8443,8444],{"class":3005,"style":3006},"'stream'",[2977,8446,3084],{"class":2983,"style":2984},[2977,8448,8449,8451],{"class":2979,"style":2980},[2977,8450,3027],{"class":3021,"style":3022},[2977,8452,3045],{"class":3021,"style":3022},[2977,8454],{"class":2979,"style":2980},[2977,8456,8457],{"class":2979,"style":2980},[2977,8458,8459],{"class":3110,"style":3111},"\u002F\u002F Create a new ReadableStream from the response with TextDecoderStream to get the data as text",[2977,8461,8462,8464,8465,8467,8468,8470,8473,8475,2991,8477,8480,8482,8484,8486,8488,8491,8493],{"class":2979,"style":2980},[2977,8463,3018],{"class":3016,"style":3017}," reader ",[2977,8466,3002],{"class":2983,"style":2984}," response",[2977,8469,2865],{"class":2983,"style":2984},[2977,8471,8472],{"class":3035,"style":3036},"pipeThrough",[2977,8474,3039],{"class":3021,"style":3022},[2977,8476,7762],{"class":3016,"style":3017},[2977,8478,8479],{"class":2994,"style":2995},"TextDecoderStream",[2977,8481,3039],{"class":3021,"style":3022},[2977,8483,3045],{"class":3021,"style":3022},[2977,8485,3045],{"class":3021,"style":3022},[2977,8487,2865],{"class":2983,"style":2984},[2977,8489,8490],{"class":3035,"style":3036},"getReader",[2977,8492,3039],{"class":3021,"style":3022},[2977,8494,3045],{"class":3021,"style":3022},[2977,8496],{"class":2979,"style":2980},[2977,8498,8499],{"class":2979,"style":2980},[2977,8500,8501],{"class":3110,"style":3111},"\u002F\u002F Read the chunk of data as we get it",[2977,8503,8504,2991,8507,8509,8511,2991,8513],{"class":2979,"style":2980},[2977,8505,8506],{"class":3016,"style":3017},"while",[2977,8508,3039],{"class":3021,"style":3022},[2977,8510,4751],{"class":4749,"style":4750},[2977,8512,3045],{"class":3021,"style":3022},[2977,8514,3023],{"class":3021,"style":3022},[2977,8516,3067,8517,2991,8519,5430,8521,8523,8524,2991,8526,2991,8528,8530,8531,8533,8536,8538],{"class":2979,"style":2980},[2977,8518,3018],{"class":3016,"style":3017},[2977,8520,3023],{"class":3021,"style":3022},[2977,8522,3084],{"class":2983,"style":2984}," done ",[2977,8525,3027],{"class":3021,"style":3022},[2977,8527,3002],{"class":2983,"style":2984},[2977,8529,3032],{"class":3016,"style":3017}," reader",[2977,8532,2865],{"class":2983,"style":2984},[2977,8534,8535],{"class":3035,"style":3036},"read",[2977,8537,3039],{"class":3021,"style":3022},[2977,8539,3045],{"class":3021,"style":3022},[2977,8541],{"class":2979,"style":2980},[2977,8543,3067,8544,2991,8546,8548,8549,2991,8551,2991,8553,2991,8556],{"class":2979,"style":2980},[2977,8545,6218],{"class":3016,"style":3017},[2977,8547,3039],{"class":3021,"style":3022},"done",[2977,8550,3045],{"class":3021,"style":3022},[2977,8552,3023],{"class":3021,"style":3022},[2977,8554,8555],{"class":3016,"style":3017},"break",[2977,8557,3027],{"class":3021,"style":3022},[2977,8559],{"class":2979,"style":2980},[2977,8561,8562,8563,8565,8567,8569,8572,5430,8574],{"class":2979,"style":2980},"  console",[2977,8564,2865],{"class":2983,"style":2984},[2977,8566,7508],{"class":3035,"style":3036},[2977,8568,3039],{"class":3021,"style":3022},[2977,8570,8571],{"class":3005,"style":3006},"'Received:'",[2977,8573,3084],{"class":2983,"style":2984},[2977,8575,3045],{"class":3021,"style":3022},[2977,8577,8578],{"class":2979,"style":2980},[2977,8579,3027],{"class":3021,"style":3022},[3245,8581,2843],{"id":2842},[2850,8583,8584,8585,8588],{},"When requests don't rely on each other, you can make them in parallel with ",[2854,8586,8587],{},"Promise.all()"," to boost performance.",[2968,8590,8591],{"language":3636,"class":3637},[2854,8592,8593,3011,8623,3011,8637,3011,8656,3011,8675,3011,8681,3011,8687,3011,8689,3011,8719],{"class":3640},[2977,8594,8595,2991,8597,3024,8599,2991,8601,2991,8603,2991,8605,8607,8609,4330,8611,2991,8613,4335,8615,8617,2991,8619,2991,8621],{"class":2979,"style":2980},[2977,8596,3018],{"class":3016,"style":3017},[2977,8598,3023],{"class":3021,"style":3022},[2977,8600,3027],{"class":3021,"style":3022},[2977,8602,3002],{"class":2983,"style":2984},[2977,8604,3032],{"class":3016,"style":3017},[2977,8606,561],{"class":3035,"style":3036},[2977,8608,3039],{"class":3021,"style":3022},[2977,8610,3039],{"class":3021,"style":3022},[2977,8612,3084],{"class":2983,"style":2984},[2977,8614,3023],{"class":3021,"style":3022},[2977,8616,3027],{"class":3021,"style":3022},[2977,8618,3045],{"class":3021,"style":3022},[2977,8620,3662],{"class":3016,"style":3017},[2977,8622,3023],{"class":3021,"style":3022},[2977,8624,3067,8625,2991,8627,8629,8631,8633,8635],{"class":2979,"style":2980},[2977,8626,3753],{"class":3016,"style":3017},[2977,8628,4362],{"class":2994,"style":2995},[2977,8630,2865],{"class":2983,"style":2984},[2977,8632,4367],{"class":3035,"style":3036},[2977,8634,3039],{"class":3021,"style":3022},[2977,8636,3723],{"class":3021,"style":3022},[2977,8638,3115,8639,8641,8643,8646,2991,8648,4335,8650,8652,8654],{"class":2979,"style":2980},[2977,8640,702],{"class":3035,"style":3036},[2977,8642,3039],{"class":3021,"style":3022},[2977,8644,8645],{"class":3005,"style":3006},"'\u002Fapi\u002Fcomments\u002F'",[2977,8647,3084],{"class":2983,"style":2984},[2977,8649,3023],{"class":3021,"style":3022},[2977,8651,3027],{"class":3021,"style":3022},[2977,8653,3045],{"class":3021,"style":3022},[2977,8655,3084],{"class":2983,"style":2984},[2977,8657,3115,8658,8660,8662,8665,2991,8667,4335,8669,8671,8673],{"class":2979,"style":2980},[2977,8659,702],{"class":3035,"style":3036},[2977,8661,3039],{"class":3021,"style":3022},[2977,8663,8664],{"class":3005,"style":3006},"'\u002Fapi\u002Fauthor\u002F12'",[2977,8666,3084],{"class":2983,"style":2984},[2977,8668,3023],{"class":3021,"style":3022},[2977,8670,3027],{"class":3021,"style":3022},[2977,8672,3045],{"class":3021,"style":3022},[2977,8674,3084],{"class":2983,"style":2984},[2977,8676,3067,8677,8679],{"class":2979,"style":2980},[2977,8678,3729],{"class":3021,"style":3022},[2977,8680,3045],{"class":3021,"style":3022},[2977,8682,8683,8685],{"class":2979,"style":2980},[2977,8684,3027],{"class":3021,"style":3022},[2977,8686,3045],{"class":3021,"style":3022},[2977,8688],{"class":2979,"style":2980},[2977,8690,8691,5000,8693,2991,8695,8697,8699,8701,2991,8703,3877,8705,5896,8707,8710,8712,8715,8717],{"class":2979,"style":2980},[2977,8692,3018],{"class":3016,"style":3017},[2977,8694,3002],{"class":2983,"style":2984},[2977,8696,5879],{"class":3035,"style":3036},[2977,8698,3039],{"class":3021,"style":3022},[2977,8700,3039],{"class":3021,"style":3022},[2977,8702,3045],{"class":3021,"style":3022},[2977,8704,3662],{"class":3016,"style":3017},[2977,8706,2865],{"class":2983,"style":2984},[2977,8708,8709],{"class":2983,"style":2984},"?.",[2977,8711,3723],{"class":3021,"style":3022},[2977,8713,8714],{"class":6302,"style":6303},"0",[2977,8716,3729],{"class":3021,"style":3022},[2977,8718,3045],{"class":3021,"style":3022},[2977,8720,8721,8723,8724,2991,8726,8728,8730,8732,2991,8734,3877,8736,5896,8738,8740,8742,8744,8746],{"class":2979,"style":2980},[2977,8722,3018],{"class":3016,"style":3017}," author ",[2977,8725,3002],{"class":2983,"style":2984},[2977,8727,5879],{"class":3035,"style":3036},[2977,8729,3039],{"class":3021,"style":3022},[2977,8731,3039],{"class":3021,"style":3022},[2977,8733,3045],{"class":3021,"style":3022},[2977,8735,3662],{"class":3016,"style":3017},[2977,8737,2865],{"class":2983,"style":2984},[2977,8739,8709],{"class":2983,"style":2984},[2977,8741,3723],{"class":3021,"style":3022},[2977,8743,6304],{"class":6302,"style":6303},[2977,8745,3729],{"class":3021,"style":3022},[2977,8747,3045],{"class":3021,"style":3022},[3955,8749],{"title":8750,"videoId":8751,"platform":4937},"Watch a video from Vue School on parallel data fetching","1024262536",{"v5":8753,"v4":8754,"v3":8755,"v2":8756},"5 (nightly)","4.5.2","3.21.11","2.18.1"]