[{"data":1,"prerenderedAt":11551},["ShallowReactive",2],{"$fGCo9l1hMtNdUiA6QzdUX5X3kLqaWcC5t2kdz4LrvCvc":3,"versions":2856,"-docs-4-x-getting-started-upgrade":2861,"-docs-4-x-getting-started-upgrade-surround":11546},[4,1120,1948,2767],{"title":5,"titleTemplate":6,"icon":7,"path":8,"stem":9,"children":10,"page":108},"Docs",null,"i-lucide-book-marked","\u002Fdocs\u002F3.x","docs\u002F3.x",[11,109,246,426,907,999,1036,1078],{"title":12,"titleTemplate":13,"icon":14,"path":15,"stem":16,"children":17,"page":108},"Get Started","%s · Get Started with Nuxt","i-lucide-rocket","\u002Fdocs\u002F3.x\u002Fgetting-started","docs\u002F3.x\u002F1.getting-started",[18,23,28,33,38,43,48,53,58,63,68,73,78,83,88,93,98,103],{"title":19,"path":20,"stem":21,"titleTemplate":6,"icon":22},"Introduction","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fintroduction","docs\u002F3.x\u002F1.getting-started\u002F01.introduction","i-lucide-info",{"title":24,"path":25,"stem":26,"titleTemplate":6,"icon":27},"Installation","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Finstallation","docs\u002F3.x\u002F1.getting-started\u002F02.installation","i-lucide-play",{"title":29,"path":30,"stem":31,"titleTemplate":6,"icon":32},"Configuration","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fconfiguration","docs\u002F3.x\u002F1.getting-started\u002F03.configuration","i-lucide-cog",{"title":34,"path":35,"stem":36,"titleTemplate":6,"icon":37},"Views","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fviews","docs\u002F3.x\u002F1.getting-started\u002F04.views","i-lucide-panels-top-left",{"title":39,"path":40,"stem":41,"titleTemplate":6,"icon":42},"Assets","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fassets","docs\u002F3.x\u002F1.getting-started\u002F05.assets","i-lucide-image",{"title":44,"path":45,"stem":46,"titleTemplate":6,"icon":47},"Styling","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fstyling","docs\u002F3.x\u002F1.getting-started\u002F06.styling","i-lucide-palette",{"title":49,"path":50,"stem":51,"titleTemplate":6,"icon":52},"Routing","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Frouting","docs\u002F3.x\u002F1.getting-started\u002F07.routing","i-lucide-milestone",{"title":54,"path":55,"stem":56,"titleTemplate":6,"icon":57},"SEO and Meta","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fseo-meta","docs\u002F3.x\u002F1.getting-started\u002F08.seo-meta","i-lucide-file-search",{"title":59,"path":60,"stem":61,"titleTemplate":6,"icon":62},"Transitions","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Ftransitions","docs\u002F3.x\u002F1.getting-started\u002F09.transitions","i-lucide-toggle-right",{"title":64,"path":65,"stem":66,"titleTemplate":6,"icon":67},"Data Fetching","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fdata-fetching","docs\u002F3.x\u002F1.getting-started\u002F10.data-fetching","i-lucide-cable",{"title":69,"path":70,"stem":71,"titleTemplate":6,"icon":72},"State Management","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fstate-management","docs\u002F3.x\u002F1.getting-started\u002F11.state-management","i-lucide-database",{"title":74,"path":75,"stem":76,"titleTemplate":6,"icon":77},"Error Handling","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Ferror-handling","docs\u002F3.x\u002F1.getting-started\u002F12.error-handling","i-lucide-bug-off",{"title":79,"path":80,"stem":81,"titleTemplate":6,"icon":82},"Server","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fserver","docs\u002F3.x\u002F1.getting-started\u002F13.server","i-lucide-pc-case",{"title":84,"path":85,"stem":86,"titleTemplate":6,"icon":87},"Layers","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Flayers","docs\u002F3.x\u002F1.getting-started\u002F14.layers","i-lucide-layers",{"title":89,"path":90,"stem":91,"titleTemplate":6,"icon":92},"Prerendering","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fprerendering","docs\u002F3.x\u002F1.getting-started\u002F15.prerendering","i-lucide-file-code-2",{"title":94,"path":95,"stem":96,"titleTemplate":6,"icon":97},"Deployment","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fdeployment","docs\u002F3.x\u002F1.getting-started\u002F16.deployment","i-lucide-cloud",{"title":99,"path":100,"stem":101,"titleTemplate":6,"icon":102},"Testing","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Ftesting","docs\u002F3.x\u002F1.getting-started\u002F17.testing","i-lucide-circle-check",{"title":104,"path":105,"stem":106,"titleTemplate":6,"icon":107},"Upgrade Guide","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fupgrade","docs\u002F3.x\u002F1.getting-started\u002F18.upgrade","i-lucide-circle-arrow-up",false,{"title":110,"titleTemplate":111,"icon":112,"path":113,"stem":114,"children":115,"page":108},"Directory Structure","%s · Nuxt Directory Structure","i-vscode-icons-default-folder","\u002Fdocs\u002F3.x\u002Fdirectory-structure","docs\u002F3.x\u002F2.directory-structure",[116,121,126,131,136,141,146,151,156,161,165,170,174,179,184,189,194,199,204,209,214,218,223,228,232,236,241],{"title":117,"path":118,"stem":119,"titleTemplate":6,"icon":120},".nuxt","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxt","docs\u002F3.x\u002F2.directory-structure\u002F0.nuxt","i-vscode-icons-folder-type-temp",{"title":122,"path":123,"stem":124,"titleTemplate":6,"icon":125},".output","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Foutput","docs\u002F3.x\u002F2.directory-structure\u002F0.output","i-vscode-icons-folder-type-package",{"title":127,"path":128,"stem":129,"titleTemplate":6,"icon":130},"assets","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fassets","docs\u002F3.x\u002F2.directory-structure\u002F1.assets","i-vscode-icons-folder-type-asset",{"title":132,"path":133,"stem":134,"titleTemplate":6,"icon":135},"components","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fcomponents","docs\u002F3.x\u002F2.directory-structure\u002F1.components","i-vscode-icons-folder-type-component",{"title":137,"path":138,"stem":139,"titleTemplate":6,"icon":140},"composables","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fcomposables","docs\u002F3.x\u002F2.directory-structure\u002F1.composables","i-vscode-icons-folder-type-src",{"title":142,"path":143,"stem":144,"titleTemplate":6,"icon":145},"content","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fcontent","docs\u002F3.x\u002F2.directory-structure\u002F1.content","i-vscode-icons-folder-type-log",{"title":147,"path":148,"stem":149,"titleTemplate":6,"icon":150},"layers","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Flayers","docs\u002F3.x\u002F2.directory-structure\u002F1.layers","i-vscode-icons-folder-type-nuxt",{"title":152,"path":153,"stem":154,"titleTemplate":6,"icon":155},"layouts","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Flayouts","docs\u002F3.x\u002F2.directory-structure\u002F1.layouts","i-vscode-icons-folder-type-view",{"title":157,"path":158,"stem":159,"titleTemplate":6,"icon":160},"middleware","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fmiddleware","docs\u002F3.x\u002F2.directory-structure\u002F1.middleware","i-vscode-icons-folder-type-middleware",{"title":162,"path":163,"stem":164,"titleTemplate":6,"icon":150},"modules","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fmodules","docs\u002F3.x\u002F2.directory-structure\u002F1.modules",{"title":166,"path":167,"stem":168,"titleTemplate":6,"icon":169},"node_modules","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnode_modules","docs\u002F3.x\u002F2.directory-structure\u002F1.node_modules","i-vscode-icons-folder-type-node",{"title":171,"path":172,"stem":173,"titleTemplate":6,"icon":155},"pages","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fpages","docs\u002F3.x\u002F2.directory-structure\u002F1.pages",{"title":175,"path":176,"stem":177,"titleTemplate":6,"icon":178},"plugins","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fplugins","docs\u002F3.x\u002F2.directory-structure\u002F1.plugins","i-vscode-icons-folder-type-plugin",{"title":180,"path":181,"stem":182,"titleTemplate":6,"icon":183},"public","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fpublic","docs\u002F3.x\u002F2.directory-structure\u002F1.public","i-vscode-icons-folder-type-public",{"title":185,"path":186,"stem":187,"titleTemplate":6,"icon":188},"server","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fserver","docs\u002F3.x\u002F2.directory-structure\u002F1.server","i-vscode-icons-folder-type-server",{"title":190,"path":191,"stem":192,"titleTemplate":6,"icon":193},"shared","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fshared","docs\u002F3.x\u002F2.directory-structure\u002F1.shared","i-vscode-icons-folder-type-shared",{"title":195,"path":196,"stem":197,"titleTemplate":6,"icon":198},"utils","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Futils","docs\u002F3.x\u002F2.directory-structure\u002F1.utils","i-vscode-icons-folder-type-tools",{"title":200,"path":201,"stem":202,"titleTemplate":6,"icon":203},".env","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fenv","docs\u002F3.x\u002F2.directory-structure\u002F2.env","i-vscode-icons-file-type-dotenv",{"title":205,"path":206,"stem":207,"titleTemplate":6,"icon":208},".gitignore","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fgitignore","docs\u002F3.x\u002F2.directory-structure\u002F2.gitignore","i-vscode-icons-file-type-git",{"title":210,"path":211,"stem":212,"titleTemplate":6,"icon":213},".nuxtignore","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxtignore","docs\u002F3.x\u002F2.directory-structure\u002F2.nuxtignore","i-vscode-icons-file-type-nuxt",{"title":215,"path":216,"stem":217,"titleTemplate":6,"icon":213},".nuxtrc","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxtrc","docs\u002F3.x\u002F2.directory-structure\u002F2.nuxtrc",{"title":219,"path":220,"stem":221,"titleTemplate":6,"icon":222},"app.vue","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fapp","docs\u002F3.x\u002F2.directory-structure\u002F3.app","i-vscode-icons-file-type-vue",{"title":224,"path":225,"stem":226,"titleTemplate":6,"icon":227},"app.config.ts","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fapp-config","docs\u002F3.x\u002F2.directory-structure\u002F3.app-config","i-vscode-icons-file-type-light-config",{"title":229,"path":230,"stem":231,"titleTemplate":6,"icon":222},"error.vue","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Ferror","docs\u002F3.x\u002F2.directory-structure\u002F3.error",{"title":233,"path":234,"stem":235,"titleTemplate":6,"icon":213},"nuxt.config.ts","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxt-config","docs\u002F3.x\u002F2.directory-structure\u002F3.nuxt-config",{"title":237,"path":238,"stem":239,"titleTemplate":6,"icon":240},"package.json","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fpackage","docs\u002F3.x\u002F2.directory-structure\u002F3.package","i-vscode-icons-file-type-npm",{"title":242,"path":243,"stem":244,"titleTemplate":6,"icon":245},"tsconfig.json","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Ftsconfig","docs\u002F3.x\u002F2.directory-structure\u002F3.tsconfig","i-vscode-icons-file-type-tsconfig",{"title":247,"titleTemplate":6,"icon":248,"path":249,"stem":250,"children":251,"page":108},"Guide","i-lucide-book-open","\u002Fdocs\u002F3.x\u002Fguide","docs\u002F3.x\u002F3.guide",[252,287,306,321,356,379],{"title":253,"titleTemplate":254,"icon":255,"path":256,"stem":257,"children":258,"page":108},"Key Concepts","%s · Nuxt Concepts","i-lucide-medal","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts","docs\u002F3.x\u002F3.guide\u002F1.concepts",[259,263,267,271,275,279,283],{"title":260,"path":261,"stem":262,"titleTemplate":6},"Rendering Modes","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Frendering","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F1.rendering",{"title":264,"path":265,"stem":266,"titleTemplate":6},"Nuxt Lifecycle","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F2.nuxt-lifecycle",{"title":268,"path":269,"stem":270,"titleTemplate":6},"Auto-imports","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fauto-imports","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F3.auto-imports",{"title":272,"path":273,"stem":274,"titleTemplate":6},"Server Engine","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fserver-engine","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F4.server-engine",{"title":276,"path":277,"stem":278,"titleTemplate":6},"Modules","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fmodules","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F5.modules",{"title":280,"path":281,"stem":282,"titleTemplate":6},"TypeScript","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Ftypescript","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F8.typescript",{"title":284,"path":285,"stem":286,"titleTemplate":6},"Code Style","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fcode-style","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F9.code-style",{"title":288,"titleTemplate":289,"icon":290,"path":291,"stem":292,"children":293,"page":108},"Best Practices","%s · Best Practices","i-lucide-square-check","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices","docs\u002F3.x\u002F3.guide\u002F2.best-practices",[294,298,302],{"title":295,"path":296,"stem":297,"titleTemplate":6},"Nuxt and hydration","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices\u002Fhydration","docs\u002F3.x\u002F3.guide\u002F2.best-practices\u002Fhydration",{"title":299,"path":300,"stem":301,"titleTemplate":6},"Nuxt Performance","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices\u002Fperformance","docs\u002F3.x\u002F3.guide\u002F2.best-practices\u002Fperformance",{"title":303,"path":304,"stem":305,"titleTemplate":6},"Nuxt Plugins","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices\u002Fplugins","docs\u002F3.x\u002F3.guide\u002F2.best-practices\u002Fplugins",{"title":307,"titleTemplate":308,"icon":309,"path":310,"stem":311,"children":312,"page":108},"Working with AI","Working with AI: %s","i-lucide-bot","\u002Fdocs\u002F3.x\u002Fguide\u002Fai","docs\u002F3.x\u002F3.guide\u002F3.ai",[313,317],{"title":314,"path":315,"stem":316,"titleTemplate":6},"MCP Server","\u002Fdocs\u002F3.x\u002Fguide\u002Fai\u002Fmcp","docs\u002F3.x\u002F3.guide\u002F3.ai\u002F1.mcp",{"title":318,"path":319,"stem":320,"titleTemplate":6},"LLMs.txt","\u002Fdocs\u002F3.x\u002Fguide\u002Fai\u002Fllms-txt","docs\u002F3.x\u002F3.guide\u002F3.ai\u002F2.llms-txt",{"title":322,"titleTemplate":323,"icon":324,"path":325,"stem":326,"children":327,"page":108},"Module Author Guide","%s · Nuxt Modules Author Guide","i-lucide-box","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules","docs\u002F3.x\u002F3.guide\u002F4.modules",[328,332,336,340,344,348,352],{"title":329,"path":330,"stem":331,"titleTemplate":6},"Create Your First Module","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fgetting-started","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F1.getting-started",{"title":333,"path":334,"stem":335,"titleTemplate":6},"Understand Module Structure","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F2.module-anatomy",{"title":337,"path":338,"stem":339,"titleTemplate":6},"Add Plugins, Components & More","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Frecipes-basics","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F3.recipes-basics",{"title":341,"path":342,"stem":343,"titleTemplate":6},"Use Hooks & Extend Types","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F4.recipes-advanced",{"title":345,"path":346,"stem":347,"titleTemplate":6},"Test Your Module","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F5.testing",{"title":349,"path":350,"stem":351,"titleTemplate":6},"Follow Best Practices","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F6.best-practices",{"title":353,"path":354,"stem":355,"titleTemplate":6},"Publish & Share Your Module","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F7.ecosystem",{"title":357,"titleTemplate":358,"icon":359,"path":360,"stem":361,"children":362,"page":108},"Recipes","%s · Recipes","i-lucide-cooking-pot","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes","docs\u002F3.x\u002F3.guide\u002F5.recipes",[363,367,371,375],{"title":364,"path":365,"stem":366,"titleTemplate":6},"Custom Routing","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":368,"path":369,"stem":370,"titleTemplate":6},"Vite Plugins","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":372,"path":373,"stem":374,"titleTemplate":6},"Custom useFetch","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":376,"path":377,"stem":378,"titleTemplate":6},"Sessions and Authentication","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F4.sessions-and-authentication",{"title":380,"titleTemplate":381,"icon":382,"path":383,"stem":384,"children":385,"page":108},"Going Further","%s · Nuxt Advanced","i-lucide-star","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further","docs\u002F3.x\u002F3.guide\u002F6.going-further",[386,390,394,398,402,406,410,414,418,422],{"title":387,"path":388,"stem":389,"titleTemplate":6},"Custom Events","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":391,"path":392,"stem":393,"titleTemplate":6},"Experimental Features","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":395,"path":396,"stem":397,"titleTemplate":6},"Features","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":399,"path":400,"stem":401,"titleTemplate":6},"Runtime Config","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":403,"path":404,"stem":405,"titleTemplate":6},"Nightly Release Channel","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fnightly-release-channel","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F11.nightly-release-channel",{"title":407,"path":408,"stem":409,"titleTemplate":6},"Lifecycle Hooks","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":411,"path":412,"stem":413,"titleTemplate":6},"Nuxt Kit","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":415,"path":416,"stem":417,"titleTemplate":6},"NuxtApp","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":419,"path":420,"stem":421,"titleTemplate":6},"Authoring Nuxt Layers","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":423,"path":424,"stem":425,"titleTemplate":6},"Debugging","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fdebugging","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F9.debugging",{"title":427,"titleTemplate":428,"icon":429,"path":430,"stem":431,"children":432,"page":108},"API","%s · Nuxt API","i-lucide-code-xml","\u002Fdocs\u002F3.x\u002Fapi","docs\u002F3.x\u002F4.api",[433,499,622,745,816,889,902],{"title":434,"titleTemplate":435,"icon":324,"path":436,"stem":437,"children":438,"page":108},"Components","%s · Nuxt Components","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents","docs\u002F3.x\u002F4.api\u002F1.components",[439,443,447,451,455,459,463,467,471,475,479,483,487,491,495],{"title":440,"path":441,"stem":442,"titleTemplate":6},"\u003CClientOnly>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F3.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":444,"path":445,"stem":446,"titleTemplate":6},"\u003CDevOnly>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F3.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":448,"path":449,"stem":450,"titleTemplate":6},"\u003CNuxtClientFallback>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F3.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":452,"path":453,"stem":454,"titleTemplate":6},"\u003CNuxtPicture>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F3.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":456,"path":457,"stem":458,"titleTemplate":6},"\u003CTeleport>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F3.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":460,"path":461,"stem":462,"titleTemplate":6},"\u003CNuxtRouteAnnouncer>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F3.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":464,"path":465,"stem":466,"titleTemplate":6},"\u003CNuxtTime>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F3.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":468,"path":469,"stem":470,"titleTemplate":6},"\u003CNuxtPage>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F3.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":472,"path":473,"stem":474,"titleTemplate":6},"\u003CNuxtLayout>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F3.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":476,"path":477,"stem":478,"titleTemplate":6},"\u003CNuxtLink>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F3.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":480,"path":481,"stem":482,"titleTemplate":6},"\u003CNuxtLoadingIndicator>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F3.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":484,"path":485,"stem":486,"titleTemplate":6},"\u003CNuxtErrorBoundary>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F3.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":488,"path":489,"stem":490,"titleTemplate":6},"\u003CNuxtWelcome>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F3.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":492,"path":493,"stem":494,"titleTemplate":6},"\u003CNuxtIsland>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F3.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":496,"path":497,"stem":498,"titleTemplate":6},"\u003CNuxtImg>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-img","docs\u002F3.x\u002F4.api\u002F1.components\u002F9.nuxt-img",{"title":500,"titleTemplate":501,"icon":502,"path":503,"stem":504,"children":505,"page":108},"Composables","%s · Nuxt Composables","i-lucide-arrow-left-right","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables","docs\u002F3.x\u002F4.api\u002F2.composables",[506,510,514,518,522,526,530,534,538,542,546,550,554,558,562,566,570,574,578,582,586,590,594,598,602,606,610,614,618],{"title":507,"path":508,"stem":509,"titleTemplate":6},"onPrehydrate","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":511,"path":512,"stem":513,"titleTemplate":6},"useAppConfig","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":515,"path":516,"stem":517,"titleTemplate":6},"useAsyncData","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":519,"path":520,"stem":521,"titleTemplate":6},"useCookie","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":523,"path":524,"stem":525,"titleTemplate":6},"useError","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":527,"path":528,"stem":529,"titleTemplate":6},"useFetch","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":531,"path":532,"stem":533,"titleTemplate":6},"useHead","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":535,"path":536,"stem":537,"titleTemplate":6},"useHeadSafe","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":539,"path":540,"stem":541,"titleTemplate":6},"useHydration","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":543,"path":544,"stem":545,"titleTemplate":6},"useLazyAsyncData","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-lazy-async-data",{"title":547,"path":548,"stem":549,"titleTemplate":6},"useLazyFetch","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":551,"path":552,"stem":553,"titleTemplate":6},"useLoadingIndicator","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":555,"path":556,"stem":557,"titleTemplate":6},"useNuxtApp","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":559,"path":560,"stem":561,"titleTemplate":6},"useNuxtData","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":563,"path":564,"stem":565,"titleTemplate":6},"usePreviewMode","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":567,"path":568,"stem":569,"titleTemplate":6},"useRequestEvent","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":571,"path":572,"stem":573,"titleTemplate":6},"useRequestFetch","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":575,"path":576,"stem":577,"titleTemplate":6},"useRequestHeader","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":579,"path":580,"stem":581,"titleTemplate":6},"useRequestHeaders","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":583,"path":584,"stem":585,"titleTemplate":6},"useRequestURL","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":587,"path":588,"stem":589,"titleTemplate":6},"useResponseHeader","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":591,"path":592,"stem":593,"titleTemplate":6},"useRoute","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":595,"path":596,"stem":597,"titleTemplate":6},"useRouteAnnouncer","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":599,"path":600,"stem":601,"titleTemplate":6},"useRouter","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":603,"path":604,"stem":605,"titleTemplate":6},"useRuntimeConfig","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":607,"path":608,"stem":609,"titleTemplate":6},"useRuntimeHook","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":611,"path":612,"stem":613,"titleTemplate":6},"useSeoMeta","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":615,"path":616,"stem":617,"titleTemplate":6},"useServerSeoMeta","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-server-seo-meta",{"title":619,"path":620,"stem":621,"titleTemplate":6},"useState","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-state","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-state",{"title":623,"titleTemplate":624,"icon":625,"path":626,"stem":627,"children":628,"page":108},"Utils","%s · Nuxt Utils","i-lucide-square-function","\u002Fdocs\u002F3.x\u002Fapi\u002Futils","docs\u002F3.x\u002F4.api\u002F3.utils",[629,633,637,641,645,649,653,657,661,665,669,673,677,681,685,689,693,697,701,705,709,713,717,721,725,729,733,737,741],{"title":630,"path":631,"stem":632,"titleTemplate":6},"$fetch","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F3.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":634,"path":635,"stem":636,"titleTemplate":6},"abortNavigation","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":638,"path":639,"stem":640,"titleTemplate":6},"addRouteMiddleware","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":642,"path":643,"stem":644,"titleTemplate":6},"callOnce","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":646,"path":647,"stem":648,"titleTemplate":6},"clearError","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":650,"path":651,"stem":652,"titleTemplate":6},"clearNuxtData","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":654,"path":655,"stem":656,"titleTemplate":6},"clearNuxtState","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":658,"path":659,"stem":660,"titleTemplate":6},"createError","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":662,"path":663,"stem":664,"titleTemplate":6},"defineLazyHydrationComponent","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-lazy-hydration-component",{"title":666,"path":667,"stem":668,"titleTemplate":6},"defineNuxtComponent","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":670,"path":671,"stem":672,"titleTemplate":6},"defineNuxtPlugin","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":674,"path":675,"stem":676,"titleTemplate":6},"defineNuxtRouteMiddleware","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-route-middleware",{"title":678,"path":679,"stem":680,"titleTemplate":6},"definePageMeta","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":682,"path":683,"stem":684,"titleTemplate":6},"defineRouteRules","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":686,"path":687,"stem":688,"titleTemplate":6},"navigateTo","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":690,"path":691,"stem":692,"titleTemplate":6},"onBeforeRouteLeave","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-before-route-leave","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fon-before-route-leave",{"title":694,"path":695,"stem":696,"titleTemplate":6},"onBeforeRouteUpdate","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-before-route-update","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fon-before-route-update",{"title":698,"path":699,"stem":700,"titleTemplate":6},"onNuxtReady","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":702,"path":703,"stem":704,"titleTemplate":6},"prefetchComponents","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":706,"path":707,"stem":708,"titleTemplate":6},"preloadComponents","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":710,"path":711,"stem":712,"titleTemplate":6},"preloadRouteComponents","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":714,"path":715,"stem":716,"titleTemplate":6},"prerenderRoutes","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":718,"path":719,"stem":720,"titleTemplate":6},"refreshCookie","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F3.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":722,"path":723,"stem":724,"titleTemplate":6},"refreshNuxtData","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F3.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":726,"path":727,"stem":728,"titleTemplate":6},"reloadNuxtApp","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F3.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":730,"path":731,"stem":732,"titleTemplate":6},"setPageLayout","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":734,"path":735,"stem":736,"titleTemplate":6},"setResponseStatus","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":738,"path":739,"stem":740,"titleTemplate":6},"showError","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":742,"path":743,"stem":744,"titleTemplate":6},"updateAppConfig","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fupdate-app-config","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fupdate-app-config",{"title":746,"titleTemplate":747,"icon":748,"path":749,"stem":750,"children":751,"page":108},"Commands","%s · Nuxt Commands","i-lucide-square-terminal","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands","docs\u002F3.x\u002F4.api\u002F4.commands",[752,756,760,764,768,772,776,780,784,788,792,796,800,804,808,812],{"title":753,"path":754,"stem":755,"titleTemplate":6},"nuxt add","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fadd",{"title":757,"path":758,"stem":759,"titleTemplate":6},"nuxt analyze","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":761,"path":762,"stem":763,"titleTemplate":6},"nuxt build","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":765,"path":766,"stem":767,"titleTemplate":6},"nuxt build-module","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":769,"path":770,"stem":771,"titleTemplate":6},"nuxt cleanup","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":773,"path":774,"stem":775,"titleTemplate":6},"nuxt dev","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fdev",{"title":777,"path":778,"stem":779,"titleTemplate":6},"nuxt devtools","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":781,"path":782,"stem":783,"titleTemplate":6},"nuxt generate","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":785,"path":786,"stem":787,"titleTemplate":6},"nuxt info","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F3.x\u002F4.api\u002F4.commands\u002Finfo",{"title":789,"path":790,"stem":791,"titleTemplate":6},"create nuxt","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F3.x\u002F4.api\u002F4.commands\u002Finit",{"title":793,"path":794,"stem":795,"titleTemplate":6},"nuxt module","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":797,"path":798,"stem":799,"titleTemplate":6},"nuxt prepare","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":801,"path":802,"stem":803,"titleTemplate":6},"nuxt preview","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":805,"path":806,"stem":807,"titleTemplate":6},"nuxt test","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F3.x\u002F4.api\u002F4.commands\u002Ftest",{"title":809,"path":810,"stem":811,"titleTemplate":6},"nuxt typecheck","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F3.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":813,"path":814,"stem":815,"titleTemplate":6},"nuxt upgrade","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":411,"titleTemplate":817,"icon":818,"path":819,"stem":820,"children":821,"page":108},"%s · Nuxt Kit","i-lucide-package","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit","docs\u002F3.x\u002F4.api\u002F5.kit",[822,825,828,832,836,840,844,848,852,855,859,863,866,869,873,877,881,885],{"title":276,"path":823,"stem":824,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F3.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":399,"path":826,"stem":827,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F3.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":829,"path":830,"stem":831,"titleTemplate":6},"Templates","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F3.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":833,"path":834,"stem":835,"titleTemplate":6},"Nitro","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F3.x\u002F4.api\u002F5.kit\u002F11.nitro",{"title":837,"path":838,"stem":839,"titleTemplate":6},"Resolving","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F3.x\u002F4.api\u002F5.kit\u002F12.resolving",{"title":841,"path":842,"stem":843,"titleTemplate":6},"Logging","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F3.x\u002F4.api\u002F5.kit\u002F13.logging",{"title":845,"path":846,"stem":847,"titleTemplate":6},"Builder","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F3.x\u002F4.api\u002F5.kit\u002F14.builder",{"title":849,"path":850,"stem":851,"titleTemplate":6},"Examples","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F3.x\u002F4.api\u002F5.kit\u002F15.examples",{"title":84,"path":853,"stem":854,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F3.x\u002F4.api\u002F5.kit\u002F16.layers",{"title":856,"path":857,"stem":858,"titleTemplate":6},"Programmatic Usage","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F3.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":860,"path":861,"stem":862,"titleTemplate":6},"Compatibility","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F3.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":864,"stem":865,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F3.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":434,"path":867,"stem":868,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F3.x\u002F4.api\u002F5.kit\u002F5.components",{"title":870,"path":871,"stem":872,"titleTemplate":6},"Context","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F3.x\u002F4.api\u002F5.kit\u002F6.context",{"title":874,"path":875,"stem":876,"titleTemplate":6},"Pages","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F3.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":878,"path":879,"stem":880,"titleTemplate":6},"Layout","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F3.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":882,"path":883,"stem":884,"titleTemplate":6},"Head","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F3.x\u002F4.api\u002F5.kit\u002F9.head",{"title":886,"path":887,"stem":888,"titleTemplate":6},"Plugins","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F3.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":890,"titleTemplate":6,"icon":891,"path":892,"stem":893,"children":894,"page":108},"Advanced","i-lucide-brain","\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced","docs\u002F3.x\u002F4.api\u002F6.advanced",[895,898],{"title":407,"path":896,"stem":897,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F3.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":899,"path":900,"stem":901,"titleTemplate":6},"Import meta","\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F3.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":903,"path":904,"stem":905,"titleTemplate":906,"icon":32},"Nuxt Configuration","\u002Fdocs\u002F3.x\u002Fapi\u002Fnuxt-config","docs\u002F3.x\u002F4.api\u002F6.nuxt-config","%s",{"title":849,"titleTemplate":908,"icon":909,"path":910,"stem":911,"children":912,"page":108},"%s · Nuxt Examples","i-lucide-app-window-mac","\u002Fdocs\u002F3.x\u002Fexamples","docs\u002F3.x\u002F4.examples",[913,917,939,954,990],{"title":914,"path":915,"stem":916,"titleTemplate":6},"Hello World","\u002Fdocs\u002F3.x\u002Fexamples\u002Fhello-world","docs\u002F3.x\u002F4.examples\u002F0.hello-world",{"title":395,"path":918,"stem":919,"children":920,"page":108},"\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures","docs\u002F3.x\u002F4.examples\u002F1.features",[921,925,928,931,935],{"title":922,"path":923,"stem":924,"titleTemplate":6},"Auto Imports","\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F3.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":926,"stem":927,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F3.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":929,"stem":930,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F3.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":932,"path":933,"stem":934,"titleTemplate":6},"Meta Tags","\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F3.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":936,"path":937,"stem":938,"titleTemplate":6},"Layouts","\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F3.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":940,"stem":941,"children":942,"page":108},"\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting","docs\u002F3.x\u002F4.examples\u002F2.routing",[943,947,950],{"title":944,"path":945,"stem":946,"titleTemplate":6},"Middleware","\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F3.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":874,"path":948,"stem":949,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F3.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":951,"path":952,"stem":953,"titleTemplate":6},"Universal Router","\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F3.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":890,"path":955,"stem":956,"children":957,"page":108},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced","docs\u002F3.x\u002F4.examples\u002F4.advanced",[958,961,964,968,972,976,980,983,986],{"title":84,"path":959,"stem":960,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":962,"stem":963,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":965,"path":966,"stem":967,"titleTemplate":6},"JSX \u002F TSX","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":969,"path":970,"stem":971,"titleTemplate":6},"Locale","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":973,"path":974,"stem":975,"titleTemplate":6},"Module Extend Pages","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":977,"path":978,"stem":979,"titleTemplate":6},"Teleport","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":981,"stem":982,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":519,"path":984,"stem":985,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":987,"path":988,"stem":989,"titleTemplate":6},"Use Custom Fetch Composable","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fuse-custom-fetch-composable","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fuse-custom-fetch-composable",{"title":991,"path":992,"stem":993,"children":994,"page":108},"Experimental","\u002Fdocs\u002F3.x\u002Fexamples\u002Fexperimental","docs\u002F3.x\u002F4.examples\u002F7.experimental",[995],{"title":996,"path":997,"stem":998,"titleTemplate":6},"WASM","\u002Fdocs\u002F3.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F3.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1000,"titleTemplate":1001,"icon":1002,"path":1003,"stem":1004,"children":1005,"page":108},"Community","%s · Nuxt Community","i-lucide-messages-square","\u002Fdocs\u002F3.x\u002Fcommunity","docs\u002F3.x\u002F5.community",[1006,1011,1016,1021,1026,1031],{"title":1007,"path":1008,"stem":1009,"titleTemplate":6,"icon":1010},"Getting Help","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fgetting-help","docs\u002F3.x\u002F5.community\u002F2.getting-help","i-lucide-life-buoy",{"title":1012,"path":1013,"stem":1014,"titleTemplate":6,"icon":1015},"Reporting Bugs","\u002Fdocs\u002F3.x\u002Fcommunity\u002Freporting-bugs","docs\u002F3.x\u002F5.community\u002F3.reporting-bugs","i-lucide-bug",{"title":1017,"path":1018,"stem":1019,"titleTemplate":6,"icon":1020},"Contribution","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fcontribution","docs\u002F3.x\u002F5.community\u002F4.contribution","i-lucide-git-pull-request",{"title":1022,"path":1023,"stem":1024,"titleTemplate":6,"icon":1025},"Framework","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fframework-contribution","docs\u002F3.x\u002F5.community\u002F5.framework-contribution","i-lucide-github",{"title":1027,"path":1028,"stem":1029,"titleTemplate":6,"icon":1030},"Roadmap","\u002Fdocs\u002F3.x\u002Fcommunity\u002Froadmap","docs\u002F3.x\u002F5.community\u002F6.roadmap","i-lucide-map",{"title":1032,"path":1033,"stem":1034,"titleTemplate":6,"icon":1035},"Releases","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fchangelog","docs\u002F3.x\u002F5.community\u002F7.changelog","i-lucide-bell-dot",{"title":1037,"titleTemplate":1038,"icon":1039,"path":1040,"stem":1041,"children":1042,"page":108},"Migrate to Nuxt Bridge","Migrate to Nuxt Bridge: %s","i-lucide-ship","\u002Fdocs\u002F3.x\u002Fbridge","docs\u002F3.x\u002F6.bridge",[1043,1047,1050,1053,1057,1061,1065,1068,1071,1074],{"title":1044,"path":1045,"stem":1046,"titleTemplate":6},"Overview","\u002Fdocs\u002F3.x\u002Fbridge\u002Foverview","docs\u002F3.x\u002F6.bridge\u002F1.overview",{"title":29,"path":1048,"stem":1049,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fconfiguration","docs\u002F3.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":1051,"stem":1052,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Ftypescript","docs\u002F3.x\u002F6.bridge\u002F2.typescript",{"title":1054,"path":1055,"stem":1056,"titleTemplate":6},"Legacy Composition API","\u002Fdocs\u002F3.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F3.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1058,"path":1059,"stem":1060,"titleTemplate":6},"Plugins and Middleware","\u002Fdocs\u002F3.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F3.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1062,"path":1063,"stem":1064,"titleTemplate":6},"New Composition API","\u002Fdocs\u002F3.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F3.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":932,"path":1066,"stem":1067,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fmeta","docs\u002F3.x\u002F6.bridge\u002F6.meta",{"title":399,"path":1069,"stem":1070,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fruntime-config","docs\u002F3.x\u002F6.bridge\u002F7.runtime-config",{"title":833,"path":1072,"stem":1073,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fnitro","docs\u002F3.x\u002F6.bridge\u002F8.nitro",{"title":1075,"path":1076,"stem":1077,"titleTemplate":6},"Vite","\u002Fdocs\u002F3.x\u002Fbridge\u002Fvite","docs\u002F3.x\u002F6.bridge\u002F9.vite",{"title":1079,"titleTemplate":1080,"icon":107,"path":1081,"stem":1082,"children":1083,"page":108},"Migrate to Nuxt 3","Migrate to Nuxt 3: %s","\u002Fdocs\u002F3.x\u002Fmigration","docs\u002F3.x\u002F7.migration",[1084,1087,1091,1094,1097,1100,1103,1106,1109,1113,1117],{"title":1044,"path":1085,"stem":1086,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Foverview","docs\u002F3.x\u002F7.migration\u002F1.overview",{"title":1088,"path":1089,"stem":1090,"titleTemplate":6},"Build Tooling","\u002Fdocs\u002F3.x\u002Fmigration\u002Fbundling","docs\u002F3.x\u002F7.migration\u002F10.bundling",{"title":79,"path":1092,"stem":1093,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fserver","docs\u002F3.x\u002F7.migration\u002F11.server",{"title":29,"path":1095,"stem":1096,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fconfiguration","docs\u002F3.x\u002F7.migration\u002F2.configuration",{"title":276,"path":1098,"stem":1099,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fmodule-authors","docs\u002F3.x\u002F7.migration\u002F20.module-authors",{"title":922,"path":1101,"stem":1102,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fauto-imports","docs\u002F3.x\u002F7.migration\u002F3.auto-imports",{"title":932,"path":1104,"stem":1105,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fmeta","docs\u002F3.x\u002F7.migration\u002F4.meta",{"title":1058,"path":1107,"stem":1108,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F3.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1110,"path":1111,"stem":1112,"titleTemplate":6},"Pages and Layouts","\u002Fdocs\u002F3.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F3.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1114,"path":1115,"stem":1116,"titleTemplate":6},"Component Options","\u002Fdocs\u002F3.x\u002Fmigration\u002Fcomponent-options","docs\u002F3.x\u002F7.migration\u002F7.component-options",{"title":399,"path":1118,"stem":1119,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fruntime-config","docs\u002F3.x\u002F7.migration\u002F8.runtime-config",{"title":5,"titleTemplate":6,"icon":7,"path":1121,"stem":1122,"children":1123,"page":108},"\u002Fdocs\u002F4.x","docs\u002F4.x",[1124,1182,1276,1404,1778,1855,1877,1911],{"title":12,"titleTemplate":13,"icon":14,"path":1125,"stem":1126,"children":1127,"page":108},"\u002Fdocs\u002F4.x\u002Fgetting-started","docs\u002F4.x\u002F1.getting-started",[1128,1131,1134,1137,1140,1143,1146,1149,1152,1155,1158,1161,1164,1167,1170,1173,1176,1179],{"title":19,"path":1129,"stem":1130,"titleTemplate":6,"icon":22},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fintroduction","docs\u002F4.x\u002F1.getting-started\u002F01.introduction",{"title":24,"path":1132,"stem":1133,"titleTemplate":6,"icon":27},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Finstallation","docs\u002F4.x\u002F1.getting-started\u002F02.installation",{"title":29,"path":1135,"stem":1136,"titleTemplate":6,"icon":32},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fconfiguration","docs\u002F4.x\u002F1.getting-started\u002F03.configuration",{"title":34,"path":1138,"stem":1139,"titleTemplate":6,"icon":37},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fviews","docs\u002F4.x\u002F1.getting-started\u002F04.views",{"title":39,"path":1141,"stem":1142,"titleTemplate":6,"icon":42},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fassets","docs\u002F4.x\u002F1.getting-started\u002F05.assets",{"title":44,"path":1144,"stem":1145,"titleTemplate":6,"icon":47},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fstyling","docs\u002F4.x\u002F1.getting-started\u002F06.styling",{"title":49,"path":1147,"stem":1148,"titleTemplate":6,"icon":52},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Frouting","docs\u002F4.x\u002F1.getting-started\u002F07.routing",{"title":54,"path":1150,"stem":1151,"titleTemplate":6,"icon":57},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fseo-meta","docs\u002F4.x\u002F1.getting-started\u002F08.seo-meta",{"title":59,"path":1153,"stem":1154,"titleTemplate":6,"icon":62},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ftransitions","docs\u002F4.x\u002F1.getting-started\u002F09.transitions",{"title":64,"path":1156,"stem":1157,"titleTemplate":6,"icon":67},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fdata-fetching","docs\u002F4.x\u002F1.getting-started\u002F10.data-fetching",{"title":69,"path":1159,"stem":1160,"titleTemplate":6,"icon":72},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fstate-management","docs\u002F4.x\u002F1.getting-started\u002F11.state-management",{"title":74,"path":1162,"stem":1163,"titleTemplate":6,"icon":77},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ferror-handling","docs\u002F4.x\u002F1.getting-started\u002F12.error-handling",{"title":79,"path":1165,"stem":1166,"titleTemplate":6,"icon":82},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fserver","docs\u002F4.x\u002F1.getting-started\u002F13.server",{"title":84,"path":1168,"stem":1169,"titleTemplate":6,"icon":87},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Flayers","docs\u002F4.x\u002F1.getting-started\u002F14.layers",{"title":89,"path":1171,"stem":1172,"titleTemplate":6,"icon":92},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fprerendering","docs\u002F4.x\u002F1.getting-started\u002F15.prerendering",{"title":94,"path":1174,"stem":1175,"titleTemplate":6,"icon":97},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fdeployment","docs\u002F4.x\u002F1.getting-started\u002F16.deployment",{"title":99,"path":1177,"stem":1178,"titleTemplate":6,"icon":102},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ftesting","docs\u002F4.x\u002F1.getting-started\u002F17.testing",{"title":104,"path":1180,"stem":1181,"titleTemplate":6,"icon":107},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fupgrade","docs\u002F4.x\u002F1.getting-started\u002F18.upgrade",{"title":110,"titleTemplate":111,"icon":112,"path":1183,"stem":1184,"children":1185,"page":108},"\u002Fdocs\u002F4.x\u002Fdirectory-structure","docs\u002F4.x\u002F2.directory-structure",[1186,1189,1192,1234,1237,1240,1243,1246,1249,1252,1255,1258,1261,1264,1267,1270,1273],{"title":117,"path":1187,"stem":1188,"titleTemplate":6,"icon":120},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxt","docs\u002F4.x\u002F2.directory-structure\u002F0.nuxt",{"title":122,"path":1190,"stem":1191,"titleTemplate":6,"icon":125},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Foutput","docs\u002F4.x\u002F2.directory-structure\u002F0.output",{"title":1193,"titleTemplate":111,"head":1194,"defaultOpen":1196,"icon":1197,"path":1198,"stem":1199,"children":1200,"page":108},"app",{"title":1195},"app\u002F",true,"i-vscode-icons-folder-type-app","\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp","docs\u002F4.x\u002F2.directory-structure\u002F1.app",[1201,1204,1207,1210,1213,1216,1219,1222,1225,1228,1231],{"title":127,"path":1202,"stem":1203,"titleTemplate":6,"icon":130},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fassets","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.assets",{"title":132,"path":1205,"stem":1206,"titleTemplate":6,"icon":135},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fcomponents","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.components",{"title":137,"path":1208,"stem":1209,"titleTemplate":6,"icon":140},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fcomposables","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.composables",{"title":152,"path":1211,"stem":1212,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Flayouts","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.layouts",{"title":157,"path":1214,"stem":1215,"titleTemplate":6,"icon":160},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fmiddleware","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.middleware",{"title":171,"path":1217,"stem":1218,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fpages","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.pages",{"title":175,"path":1220,"stem":1221,"titleTemplate":6,"icon":178},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fplugins","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.plugins",{"title":195,"path":1223,"stem":1224,"titleTemplate":6,"icon":198},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Futils","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.utils",{"title":219,"path":1226,"stem":1227,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fapp","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F3.app",{"title":224,"path":1229,"stem":1230,"titleTemplate":6,"icon":227},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fapp-config","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F3.app-config",{"title":229,"path":1232,"stem":1233,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Ferror","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F3.error",{"title":142,"path":1235,"stem":1236,"titleTemplate":6,"icon":145},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fcontent","docs\u002F4.x\u002F2.directory-structure\u002F1.content",{"title":147,"path":1238,"stem":1239,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Flayers","docs\u002F4.x\u002F2.directory-structure\u002F1.layers",{"title":162,"path":1241,"stem":1242,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fmodules","docs\u002F4.x\u002F2.directory-structure\u002F1.modules",{"title":166,"path":1244,"stem":1245,"titleTemplate":6,"icon":169},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnode_modules","docs\u002F4.x\u002F2.directory-structure\u002F1.node_modules",{"title":180,"path":1247,"stem":1248,"titleTemplate":6,"icon":183},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fpublic","docs\u002F4.x\u002F2.directory-structure\u002F1.public",{"title":185,"path":1250,"stem":1251,"titleTemplate":6,"icon":188},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fserver","docs\u002F4.x\u002F2.directory-structure\u002F1.server",{"title":190,"path":1253,"stem":1254,"titleTemplate":6,"icon":193},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fshared","docs\u002F4.x\u002F2.directory-structure\u002F1.shared",{"title":200,"path":1256,"stem":1257,"titleTemplate":6,"icon":203},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fenv","docs\u002F4.x\u002F2.directory-structure\u002F2.env",{"title":205,"path":1259,"stem":1260,"titleTemplate":6,"icon":208},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fgitignore","docs\u002F4.x\u002F2.directory-structure\u002F2.gitignore",{"title":210,"path":1262,"stem":1263,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxtignore","docs\u002F4.x\u002F2.directory-structure\u002F2.nuxtignore",{"title":215,"path":1265,"stem":1266,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxtrc","docs\u002F4.x\u002F2.directory-structure\u002F2.nuxtrc",{"title":233,"path":1268,"stem":1269,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxt-config","docs\u002F4.x\u002F2.directory-structure\u002F3.nuxt-config",{"title":237,"path":1271,"stem":1272,"titleTemplate":6,"icon":240},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fpackage","docs\u002F4.x\u002F2.directory-structure\u002F3.package",{"title":242,"path":1274,"stem":1275,"titleTemplate":6,"icon":245},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Ftsconfig","docs\u002F4.x\u002F2.directory-structure\u002F3.tsconfig",{"title":247,"titleTemplate":6,"icon":248,"path":1277,"stem":1278,"children":1279,"page":108},"\u002Fdocs\u002F4.x\u002Fguide","docs\u002F4.x\u002F3.guide",[1280,1305,1319,1329,1354,1370],{"title":253,"titleTemplate":254,"icon":255,"path":1281,"stem":1282,"children":1283,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts","docs\u002F4.x\u002F3.guide\u002F1.concepts",[1284,1287,1290,1293,1296,1299,1302],{"title":260,"path":1285,"stem":1286,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Frendering","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F1.rendering",{"title":264,"path":1288,"stem":1289,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F2.nuxt-lifecycle",{"title":268,"path":1291,"stem":1292,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fauto-imports","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F3.auto-imports",{"title":272,"path":1294,"stem":1295,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fserver-engine","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F4.server-engine",{"title":276,"path":1297,"stem":1298,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fmodules","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F5.modules",{"title":280,"path":1300,"stem":1301,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Ftypescript","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F8.typescript",{"title":284,"path":1303,"stem":1304,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fcode-style","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F9.code-style",{"title":288,"titleTemplate":289,"icon":290,"path":1306,"stem":1307,"children":1308,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices","docs\u002F4.x\u002F3.guide\u002F2.best-practices",[1309,1313,1316],{"title":1310,"path":1311,"stem":1312,"titleTemplate":6},"Nuxt and Hydration","\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fhydration","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fhydration",{"title":299,"path":1314,"stem":1315,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fperformance","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fperformance",{"title":303,"path":1317,"stem":1318,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fplugins","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fplugins",{"title":307,"titleTemplate":308,"icon":309,"path":1320,"stem":1321,"children":1322,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai","docs\u002F4.x\u002F3.guide\u002F3.ai",[1323,1326],{"title":314,"path":1324,"stem":1325,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai\u002Fmcp","docs\u002F4.x\u002F3.guide\u002F3.ai\u002F1.mcp",{"title":318,"path":1327,"stem":1328,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai\u002Fllms-txt","docs\u002F4.x\u002F3.guide\u002F3.ai\u002F2.llms-txt",{"title":322,"titleTemplate":323,"icon":324,"path":1330,"stem":1331,"children":1332,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules","docs\u002F4.x\u002F3.guide\u002F4.modules",[1333,1336,1339,1342,1345,1348,1351],{"title":329,"path":1334,"stem":1335,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fgetting-started","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F1.getting-started",{"title":333,"path":1337,"stem":1338,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F2.module-anatomy",{"title":337,"path":1340,"stem":1341,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Frecipes-basics","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F3.recipes-basics",{"title":341,"path":1343,"stem":1344,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F4.recipes-advanced",{"title":345,"path":1346,"stem":1347,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F5.testing",{"title":349,"path":1349,"stem":1350,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F6.best-practices",{"title":353,"path":1352,"stem":1353,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F7.ecosystem",{"title":357,"titleTemplate":358,"icon":359,"path":1355,"stem":1356,"children":1357,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes","docs\u002F4.x\u002F3.guide\u002F5.recipes",[1358,1361,1364,1367],{"title":364,"path":1359,"stem":1360,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":368,"path":1362,"stem":1363,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":372,"path":1365,"stem":1366,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":376,"path":1368,"stem":1369,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F4.sessions-and-authentication",{"title":380,"titleTemplate":381,"icon":382,"path":1371,"stem":1372,"children":1373,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further","docs\u002F4.x\u002F3.guide\u002F6.going-further",[1374,1377,1380,1383,1386,1389,1392,1395,1398,1401],{"title":387,"path":1375,"stem":1376,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":391,"path":1378,"stem":1379,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":395,"path":1381,"stem":1382,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":399,"path":1384,"stem":1385,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":403,"path":1387,"stem":1388,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fnightly-release-channel","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F11.nightly-release-channel",{"title":407,"path":1390,"stem":1391,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":411,"path":1393,"stem":1394,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":415,"path":1396,"stem":1397,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":419,"path":1399,"stem":1400,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":423,"path":1402,"stem":1403,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fdebugging","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F9.debugging",{"title":427,"titleTemplate":428,"icon":429,"path":1405,"stem":1406,"children":1407,"page":108},"\u002Fdocs\u002F4.x\u002Fapi","docs\u002F4.x\u002F4.api",[1408,1461,1564,1655,1707,1765,1775],{"title":434,"titleTemplate":435,"icon":324,"path":1409,"stem":1410,"children":1411,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents","docs\u002F4.x\u002F4.api\u002F1.components",[1412,1415,1418,1421,1424,1427,1430,1433,1437,1440,1443,1446,1449,1452,1455,1458],{"title":440,"path":1413,"stem":1414,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":444,"path":1416,"stem":1417,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":448,"path":1419,"stem":1420,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":452,"path":1422,"stem":1423,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F4.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":456,"path":1425,"stem":1426,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F4.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":460,"path":1428,"stem":1429,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F4.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":464,"path":1431,"stem":1432,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F4.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":1434,"path":1435,"stem":1436,"titleTemplate":6},"\u003CNuxtAnnouncer>","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-announcer","docs\u002F4.x\u002F4.api\u002F1.components\u002F14.nuxt-announcer",{"title":468,"path":1438,"stem":1439,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F4.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":472,"path":1441,"stem":1442,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F4.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":476,"path":1444,"stem":1445,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F4.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":480,"path":1447,"stem":1448,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F4.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":484,"path":1450,"stem":1451,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F4.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":488,"path":1453,"stem":1454,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F4.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":492,"path":1456,"stem":1457,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F4.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":496,"path":1459,"stem":1460,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-img","docs\u002F4.x\u002F4.api\u002F1.components\u002F9.nuxt-img",{"title":500,"titleTemplate":501,"icon":502,"path":1462,"stem":1463,"children":1464,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables","docs\u002F4.x\u002F4.api\u002F2.composables",[1465,1469,1473,1476,1480,1483,1486,1489,1492,1495,1498,1501,1504,1507,1510,1513,1516,1519,1522,1525,1528,1531,1534,1537,1540,1543,1546,1549,1552,1555,1558,1561],{"title":1466,"path":1467,"stem":1468,"titleTemplate":6},"createUseAsyncData","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fcreate-use-async-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fcreate-use-async-data",{"title":1470,"path":1471,"stem":1472,"titleTemplate":6},"createUseFetch","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fcreate-use-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fcreate-use-fetch",{"title":507,"path":1474,"stem":1475,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":1477,"path":1478,"stem":1479,"titleTemplate":6},"useAnnouncer","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-announcer","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-announcer",{"title":511,"path":1481,"stem":1482,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":515,"path":1484,"stem":1485,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":519,"path":1487,"stem":1488,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":523,"path":1490,"stem":1491,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":527,"path":1493,"stem":1494,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":531,"path":1496,"stem":1497,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":535,"path":1499,"stem":1500,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":539,"path":1502,"stem":1503,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":543,"path":1505,"stem":1506,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-lazy-async-data",{"title":547,"path":1508,"stem":1509,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":551,"path":1511,"stem":1512,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":555,"path":1514,"stem":1515,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":559,"path":1517,"stem":1518,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":563,"path":1520,"stem":1521,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":567,"path":1523,"stem":1524,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":571,"path":1526,"stem":1527,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":575,"path":1529,"stem":1530,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":579,"path":1532,"stem":1533,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":583,"path":1535,"stem":1536,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":587,"path":1538,"stem":1539,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":591,"path":1541,"stem":1542,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":595,"path":1544,"stem":1545,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":599,"path":1547,"stem":1548,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":603,"path":1550,"stem":1551,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":607,"path":1553,"stem":1554,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":611,"path":1556,"stem":1557,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":615,"path":1559,"stem":1560,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-server-seo-meta",{"title":619,"path":1562,"stem":1563,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-state","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-state",{"title":623,"titleTemplate":624,"icon":625,"path":1565,"stem":1566,"children":1567,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils","docs\u002F4.x\u002F4.api\u002F3.utils",[1568,1571,1574,1577,1580,1583,1586,1589,1592,1595,1598,1601,1604,1607,1610,1613,1616,1619,1622,1625,1628,1631,1634,1637,1640,1643,1646,1649,1652],{"title":630,"path":1569,"stem":1570,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F4.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":634,"path":1572,"stem":1573,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":638,"path":1575,"stem":1576,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":642,"path":1578,"stem":1579,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":646,"path":1581,"stem":1582,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":650,"path":1584,"stem":1585,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":654,"path":1587,"stem":1588,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":658,"path":1590,"stem":1591,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":662,"path":1593,"stem":1594,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-lazy-hydration-component",{"title":666,"path":1596,"stem":1597,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":670,"path":1599,"stem":1600,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":674,"path":1602,"stem":1603,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-route-middleware",{"title":678,"path":1605,"stem":1606,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":682,"path":1608,"stem":1609,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":686,"path":1611,"stem":1612,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":690,"path":1614,"stem":1615,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-before-route-leave","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fon-before-route-leave",{"title":694,"path":1617,"stem":1618,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-before-route-update","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fon-before-route-update",{"title":698,"path":1620,"stem":1621,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":702,"path":1623,"stem":1624,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":706,"path":1626,"stem":1627,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":710,"path":1629,"stem":1630,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":714,"path":1632,"stem":1633,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":718,"path":1635,"stem":1636,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F4.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":722,"path":1638,"stem":1639,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F4.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":726,"path":1641,"stem":1642,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F4.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":730,"path":1644,"stem":1645,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":734,"path":1647,"stem":1648,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":738,"path":1650,"stem":1651,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":742,"path":1653,"stem":1654,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fupdate-app-config","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fupdate-app-config",{"title":746,"titleTemplate":747,"icon":748,"path":1656,"stem":1657,"children":1658,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands","docs\u002F4.x\u002F4.api\u002F4.commands",[1659,1662,1665,1668,1671,1674,1677,1680,1683,1686,1689,1692,1695,1698,1701,1704],{"title":753,"path":1660,"stem":1661,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fadd",{"title":757,"path":1663,"stem":1664,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":761,"path":1666,"stem":1667,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":765,"path":1669,"stem":1670,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":769,"path":1672,"stem":1673,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":773,"path":1675,"stem":1676,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fdev",{"title":777,"path":1678,"stem":1679,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":781,"path":1681,"stem":1682,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":785,"path":1684,"stem":1685,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F4.x\u002F4.api\u002F4.commands\u002Finfo",{"title":789,"path":1687,"stem":1688,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F4.x\u002F4.api\u002F4.commands\u002Finit",{"title":793,"path":1690,"stem":1691,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":797,"path":1693,"stem":1694,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":801,"path":1696,"stem":1697,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":805,"path":1699,"stem":1700,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F4.x\u002F4.api\u002F4.commands\u002Ftest",{"title":809,"path":1702,"stem":1703,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F4.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":813,"path":1705,"stem":1706,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":411,"titleTemplate":817,"icon":818,"path":1708,"stem":1709,"children":1710,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit","docs\u002F4.x\u002F4.api\u002F5.kit",[1711,1714,1717,1720,1723,1726,1729,1732,1735,1738,1741,1744,1747,1750,1753,1756,1759,1762],{"title":276,"path":1712,"stem":1713,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F4.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":399,"path":1715,"stem":1716,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F4.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":829,"path":1718,"stem":1719,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F4.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":833,"path":1721,"stem":1722,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F4.x\u002F4.api\u002F5.kit\u002F11.nitro",{"title":837,"path":1724,"stem":1725,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F4.x\u002F4.api\u002F5.kit\u002F12.resolving",{"title":841,"path":1727,"stem":1728,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F4.x\u002F4.api\u002F5.kit\u002F13.logging",{"title":845,"path":1730,"stem":1731,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F4.x\u002F4.api\u002F5.kit\u002F14.builder",{"title":849,"path":1733,"stem":1734,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F4.x\u002F4.api\u002F5.kit\u002F15.examples",{"title":84,"path":1736,"stem":1737,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F4.x\u002F4.api\u002F5.kit\u002F16.layers",{"title":856,"path":1739,"stem":1740,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F4.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":860,"path":1742,"stem":1743,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F4.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":1745,"stem":1746,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F4.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":434,"path":1748,"stem":1749,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F4.x\u002F4.api\u002F5.kit\u002F5.components",{"title":870,"path":1751,"stem":1752,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F4.x\u002F4.api\u002F5.kit\u002F6.context",{"title":874,"path":1754,"stem":1755,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F4.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":878,"path":1757,"stem":1758,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F4.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":882,"path":1760,"stem":1761,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F4.x\u002F4.api\u002F5.kit\u002F9.head",{"title":886,"path":1763,"stem":1764,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F4.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":890,"titleTemplate":6,"icon":891,"path":1766,"stem":1767,"children":1768,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced","docs\u002F4.x\u002F4.api\u002F6.advanced",[1769,1772],{"title":407,"path":1770,"stem":1771,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F4.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":899,"path":1773,"stem":1774,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F4.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":903,"path":1776,"stem":1777,"titleTemplate":906,"icon":32},"\u002Fdocs\u002F4.x\u002Fapi\u002Fnuxt-config","docs\u002F4.x\u002F4.api\u002F6.nuxt-config",{"title":849,"titleTemplate":908,"icon":909,"path":1779,"stem":1780,"children":1781,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples","docs\u002F4.x\u002F4.examples",[1782,1785,1804,1817,1848],{"title":914,"path":1783,"stem":1784,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fhello-world","docs\u002F4.x\u002F4.examples\u002F0.hello-world",{"title":395,"path":1786,"stem":1787,"children":1788,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures","docs\u002F4.x\u002F4.examples\u002F1.features",[1789,1792,1795,1798,1801],{"title":922,"path":1790,"stem":1791,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F4.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":1793,"stem":1794,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F4.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":1796,"stem":1797,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F4.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":932,"path":1799,"stem":1800,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F4.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":936,"path":1802,"stem":1803,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F4.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":1805,"stem":1806,"children":1807,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting","docs\u002F4.x\u002F4.examples\u002F2.routing",[1808,1811,1814],{"title":944,"path":1809,"stem":1810,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":874,"path":1812,"stem":1813,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":951,"path":1815,"stem":1816,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":890,"path":1818,"stem":1819,"children":1820,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced","docs\u002F4.x\u002F4.examples\u002F4.advanced",[1821,1824,1827,1830,1833,1836,1839,1842,1845],{"title":84,"path":1822,"stem":1823,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":1825,"stem":1826,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":965,"path":1828,"stem":1829,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":969,"path":1831,"stem":1832,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":973,"path":1834,"stem":1835,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":977,"path":1837,"stem":1838,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":1840,"stem":1841,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":519,"path":1843,"stem":1844,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":987,"path":1846,"stem":1847,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fuse-custom-fetch-composable","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fuse-custom-fetch-composable",{"title":991,"path":1849,"stem":1850,"children":1851,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fexperimental","docs\u002F4.x\u002F4.examples\u002F7.experimental",[1852],{"title":996,"path":1853,"stem":1854,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F4.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1000,"titleTemplate":1001,"icon":1002,"path":1856,"stem":1857,"children":1858,"page":108},"\u002Fdocs\u002F4.x\u002Fcommunity","docs\u002F4.x\u002F5.community",[1859,1862,1865,1868,1871,1874],{"title":1007,"path":1860,"stem":1861,"titleTemplate":6,"icon":1010},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fgetting-help","docs\u002F4.x\u002F5.community\u002F2.getting-help",{"title":1012,"path":1863,"stem":1864,"titleTemplate":6,"icon":1015},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Freporting-bugs","docs\u002F4.x\u002F5.community\u002F3.reporting-bugs",{"title":1017,"path":1866,"stem":1867,"titleTemplate":6,"icon":1020},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fcontribution","docs\u002F4.x\u002F5.community\u002F4.contribution",{"title":1022,"path":1869,"stem":1870,"titleTemplate":6,"icon":1025},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fframework-contribution","docs\u002F4.x\u002F5.community\u002F5.framework-contribution",{"title":1027,"path":1872,"stem":1873,"titleTemplate":6,"icon":1030},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Froadmap","docs\u002F4.x\u002F5.community\u002F6.roadmap",{"title":1032,"path":1875,"stem":1876,"titleTemplate":6,"icon":1035},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fchangelog","docs\u002F4.x\u002F5.community\u002F7.changelog",{"title":1037,"titleTemplate":1038,"icon":1039,"path":1878,"stem":1879,"children":1880,"page":108},"\u002Fdocs\u002F4.x\u002Fbridge","docs\u002F4.x\u002F6.bridge",[1881,1884,1887,1890,1893,1896,1899,1902,1905,1908],{"title":1044,"path":1882,"stem":1883,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Foverview","docs\u002F4.x\u002F6.bridge\u002F1.overview",{"title":29,"path":1885,"stem":1886,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fconfiguration","docs\u002F4.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":1888,"stem":1889,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Ftypescript","docs\u002F4.x\u002F6.bridge\u002F2.typescript",{"title":1054,"path":1891,"stem":1892,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F4.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1058,"path":1894,"stem":1895,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F4.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1062,"path":1897,"stem":1898,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F4.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":932,"path":1900,"stem":1901,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fmeta","docs\u002F4.x\u002F6.bridge\u002F6.meta",{"title":399,"path":1903,"stem":1904,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fruntime-config","docs\u002F4.x\u002F6.bridge\u002F7.runtime-config",{"title":833,"path":1906,"stem":1907,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fnitro","docs\u002F4.x\u002F6.bridge\u002F8.nitro",{"title":1075,"path":1909,"stem":1910,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fvite","docs\u002F4.x\u002F6.bridge\u002F9.vite",{"title":1079,"titleTemplate":1080,"icon":107,"path":1912,"stem":1913,"children":1914,"page":108},"\u002Fdocs\u002F4.x\u002Fmigration","docs\u002F4.x\u002F7.migration",[1915,1918,1921,1924,1927,1930,1933,1936,1939,1942,1945],{"title":1044,"path":1916,"stem":1917,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Foverview","docs\u002F4.x\u002F7.migration\u002F1.overview",{"title":1088,"path":1919,"stem":1920,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fbundling","docs\u002F4.x\u002F7.migration\u002F10.bundling",{"title":79,"path":1922,"stem":1923,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fserver","docs\u002F4.x\u002F7.migration\u002F11.server",{"title":29,"path":1925,"stem":1926,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fconfiguration","docs\u002F4.x\u002F7.migration\u002F2.configuration",{"title":276,"path":1928,"stem":1929,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fmodule-authors","docs\u002F4.x\u002F7.migration\u002F20.module-authors",{"title":922,"path":1931,"stem":1932,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fauto-imports","docs\u002F4.x\u002F7.migration\u002F3.auto-imports",{"title":932,"path":1934,"stem":1935,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fmeta","docs\u002F4.x\u002F7.migration\u002F4.meta",{"title":1058,"path":1937,"stem":1938,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F4.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1110,"path":1940,"stem":1941,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F4.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1114,"path":1943,"stem":1944,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fcomponent-options","docs\u002F4.x\u002F7.migration\u002F7.component-options",{"title":399,"path":1946,"stem":1947,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fruntime-config","docs\u002F4.x\u002F7.migration\u002F8.runtime-config",{"title":5,"titleTemplate":6,"icon":7,"path":1949,"stem":1950,"children":1951,"page":108},"\u002Fdocs\u002F5.x","docs\u002F5.x",[1952,2010,2100,2227,2597,2674,2696,2730],{"title":12,"titleTemplate":13,"icon":14,"path":1953,"stem":1954,"children":1955,"page":108},"\u002Fdocs\u002F5.x\u002Fgetting-started","docs\u002F5.x\u002F1.getting-started",[1956,1959,1962,1965,1968,1971,1974,1977,1980,1983,1986,1989,1992,1995,1998,2001,2004,2007],{"title":19,"path":1957,"stem":1958,"titleTemplate":6,"icon":22},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fintroduction","docs\u002F5.x\u002F1.getting-started\u002F01.introduction",{"title":24,"path":1960,"stem":1961,"titleTemplate":6,"icon":27},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Finstallation","docs\u002F5.x\u002F1.getting-started\u002F02.installation",{"title":29,"path":1963,"stem":1964,"titleTemplate":6,"icon":32},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fconfiguration","docs\u002F5.x\u002F1.getting-started\u002F03.configuration",{"title":34,"path":1966,"stem":1967,"titleTemplate":6,"icon":37},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fviews","docs\u002F5.x\u002F1.getting-started\u002F04.views",{"title":39,"path":1969,"stem":1970,"titleTemplate":6,"icon":42},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fassets","docs\u002F5.x\u002F1.getting-started\u002F05.assets",{"title":44,"path":1972,"stem":1973,"titleTemplate":6,"icon":47},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fstyling","docs\u002F5.x\u002F1.getting-started\u002F06.styling",{"title":49,"path":1975,"stem":1976,"titleTemplate":6,"icon":52},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Frouting","docs\u002F5.x\u002F1.getting-started\u002F07.routing",{"title":54,"path":1978,"stem":1979,"titleTemplate":6,"icon":57},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fseo-meta","docs\u002F5.x\u002F1.getting-started\u002F08.seo-meta",{"title":59,"path":1981,"stem":1982,"titleTemplate":6,"icon":62},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ftransitions","docs\u002F5.x\u002F1.getting-started\u002F09.transitions",{"title":64,"path":1984,"stem":1985,"titleTemplate":6,"icon":67},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fdata-fetching","docs\u002F5.x\u002F1.getting-started\u002F10.data-fetching",{"title":69,"path":1987,"stem":1988,"titleTemplate":6,"icon":72},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fstate-management","docs\u002F5.x\u002F1.getting-started\u002F11.state-management",{"title":74,"path":1990,"stem":1991,"titleTemplate":6,"icon":77},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ferror-handling","docs\u002F5.x\u002F1.getting-started\u002F12.error-handling",{"title":79,"path":1993,"stem":1994,"titleTemplate":6,"icon":82},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fserver","docs\u002F5.x\u002F1.getting-started\u002F13.server",{"title":84,"path":1996,"stem":1997,"titleTemplate":6,"icon":87},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Flayers","docs\u002F5.x\u002F1.getting-started\u002F14.layers",{"title":89,"path":1999,"stem":2000,"titleTemplate":6,"icon":92},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fprerendering","docs\u002F5.x\u002F1.getting-started\u002F15.prerendering",{"title":94,"path":2002,"stem":2003,"titleTemplate":6,"icon":97},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fdeployment","docs\u002F5.x\u002F1.getting-started\u002F16.deployment",{"title":99,"path":2005,"stem":2006,"titleTemplate":6,"icon":102},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ftesting","docs\u002F5.x\u002F1.getting-started\u002F17.testing",{"title":104,"path":2008,"stem":2009,"titleTemplate":6,"icon":107},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fupgrade","docs\u002F5.x\u002F1.getting-started\u002F18.upgrade",{"title":110,"titleTemplate":111,"icon":112,"path":2011,"stem":2012,"children":2013,"page":108},"\u002Fdocs\u002F5.x\u002Fdirectory-structure","docs\u002F5.x\u002F2.directory-structure",[2014,2017,2020,2058,2061,2064,2067,2070,2073,2076,2079,2082,2085,2088,2091,2094,2097],{"title":117,"path":2015,"stem":2016,"titleTemplate":6,"icon":120},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxt","docs\u002F5.x\u002F2.directory-structure\u002F0.nuxt",{"title":122,"path":2018,"stem":2019,"titleTemplate":6,"icon":125},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Foutput","docs\u002F5.x\u002F2.directory-structure\u002F0.output",{"title":1193,"titleTemplate":111,"head":2021,"defaultOpen":1196,"icon":1197,"path":2022,"stem":2023,"children":2024,"page":108},{"title":1195},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp","docs\u002F5.x\u002F2.directory-structure\u002F1.app",[2025,2028,2031,2034,2037,2040,2043,2046,2049,2052,2055],{"title":127,"path":2026,"stem":2027,"titleTemplate":6,"icon":130},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fassets","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.assets",{"title":132,"path":2029,"stem":2030,"titleTemplate":6,"icon":135},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fcomponents","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.components",{"title":137,"path":2032,"stem":2033,"titleTemplate":6,"icon":140},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fcomposables","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.composables",{"title":152,"path":2035,"stem":2036,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Flayouts","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.layouts",{"title":157,"path":2038,"stem":2039,"titleTemplate":6,"icon":160},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fmiddleware","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.middleware",{"title":171,"path":2041,"stem":2042,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fpages","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.pages",{"title":175,"path":2044,"stem":2045,"titleTemplate":6,"icon":178},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fplugins","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.plugins",{"title":195,"path":2047,"stem":2048,"titleTemplate":6,"icon":198},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Futils","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.utils",{"title":219,"path":2050,"stem":2051,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fapp","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F3.app",{"title":224,"path":2053,"stem":2054,"titleTemplate":6,"icon":227},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fapp-config","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F3.app-config",{"title":229,"path":2056,"stem":2057,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Ferror","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F3.error",{"title":142,"path":2059,"stem":2060,"titleTemplate":6,"icon":145},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fcontent","docs\u002F5.x\u002F2.directory-structure\u002F1.content",{"title":147,"path":2062,"stem":2063,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Flayers","docs\u002F5.x\u002F2.directory-structure\u002F1.layers",{"title":162,"path":2065,"stem":2066,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fmodules","docs\u002F5.x\u002F2.directory-structure\u002F1.modules",{"title":166,"path":2068,"stem":2069,"titleTemplate":6,"icon":169},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnode_modules","docs\u002F5.x\u002F2.directory-structure\u002F1.node_modules",{"title":180,"path":2071,"stem":2072,"titleTemplate":6,"icon":183},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fpublic","docs\u002F5.x\u002F2.directory-structure\u002F1.public",{"title":185,"path":2074,"stem":2075,"titleTemplate":6,"icon":188},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fserver","docs\u002F5.x\u002F2.directory-structure\u002F1.server",{"title":190,"path":2077,"stem":2078,"titleTemplate":6,"icon":193},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fshared","docs\u002F5.x\u002F2.directory-structure\u002F1.shared",{"title":200,"path":2080,"stem":2081,"titleTemplate":6,"icon":203},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fenv","docs\u002F5.x\u002F2.directory-structure\u002F2.env",{"title":205,"path":2083,"stem":2084,"titleTemplate":6,"icon":208},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fgitignore","docs\u002F5.x\u002F2.directory-structure\u002F2.gitignore",{"title":210,"path":2086,"stem":2087,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxtignore","docs\u002F5.x\u002F2.directory-structure\u002F2.nuxtignore",{"title":215,"path":2089,"stem":2090,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxtrc","docs\u002F5.x\u002F2.directory-structure\u002F2.nuxtrc",{"title":233,"path":2092,"stem":2093,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxt-config","docs\u002F5.x\u002F2.directory-structure\u002F3.nuxt-config",{"title":237,"path":2095,"stem":2096,"titleTemplate":6,"icon":240},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fpackage","docs\u002F5.x\u002F2.directory-structure\u002F3.package",{"title":242,"path":2098,"stem":2099,"titleTemplate":6,"icon":245},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Ftsconfig","docs\u002F5.x\u002F2.directory-structure\u002F3.tsconfig",{"title":247,"titleTemplate":6,"icon":248,"path":2101,"stem":2102,"children":2103,"page":108},"\u002Fdocs\u002F5.x\u002Fguide","docs\u002F5.x\u002F3.guide",[2104,2129,2142,2152,2177,2193],{"title":253,"titleTemplate":254,"icon":255,"path":2105,"stem":2106,"children":2107,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts","docs\u002F5.x\u002F3.guide\u002F1.concepts",[2108,2111,2114,2117,2120,2123,2126],{"title":260,"path":2109,"stem":2110,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Frendering","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F1.rendering",{"title":264,"path":2112,"stem":2113,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F2.nuxt-lifecycle",{"title":268,"path":2115,"stem":2116,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fauto-imports","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F3.auto-imports",{"title":272,"path":2118,"stem":2119,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fserver-engine","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F4.server-engine",{"title":276,"path":2121,"stem":2122,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fmodules","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F5.modules",{"title":280,"path":2124,"stem":2125,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Ftypescript","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F8.typescript",{"title":284,"path":2127,"stem":2128,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fcode-style","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F9.code-style",{"title":288,"titleTemplate":289,"icon":290,"path":2130,"stem":2131,"children":2132,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices","docs\u002F5.x\u002F3.guide\u002F2.best-practices",[2133,2136,2139],{"title":1310,"path":2134,"stem":2135,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fhydration","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fhydration",{"title":299,"path":2137,"stem":2138,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fperformance","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fperformance",{"title":303,"path":2140,"stem":2141,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fplugins","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fplugins",{"title":307,"titleTemplate":308,"icon":309,"path":2143,"stem":2144,"children":2145,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fai","docs\u002F5.x\u002F3.guide\u002F3.ai",[2146,2149],{"title":314,"path":2147,"stem":2148,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fai\u002Fmcp","docs\u002F5.x\u002F3.guide\u002F3.ai\u002F1.mcp",{"title":318,"path":2150,"stem":2151,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fai\u002Fllms-txt","docs\u002F5.x\u002F3.guide\u002F3.ai\u002F2.llms-txt",{"title":322,"titleTemplate":323,"icon":324,"path":2153,"stem":2154,"children":2155,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules","docs\u002F5.x\u002F3.guide\u002F4.modules",[2156,2159,2162,2165,2168,2171,2174],{"title":329,"path":2157,"stem":2158,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fgetting-started","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F1.getting-started",{"title":333,"path":2160,"stem":2161,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F2.module-anatomy",{"title":337,"path":2163,"stem":2164,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Frecipes-basics","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F3.recipes-basics",{"title":341,"path":2166,"stem":2167,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F4.recipes-advanced",{"title":345,"path":2169,"stem":2170,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F5.testing",{"title":349,"path":2172,"stem":2173,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F6.best-practices",{"title":353,"path":2175,"stem":2176,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F7.ecosystem",{"title":357,"titleTemplate":358,"icon":359,"path":2178,"stem":2179,"children":2180,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes","docs\u002F5.x\u002F3.guide\u002F5.recipes",[2181,2184,2187,2190],{"title":364,"path":2182,"stem":2183,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":368,"path":2185,"stem":2186,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":372,"path":2188,"stem":2189,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":376,"path":2191,"stem":2192,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F4.sessions-and-authentication",{"title":380,"titleTemplate":381,"icon":382,"path":2194,"stem":2195,"children":2196,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further","docs\u002F5.x\u002F3.guide\u002F6.going-further",[2197,2200,2203,2206,2209,2212,2215,2218,2221,2224],{"title":387,"path":2198,"stem":2199,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":391,"path":2201,"stem":2202,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":395,"path":2204,"stem":2205,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":399,"path":2207,"stem":2208,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":403,"path":2210,"stem":2211,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fnightly-release-channel","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F11.nightly-release-channel",{"title":407,"path":2213,"stem":2214,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":411,"path":2216,"stem":2217,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":415,"path":2219,"stem":2220,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":419,"path":2222,"stem":2223,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":423,"path":2225,"stem":2226,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fdebugging","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F9.debugging",{"title":427,"titleTemplate":428,"icon":429,"path":2228,"stem":2229,"children":2230,"page":108},"\u002Fdocs\u002F5.x\u002Fapi","docs\u002F5.x\u002F4.api",[2231,2283,2383,2474,2526,2584,2594],{"title":434,"titleTemplate":435,"icon":324,"path":2232,"stem":2233,"children":2234,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents","docs\u002F5.x\u002F4.api\u002F1.components",[2235,2238,2241,2244,2247,2250,2253,2256,2259,2262,2265,2268,2271,2274,2277,2280],{"title":440,"path":2236,"stem":2237,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":444,"path":2239,"stem":2240,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":448,"path":2242,"stem":2243,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":452,"path":2245,"stem":2246,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F5.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":456,"path":2248,"stem":2249,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F5.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":460,"path":2251,"stem":2252,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F5.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":464,"path":2254,"stem":2255,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F5.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":1434,"path":2257,"stem":2258,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-announcer","docs\u002F5.x\u002F4.api\u002F1.components\u002F14.nuxt-announcer",{"title":468,"path":2260,"stem":2261,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F5.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":472,"path":2263,"stem":2264,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F5.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":476,"path":2266,"stem":2267,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F5.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":480,"path":2269,"stem":2270,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F5.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":484,"path":2272,"stem":2273,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F5.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":488,"path":2275,"stem":2276,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F5.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":492,"path":2278,"stem":2279,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F5.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":496,"path":2281,"stem":2282,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-img","docs\u002F5.x\u002F4.api\u002F1.components\u002F9.nuxt-img",{"title":500,"titleTemplate":501,"icon":502,"path":2284,"stem":2285,"children":2286,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables","docs\u002F5.x\u002F4.api\u002F2.composables",[2287,2290,2293,2296,2299,2302,2305,2308,2311,2314,2317,2320,2323,2326,2329,2332,2335,2338,2341,2344,2347,2350,2353,2356,2359,2362,2365,2368,2371,2374,2377,2380],{"title":1466,"path":2288,"stem":2289,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fcreate-use-async-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fcreate-use-async-data",{"title":1470,"path":2291,"stem":2292,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fcreate-use-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fcreate-use-fetch",{"title":507,"path":2294,"stem":2295,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":1477,"path":2297,"stem":2298,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-announcer","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-announcer",{"title":511,"path":2300,"stem":2301,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":515,"path":2303,"stem":2304,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":519,"path":2306,"stem":2307,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":523,"path":2309,"stem":2310,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":527,"path":2312,"stem":2313,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":531,"path":2315,"stem":2316,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":535,"path":2318,"stem":2319,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":539,"path":2321,"stem":2322,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":543,"path":2324,"stem":2325,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-lazy-async-data",{"title":547,"path":2327,"stem":2328,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":551,"path":2330,"stem":2331,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":555,"path":2333,"stem":2334,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":559,"path":2336,"stem":2337,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":563,"path":2339,"stem":2340,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":567,"path":2342,"stem":2343,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":571,"path":2345,"stem":2346,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":575,"path":2348,"stem":2349,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":579,"path":2351,"stem":2352,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":583,"path":2354,"stem":2355,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":587,"path":2357,"stem":2358,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":591,"path":2360,"stem":2361,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":595,"path":2363,"stem":2364,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":599,"path":2366,"stem":2367,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":603,"path":2369,"stem":2370,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":607,"path":2372,"stem":2373,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":611,"path":2375,"stem":2376,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":615,"path":2378,"stem":2379,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-server-seo-meta",{"title":619,"path":2381,"stem":2382,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-state","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-state",{"title":623,"titleTemplate":624,"icon":625,"path":2384,"stem":2385,"children":2386,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils","docs\u002F5.x\u002F4.api\u002F3.utils",[2387,2390,2393,2396,2399,2402,2405,2408,2411,2414,2417,2420,2423,2426,2429,2432,2435,2438,2441,2444,2447,2450,2453,2456,2459,2462,2465,2468,2471],{"title":630,"path":2388,"stem":2389,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F5.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":634,"path":2391,"stem":2392,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":638,"path":2394,"stem":2395,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":642,"path":2397,"stem":2398,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":646,"path":2400,"stem":2401,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":650,"path":2403,"stem":2404,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":654,"path":2406,"stem":2407,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":658,"path":2409,"stem":2410,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":662,"path":2412,"stem":2413,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-lazy-hydration-component",{"title":666,"path":2415,"stem":2416,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":670,"path":2418,"stem":2419,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":674,"path":2421,"stem":2422,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-route-middleware",{"title":678,"path":2424,"stem":2425,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":682,"path":2427,"stem":2428,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":686,"path":2430,"stem":2431,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":690,"path":2433,"stem":2434,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-before-route-leave","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fon-before-route-leave",{"title":694,"path":2436,"stem":2437,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-before-route-update","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fon-before-route-update",{"title":698,"path":2439,"stem":2440,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":702,"path":2442,"stem":2443,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":706,"path":2445,"stem":2446,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":710,"path":2448,"stem":2449,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":714,"path":2451,"stem":2452,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":718,"path":2454,"stem":2455,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F5.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":722,"path":2457,"stem":2458,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F5.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":726,"path":2460,"stem":2461,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F5.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":730,"path":2463,"stem":2464,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":734,"path":2466,"stem":2467,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":738,"path":2469,"stem":2470,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":742,"path":2472,"stem":2473,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fupdate-app-config","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fupdate-app-config",{"title":746,"titleTemplate":747,"icon":748,"path":2475,"stem":2476,"children":2477,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands","docs\u002F5.x\u002F4.api\u002F4.commands",[2478,2481,2484,2487,2490,2493,2496,2499,2502,2505,2508,2511,2514,2517,2520,2523],{"title":753,"path":2479,"stem":2480,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fadd",{"title":757,"path":2482,"stem":2483,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":761,"path":2485,"stem":2486,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":765,"path":2488,"stem":2489,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":769,"path":2491,"stem":2492,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":773,"path":2494,"stem":2495,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fdev",{"title":777,"path":2497,"stem":2498,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":781,"path":2500,"stem":2501,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":785,"path":2503,"stem":2504,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F5.x\u002F4.api\u002F4.commands\u002Finfo",{"title":789,"path":2506,"stem":2507,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F5.x\u002F4.api\u002F4.commands\u002Finit",{"title":793,"path":2509,"stem":2510,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":797,"path":2512,"stem":2513,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":801,"path":2515,"stem":2516,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":805,"path":2518,"stem":2519,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F5.x\u002F4.api\u002F4.commands\u002Ftest",{"title":809,"path":2521,"stem":2522,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F5.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":813,"path":2524,"stem":2525,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":411,"titleTemplate":817,"icon":818,"path":2527,"stem":2528,"children":2529,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit","docs\u002F5.x\u002F4.api\u002F5.kit",[2530,2533,2536,2539,2542,2545,2548,2551,2554,2557,2560,2563,2566,2569,2572,2575,2578,2581],{"title":276,"path":2531,"stem":2532,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F5.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":399,"path":2534,"stem":2535,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F5.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":829,"path":2537,"stem":2538,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F5.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":833,"path":2540,"stem":2541,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F5.x\u002F4.api\u002F5.kit\u002F11.nitro",{"title":837,"path":2543,"stem":2544,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F5.x\u002F4.api\u002F5.kit\u002F12.resolving",{"title":841,"path":2546,"stem":2547,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F5.x\u002F4.api\u002F5.kit\u002F13.logging",{"title":845,"path":2549,"stem":2550,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F5.x\u002F4.api\u002F5.kit\u002F14.builder",{"title":849,"path":2552,"stem":2553,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F5.x\u002F4.api\u002F5.kit\u002F15.examples",{"title":84,"path":2555,"stem":2556,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F5.x\u002F4.api\u002F5.kit\u002F16.layers",{"title":856,"path":2558,"stem":2559,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F5.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":860,"path":2561,"stem":2562,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F5.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":2564,"stem":2565,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F5.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":434,"path":2567,"stem":2568,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F5.x\u002F4.api\u002F5.kit\u002F5.components",{"title":870,"path":2570,"stem":2571,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F5.x\u002F4.api\u002F5.kit\u002F6.context",{"title":874,"path":2573,"stem":2574,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F5.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":878,"path":2576,"stem":2577,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F5.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":882,"path":2579,"stem":2580,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F5.x\u002F4.api\u002F5.kit\u002F9.head",{"title":886,"path":2582,"stem":2583,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F5.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":890,"titleTemplate":6,"icon":891,"path":2585,"stem":2586,"children":2587,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced","docs\u002F5.x\u002F4.api\u002F6.advanced",[2588,2591],{"title":407,"path":2589,"stem":2590,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F5.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":899,"path":2592,"stem":2593,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F5.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":903,"path":2595,"stem":2596,"titleTemplate":906,"icon":32},"\u002Fdocs\u002F5.x\u002Fapi\u002Fnuxt-config","docs\u002F5.x\u002F4.api\u002F6.nuxt-config",{"title":849,"titleTemplate":908,"icon":909,"path":2598,"stem":2599,"children":2600,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples","docs\u002F5.x\u002F4.examples",[2601,2604,2623,2636,2667],{"title":914,"path":2602,"stem":2603,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fhello-world","docs\u002F5.x\u002F4.examples\u002F0.hello-world",{"title":395,"path":2605,"stem":2606,"children":2607,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures","docs\u002F5.x\u002F4.examples\u002F1.features",[2608,2611,2614,2617,2620],{"title":922,"path":2609,"stem":2610,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F5.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":2612,"stem":2613,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F5.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":2615,"stem":2616,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F5.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":932,"path":2618,"stem":2619,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F5.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":936,"path":2621,"stem":2622,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F5.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":2624,"stem":2625,"children":2626,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting","docs\u002F5.x\u002F4.examples\u002F2.routing",[2627,2630,2633],{"title":944,"path":2628,"stem":2629,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":874,"path":2631,"stem":2632,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":951,"path":2634,"stem":2635,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":890,"path":2637,"stem":2638,"children":2639,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced","docs\u002F5.x\u002F4.examples\u002F4.advanced",[2640,2643,2646,2649,2652,2655,2658,2661,2664],{"title":84,"path":2641,"stem":2642,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":2644,"stem":2645,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":965,"path":2647,"stem":2648,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":969,"path":2650,"stem":2651,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":973,"path":2653,"stem":2654,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":977,"path":2656,"stem":2657,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":2659,"stem":2660,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":519,"path":2662,"stem":2663,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":987,"path":2665,"stem":2666,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fuse-custom-fetch-composable","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fuse-custom-fetch-composable",{"title":991,"path":2668,"stem":2669,"children":2670,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fexperimental","docs\u002F5.x\u002F4.examples\u002F7.experimental",[2671],{"title":996,"path":2672,"stem":2673,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F5.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1000,"titleTemplate":1001,"icon":1002,"path":2675,"stem":2676,"children":2677,"page":108},"\u002Fdocs\u002F5.x\u002Fcommunity","docs\u002F5.x\u002F5.community",[2678,2681,2684,2687,2690,2693],{"title":1007,"path":2679,"stem":2680,"titleTemplate":6,"icon":1010},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fgetting-help","docs\u002F5.x\u002F5.community\u002F2.getting-help",{"title":1012,"path":2682,"stem":2683,"titleTemplate":6,"icon":1015},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Freporting-bugs","docs\u002F5.x\u002F5.community\u002F3.reporting-bugs",{"title":1017,"path":2685,"stem":2686,"titleTemplate":6,"icon":1020},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fcontribution","docs\u002F5.x\u002F5.community\u002F4.contribution",{"title":1022,"path":2688,"stem":2689,"titleTemplate":6,"icon":1025},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fframework-contribution","docs\u002F5.x\u002F5.community\u002F5.framework-contribution",{"title":1027,"path":2691,"stem":2692,"titleTemplate":6,"icon":1030},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Froadmap","docs\u002F5.x\u002F5.community\u002F6.roadmap",{"title":1032,"path":2694,"stem":2695,"titleTemplate":6,"icon":1035},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fchangelog","docs\u002F5.x\u002F5.community\u002F7.changelog",{"title":1037,"titleTemplate":1038,"icon":1039,"path":2697,"stem":2698,"children":2699,"page":108},"\u002Fdocs\u002F5.x\u002Fbridge","docs\u002F5.x\u002F6.bridge",[2700,2703,2706,2709,2712,2715,2718,2721,2724,2727],{"title":1044,"path":2701,"stem":2702,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Foverview","docs\u002F5.x\u002F6.bridge\u002F1.overview",{"title":29,"path":2704,"stem":2705,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fconfiguration","docs\u002F5.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":2707,"stem":2708,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Ftypescript","docs\u002F5.x\u002F6.bridge\u002F2.typescript",{"title":1054,"path":2710,"stem":2711,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F5.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1058,"path":2713,"stem":2714,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F5.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1062,"path":2716,"stem":2717,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F5.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":932,"path":2719,"stem":2720,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fmeta","docs\u002F5.x\u002F6.bridge\u002F6.meta",{"title":399,"path":2722,"stem":2723,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fruntime-config","docs\u002F5.x\u002F6.bridge\u002F7.runtime-config",{"title":833,"path":2725,"stem":2726,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fnitro","docs\u002F5.x\u002F6.bridge\u002F8.nitro",{"title":1075,"path":2728,"stem":2729,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fvite","docs\u002F5.x\u002F6.bridge\u002F9.vite",{"title":1079,"titleTemplate":1080,"icon":107,"path":2731,"stem":2732,"children":2733,"page":108},"\u002Fdocs\u002F5.x\u002Fmigration","docs\u002F5.x\u002F7.migration",[2734,2737,2740,2743,2746,2749,2752,2755,2758,2761,2764],{"title":1044,"path":2735,"stem":2736,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Foverview","docs\u002F5.x\u002F7.migration\u002F1.overview",{"title":1088,"path":2738,"stem":2739,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fbundling","docs\u002F5.x\u002F7.migration\u002F10.bundling",{"title":79,"path":2741,"stem":2742,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fserver","docs\u002F5.x\u002F7.migration\u002F11.server",{"title":29,"path":2744,"stem":2745,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fconfiguration","docs\u002F5.x\u002F7.migration\u002F2.configuration",{"title":276,"path":2747,"stem":2748,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fmodule-authors","docs\u002F5.x\u002F7.migration\u002F20.module-authors",{"title":922,"path":2750,"stem":2751,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fauto-imports","docs\u002F5.x\u002F7.migration\u002F3.auto-imports",{"title":932,"path":2753,"stem":2754,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fmeta","docs\u002F5.x\u002F7.migration\u002F4.meta",{"title":1058,"path":2756,"stem":2757,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F5.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1110,"path":2759,"stem":2760,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F5.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1114,"path":2762,"stem":2763,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fcomponent-options","docs\u002F5.x\u002F7.migration\u002F7.component-options",{"title":399,"path":2765,"stem":2766,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fruntime-config","docs\u002F5.x\u002F7.migration\u002F8.runtime-config",{"title":2768,"path":2769,"stem":2770,"children":2771,"page":108},"Blog","\u002Fblog","blog",[2772,2776,2780,2784,2788,2792,2796,2800,2804,2808,2812,2816,2820,2824,2828,2832,2836,2840,2844,2848,2852],{"title":2773,"path":2774,"stem":2775},"Announcing 3.0","\u002Fblog\u002Fv3","blog\u002F1.v3",{"title":2777,"path":2778,"stem":2779},"Nuxt 3.3","\u002Fblog\u002Fv3-3","blog\u002F10.v3-3",{"title":2781,"path":2782,"stem":2783},"Nuxt 3.4","\u002Fblog\u002Fv3-4","blog\u002F11.v3-4",{"title":2785,"path":2786,"stem":2787},"Nuxt 3.5","\u002Fblog\u002Fv3-5","blog\u002F12.v3-5",{"title":2789,"path":2790,"stem":2791},"Nuxt 3.6","\u002Fblog\u002Fv3-6","blog\u002F13.v3-6",{"title":2793,"path":2794,"stem":2795},"Nuxt on the Edge","\u002Fblog\u002Fnuxt-on-the-edge","blog\u002F14.nuxt-on-the-edge",{"title":2797,"path":2798,"stem":2799},"Nuxt DevTools v1.0","\u002Fblog\u002Fnuxt-devtools-v1-0","blog\u002F18.nuxt-devtools-v1-0",{"title":2801,"path":2802,"stem":2803},"Nuxt: A vision for 2023","\u002Fblog\u002Fvision-2023","blog\u002F2.vision-2023",{"title":2805,"path":2806,"stem":2807},"The Evolution of Shiki v1.0","\u002Fblog\u002Fshiki-v1","blog\u002F21.shiki-v1",{"title":2809,"path":2810,"stem":2811},"Refreshed Nuxt ESLint Integrations","\u002Fblog\u002Feslint-module","blog\u002F24.eslint-module",{"title":2813,"path":2814,"stem":2815},"Introducing Nuxt Scripts","\u002Fblog\u002Fnuxt-scripts","blog\u002F26.nuxt-scripts",{"title":2817,"path":2818,"stem":2819},"Introducing Nuxt Icon v1","\u002Fblog\u002Fnuxt-icon-v1-0","blog\u002F29.nuxt-icon-v1-0",{"title":2821,"path":2822,"stem":2823},"Introducing Nuxt DevTools","\u002Fblog\u002Fintroducing-nuxt-devtools","blog\u002F3.introducing-nuxt-devtools",{"title":2825,"path":2826,"stem":2827},"Announcing Nuxt 3 Release Candidate","\u002Fblog\u002Fnuxt3-rc","blog\u002F3.nuxt3-rc",{"title":2829,"path":2830,"stem":2831},"Nuxt 2 End-of-Life (EOL)","\u002Fblog\u002Fnuxt2-eol","blog\u002F4.nuxt2-eol",{"title":2833,"path":2834,"stem":2835},"Introducing Nuxt 3 Beta","\u002Fblog\u002Fnuxt3-beta","blog\u002F4.nuxt3-beta",{"title":2837,"path":2838,"stem":2839},"Going Full Static","\u002Fblog\u002Fgoing-full-static","blog\u002F5.going-full-static",{"title":2841,"path":2842,"stem":2843},"Introducing Smart Prefetching","\u002Fblog\u002Fintroducing-smart-prefetching","blog\u002F6.introducing-smart-prefetching",{"title":2845,"path":2846,"stem":2847},"Understanding how fetch works in Nuxt 2.12","\u002Fblog\u002Funderstanding-how-fetch-works-in-nuxt-2-12","blog\u002F7.understanding-how-fetch-works-in-nuxt-2-12",{"title":2849,"path":2850,"stem":2851},"Nuxt 2 Static Improvements","\u002Fblog\u002Fnuxt-static-improvements","blog\u002F8.nuxt-static-improvements",{"title":2853,"path":2854,"stem":2855},"Nuxt 2: From Terminal to Browser","\u002Fblog\u002Fnuxtjs-from-terminal-to-browser","blog\u002F9.nuxtjs-from-terminal-to-browser",{"v5":2857,"v4":2858,"v3":2859,"v2":2860},"5 (nightly)","4.4.2","3.21.2","2.18.1",{"id":2862,"title":104,"body":2863,"description":11540,"extension":11541,"links":6,"meta":11542,"navigation":11543,"path":1180,"seo":11544,"stem":1181,"titleTemplate":6,"__hash__":11545},"docsv4\u002Fdocs\u002F4.x\u002F1.getting-started\u002F18.upgrade.md",{"type":2864,"value":2865,"toc":11483},"minimark",[2866,2871,2876,2892,2983,2986,2993,2997,3005,3009,3016,3023,3095,3105,3191,3200,3203,3207,3214,3219,3228,3235,3251,3256,3315,3319,3322,3336,3340,3345,3356,3813,3817,3832,4150,4157,4163,4168,4171,4192,4216,4221,4224,4233,4236,4249,4272,4291,4302,4311,4359,4363,4367,4370,4391,4394,4404,4407,4427,4481,4492,4498,4544,4548,4551,4554,4625,4628,4631,4634,4638,4647,4656,4664,4671,4770,4773,4777,4782,4789,4797,4800,4886,5069,5077,5080,5113,5119,5122,5208,5216,5255,5258,5334,5338,5343,5346,5354,5421,5424,5429,5432,5832,5835,5892,5896,5900,5903,5910,5913,5927,5930,5946,5949,5952,5963,5966,5972,5975,5995,5998,6161,6171,6185,6189,6193,6196,6215,6218,6221,6228,6231,6234,6263,6267,6271,6274,6277,6280,6310,6320,6326,6329,6332,6346,6348,6394,6398,6402,6405,6417,6440,6443,6446,6449,6454,6502,6518,6634,6646,6665,6672,6719,6723,6727,6730,6745,6791,6794,6827,6830,6833,6836,6850,6853,6904,6911,6915,6924,6927,6935,6992,6996,7000,7003,7006,7017,7020,7027,7074,7078,7082,7085,7098,7101,7111,7114,7122,7179,7181,7227,7231,7235,7238,7251,7254,7265,7271,7274,7283,7462,7465,7511,7524,7528,7531,7543,7546,7566,7569,7585,7593,7613,7617,7620,7642,8287,8290,8293,8305,8335,8338,8340,8395,8402,8412,8416,8419,8434,8437,8446,8451,8455,8458,8481,8484,8499,8502,8514,8533,8536,8609,8614,8683,8695,8699,8720,8723,8742,8745,8757,8760,8772,8852,8855,8901,8909,8913,8916,8930,8936,8944,8947,8968,8971,8977,9012,9015,9066,9074,9078,9098,9101,9110,9113,9123,9126,9129,9227,9235,9242,9246,9249,9257,9260,9266,9269,9277,9283,9321,9328,9336,9339,9345,9348,9360,9363,9369,9388,9392,9396,9399,9409,9412,9419,9427,9430,9433,9562,9566,9570,9573,9584,9597,9600,9607,9617,9626,9629,9632,9657,9734,9747,10152,10159,10163,10167,10170,10181,10184,10198,10201,10204,10287,10291,10295,10298,10301,10375,10378,10381,10406,10418,10421,10427,10430,10840,10843,10847,10851,10854,10857,10899,10902,10905,10908,10932,10940,10944,10947,10953,10967,10970,10980,10983,10992,11074,11080,11084,11088,11091,11112,11115,11139,11142,11152,11191,11194,11240,11244,11247,11451,11455,11458,11466,11470,11473,11480],[2867,2868,2870],"h2",{"id":2869},"upgrading-nuxt","Upgrading Nuxt",[2872,2873,2875],"h3",{"id":2874},"latest-release","Latest release",[2877,2878,2879,2880,2887,2888,2891],"p",{},"To upgrade Nuxt to the ",[2881,2882,2886],"a",{"href":2883,"rel":2884},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Freleases",[2885],"nofollow","latest release",", use the ",[2889,2890,813],"code",{}," command.",[2893,2894,2896,2922,2936,2950,2967],"code-group",{"sync":2895},"pm",[2897,2898,2904],"pre",{"className":2899,"code":2900,"filename":2901,"language":2902,"meta":2903,"style":2903},"language-bash shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","npx nuxt upgrade\n","npm","bash","",[2889,2905,2906],{"__ignoreMap":2903},[2907,2908,2911,2915,2919],"span",{"class":2909,"line":2910},"line",1,[2907,2912,2914],{"class":2913},"s52Pk","npx",[2907,2916,2918],{"class":2917},"sGFVr"," nuxt",[2907,2920,2921],{"class":2917}," upgrade\n",[2897,2923,2926],{"className":2899,"code":2924,"filename":2925,"language":2902,"meta":2903,"style":2903},"yarn nuxt upgrade\n","yarn",[2889,2927,2928],{"__ignoreMap":2903},[2907,2929,2930,2932,2934],{"class":2909,"line":2910},[2907,2931,2925],{"class":2913},[2907,2933,2918],{"class":2917},[2907,2935,2921],{"class":2917},[2897,2937,2940],{"className":2899,"code":2938,"filename":2939,"language":2902,"meta":2903,"style":2903},"pnpm nuxt upgrade\n","pnpm",[2889,2941,2942],{"__ignoreMap":2903},[2907,2943,2944,2946,2948],{"class":2909,"line":2910},[2907,2945,2939],{"class":2913},[2907,2947,2918],{"class":2917},[2907,2949,2921],{"class":2917},[2897,2951,2954],{"className":2899,"code":2952,"filename":2953,"language":2902,"meta":2903,"style":2903},"bun x nuxt upgrade\n","bun",[2889,2955,2956],{"__ignoreMap":2903},[2907,2957,2958,2960,2963,2965],{"class":2909,"line":2910},[2907,2959,2953],{"class":2913},[2907,2961,2962],{"class":2917}," x",[2907,2964,2918],{"class":2917},[2907,2966,2921],{"class":2917},[2897,2968,2971],{"className":2899,"code":2969,"filename":2970,"language":2902,"meta":2903,"style":2903},"deno x nuxt upgrade\n","deno",[2889,2972,2973],{"__ignoreMap":2903},[2907,2974,2975,2977,2979,2981],{"class":2909,"line":2910},[2907,2976,2970],{"class":2913},[2907,2978,2962],{"class":2917},[2907,2980,2918],{"class":2917},[2907,2982,2921],{"class":2917},[2872,2984,403],{"id":2985},"nightly-release-channel",[2877,2987,2988,2989,2992],{},"To use the latest Nuxt build and test features before their release, read about the ",[2881,2990,2991],{"href":1387},"nightly release channel"," guide.",[2867,2994,2996],{"id":2995},"testing-nuxt-5","Testing Nuxt 5",[2877,2998,2999,3000,3004],{},"Nuxt 5 is ",[3001,3002,3003],"strong",{},"currently in development",". Until the release, it is possible to test many of Nuxt 5's breaking changes from Nuxt version 4.2+.",[2872,3006,3008],{"id":3007},"opting-in-to-nuxt-5","Opting in to Nuxt 5",[2877,3010,3011,3012,3015],{},"First, upgrade Nuxt to the ",[2881,3013,2886],{"href":2883,"rel":3014},[2885],".",[2877,3017,3018,3019,3022],{},"Then you can set your ",[2889,3020,3021],{},"future.compatibilityVersion"," to match Nuxt 5 behavior:",[2897,3024,3029],{"className":3025,"code":3026,"filename":233,"language":3027,"meta":3028,"style":2903},"language-ts shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","export default defineNuxtConfig({\n  future: {\n    compatibilityVersion: 5,\n  },\n})\n","ts","twoslash",[2889,3030,3031,3052,3065,3080,3086],{"__ignoreMap":2903},[2907,3032,3033,3037,3040,3044,3048],{"class":2909,"line":2910},[2907,3034,3036],{"class":3035},"s8R28","export",[2907,3038,3039],{"class":3035}," default",[2907,3041,3043],{"class":3042},"s3cPz"," defineNuxtConfig",[2907,3045,3047],{"class":3046},"sZSNi","(",[2907,3049,3051],{"class":3050},"sDfIl","{\n",[2907,3053,3055,3059,3062],{"class":2909,"line":3054},2,[2907,3056,3058],{"class":3057},"sRlkE","  future",[2907,3060,3061],{"class":3050},":",[2907,3063,3064],{"class":3050}," {\n",[2907,3066,3068,3071,3073,3077],{"class":2909,"line":3067},3,[2907,3069,3070],{"class":3057},"    compatibilityVersion",[2907,3072,3061],{"class":3050},[2907,3074,3076],{"class":3075},"sYRBq"," 5",[2907,3078,3079],{"class":3050},",\n",[2907,3081,3083],{"class":2909,"line":3082},4,[2907,3084,3085],{"class":3050},"  },\n",[2907,3087,3089,3092],{"class":2909,"line":3088},5,[2907,3090,3091],{"class":3050},"}",[2907,3093,3094],{"class":3046},")\n",[2877,3096,3097,3098,3100,3101,3104],{},"When you set your ",[2889,3099,3021],{}," to ",[2889,3102,3103],{},"5",", defaults throughout your Nuxt configuration will change to opt in to Nuxt v5 behavior, including:",[3106,3107,3108,3119,3134,3153,3174,3188],"ul",{},[3109,3110,3111,3114,3115,3118],"li",{},[3001,3112,3113],{},"Vite Environment API",": Automatically enables the new ",[2881,3116,3113],{"href":3117},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fupgrade#migration-to-vite-environment-api"," for improved build configuration",[3109,3120,3121,3124,3125,3129,3130,3133],{},[3001,3122,3123],{},"Normalized Page Names",": Page component names will ",[2881,3126,3128],{"href":3127},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fupgrade#normalized-page-component-names","match their route names"," for consistent ",[2889,3131,3132],{},"\u003CKeepAlive>"," behavior",[3109,3135,3136,3141,3142,3144,3145,3149,3150],{},[3001,3137,3138,3140],{},[2889,3139,654],{}," resets to defaults",": ",[2889,3143,654],{}," will ",[2881,3146,3148],{"href":3147},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fupgrade#respect-defaults-when-clearing-usestate","reset state to its initial value"," instead of setting it to ",[2889,3151,3152],{},"undefined",[3109,3154,3155,3141,3161,3170,3171],{},[3001,3156,3157,3158],{},"Non-async ",[2889,3159,3160],{},"callHook",[2881,3162,3164,3166,3167],{"href":3163},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fupgrade#non-async-callhook",[2889,3165,3160],{}," may return ",[2889,3168,3169],{},"void"," instead of always returning a ",[2889,3172,3173],{},"Promise",[3109,3175,3176,3179,3180,3187],{},[3001,3177,3178],{},"Comment node placeholders",": Client-only components use ",[2881,3181,3183,3184],{"href":3182},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fupgrade#client-only-comment-placeholders","comment nodes instead of ",[2889,3185,3186],{},"\u003Cdiv>"," as SSR placeholders, fixing a scoped styles hydration issue",[3109,3189,3190],{},"Other Nuxt 5 improvements and changes as they become available",[3192,3193,3194],"note",{},[2877,3195,3196,3197,3015],{},"This section is subject to change until the final release, so please check back here regularly if you are testing Nuxt 5 using ",[2889,3198,3199],{},"future.compatibilityVersion: 5",[2877,3201,3202],{},"Breaking or significant changes will be noted below along with migration steps for backward\u002Fforward compatibility.",[2872,3204,3206],{"id":3205},"migration-to-vite-environment-api","Migration to Vite Environment API",[2877,3208,3209,3210,3213],{},"🚦 ",[3001,3211,3212],{},"Impact Level",": Medium",[3215,3216,3218],"h4",{"id":3217},"what-changed","What Changed",[2877,3220,3221,3222,3227],{},"Nuxt 5 migrates to Vite 6's new ",[2881,3223,3226],{"href":3224,"rel":3225},"https:\u002F\u002Fvite.dev\u002Fguide\u002Fapi-environment",[2885],"Environment API",", which formalizes the concept of environments and provides better control over configuration per environment.",[2877,3229,3230,3231,3234],{},"Previously, Nuxt used separate client and server Vite configurations. Now, Nuxt uses a shared Vite configuration with environment-specific plugins that use the ",[2889,3232,3233],{},"applyToEnvironment()"," method to target specific environments.",[3236,3237,3238],"tip",{},[2877,3239,3240,3241,3243,3244,3247,3248,3015],{},"You can test this feature early by setting ",[2889,3242,3199],{}," (see ",[2881,3245,2996],{"href":3246},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fupgrade#testing-nuxt-5",") or by enabling it explicitly with ",[2889,3249,3250],{},"experimental.viteEnvironmentApi: true",[2877,3252,3253],{},[3001,3254,3255],{},"Key changes:",[3257,3258,3259,3278,3303],"ol",{},[3109,3260,3261,3267,3268,3270,3271,3274,3275,3277],{},[3001,3262,3263,3264],{},"Deprecated environment-specific ",[2889,3265,3266],{},"extendViteConfig()",": The ",[2889,3269,185],{}," and ",[2889,3272,3273],{},"client"," options in ",[2889,3276,3266],{}," are deprecated and will show warnings when used.",[3109,3279,3280,3283,3284,3287,3288,3291,3292,3295,3296,3291,3299,3302],{},[3001,3281,3282],{},"Changed plugin registration",": Vite plugins registered with ",[2889,3285,3286],{},"addVitePlugin()"," and only targeting one environment (by passing ",[2889,3289,3290],{},"server: false"," or ",[2889,3293,3294],{},"client: false",") will not have their ",[2889,3297,3298],{},"config",[2889,3300,3301],{},"configResolved"," hooks called.",[3109,3304,3305,3267,3308,3270,3311,3314],{},[3001,3306,3307],{},"Shared configuration",[2889,3309,3310],{},"vite:extendConfig",[2889,3312,3313],{},"vite:configResolved"," hooks now work with a shared configuration rather than separate client\u002Fserver configs.",[3215,3316,3318],{"id":3317},"reasons-for-change","Reasons for Change",[2877,3320,3321],{},"The Vite Environment API provides:",[3106,3323,3324,3327,3330,3333],{},[3109,3325,3326],{},"Better consistency between development and production builds",[3109,3328,3329],{},"More granular control over environment-specific configuration",[3109,3331,3332],{},"Improved performance and plugin architecture",[3109,3334,3335],{},"Support for custom environments beyond just client and server",[3215,3337,3339],{"id":3338},"migration-steps","Migration Steps",[3341,3342,3344],"h5",{"id":3343},"_1-migrate-to-use-vite-plugins","1. Migrate to use Vite plugins",[2877,3346,3347,3348,3351,3352,3270,3354,3015],{},"We would recommend you use a Vite plugin instead of ",[2889,3349,3350],{},"extendViteConfig",", ",[2889,3353,3313],{},[2889,3355,3310],{},[2897,3357,3359],{"className":3025,"code":3358,"language":3027,"meta":2903,"style":2903},"\u002F\u002F Before\nextendViteConfig((config) => {\n  config.optimizeDeps.include.push('my-package')\n}, { server: false })\n\nnuxt.hook('vite:extendConfig' \u002F* or vite:configResolved *\u002F, (config, { isClient }) => {\n  if (isClient) {\n    config.optimizeDeps.include.push('my-package')\n  }\n})\n\n\u002F\u002F After\naddVitePlugin(() => ({\n  name: 'my-plugin',\n  config (config) {\n    \u002F\u002F you can set global vite configuration here\n  },\n  configResolved (config) {\n    \u002F\u002F you can access the fully resolved vite configuration here\n  },\n  configEnvironment (name, config) {\n    \u002F\u002F you can set environment-specific vite configuration here\n    if (name === 'client') {\n      config.optimizeDeps ||= {}\n      config.optimizeDeps.include ||= []\n      config.optimizeDeps.include.push('my-package')\n    }\n  },\n  applyToEnvironment (environment) {\n    return environment.name === 'client'\n  },\n}))\n",[2889,3360,3361,3367,3387,3419,3441,3446,3490,3506,3534,3540,3547,3552,3558,3575,3593,3606,3612,3617,3631,3637,3642,3662,3668,3691,3707,3725,3752,3758,3763,3778,3800,3805],{"__ignoreMap":2903},[2907,3362,3363],{"class":2909,"line":2910},[2907,3364,3366],{"class":3365},"sWuyu","\u002F\u002F Before\n",[2907,3368,3369,3371,3373,3375,3378,3381,3385],{"class":2909,"line":3054},[2907,3370,3350],{"class":3042},[2907,3372,3047],{"class":3046},[2907,3374,3047],{"class":3050},[2907,3376,3298],{"class":3377},"s1nJG",[2907,3379,3380],{"class":3050},")",[2907,3382,3384],{"class":3383},"smZ93"," =>",[2907,3386,3064],{"class":3050},[2907,3388,3389,3392,3394,3397,3399,3402,3404,3407,3409,3412,3415,3417],{"class":2909,"line":3067},[2907,3390,3391],{"class":3046},"  config",[2907,3393,3015],{"class":3050},[2907,3395,3396],{"class":3046},"optimizeDeps",[2907,3398,3015],{"class":3050},[2907,3400,3401],{"class":3046},"include",[2907,3403,3015],{"class":3050},[2907,3405,3406],{"class":3042},"push",[2907,3408,3047],{"class":3057},[2907,3410,3411],{"class":3050},"'",[2907,3413,3414],{"class":2917},"my-package",[2907,3416,3411],{"class":3050},[2907,3418,3094],{"class":3057},[2907,3420,3421,3424,3427,3430,3432,3436,3439],{"class":2909,"line":3082},[2907,3422,3423],{"class":3050},"},",[2907,3425,3426],{"class":3050}," {",[2907,3428,3429],{"class":3057}," server",[2907,3431,3061],{"class":3050},[2907,3433,3435],{"class":3434},"sbKd-"," false",[2907,3437,3438],{"class":3050}," }",[2907,3440,3094],{"class":3046},[2907,3442,3443],{"class":2909,"line":3088},[2907,3444,3445],{"emptyLinePlaceholder":1196},"\n",[2907,3447,3449,3452,3454,3457,3459,3461,3463,3465,3468,3471,3474,3476,3478,3480,3483,3486,3488],{"class":2909,"line":3448},6,[2907,3450,3451],{"class":3046},"nuxt",[2907,3453,3015],{"class":3050},[2907,3455,3456],{"class":3042},"hook",[2907,3458,3047],{"class":3046},[2907,3460,3411],{"class":3050},[2907,3462,3310],{"class":2917},[2907,3464,3411],{"class":3050},[2907,3466,3467],{"class":3365}," \u002F* or vite:configResolved *\u002F",[2907,3469,3470],{"class":3050},",",[2907,3472,3473],{"class":3050}," (",[2907,3475,3298],{"class":3377},[2907,3477,3470],{"class":3050},[2907,3479,3426],{"class":3050},[2907,3481,3482],{"class":3377}," isClient",[2907,3484,3485],{"class":3050}," })",[2907,3487,3384],{"class":3383},[2907,3489,3064],{"class":3050},[2907,3491,3493,3496,3498,3501,3504],{"class":2909,"line":3492},7,[2907,3494,3495],{"class":3035},"  if",[2907,3497,3473],{"class":3057},[2907,3499,3500],{"class":3046},"isClient",[2907,3502,3503],{"class":3057},") ",[2907,3505,3051],{"class":3050},[2907,3507,3509,3512,3514,3516,3518,3520,3522,3524,3526,3528,3530,3532],{"class":2909,"line":3508},8,[2907,3510,3511],{"class":3046},"    config",[2907,3513,3015],{"class":3050},[2907,3515,3396],{"class":3046},[2907,3517,3015],{"class":3050},[2907,3519,3401],{"class":3046},[2907,3521,3015],{"class":3050},[2907,3523,3406],{"class":3042},[2907,3525,3047],{"class":3057},[2907,3527,3411],{"class":3050},[2907,3529,3414],{"class":2917},[2907,3531,3411],{"class":3050},[2907,3533,3094],{"class":3057},[2907,3535,3537],{"class":2909,"line":3536},9,[2907,3538,3539],{"class":3050},"  }\n",[2907,3541,3543,3545],{"class":2909,"line":3542},10,[2907,3544,3091],{"class":3050},[2907,3546,3094],{"class":3046},[2907,3548,3550],{"class":2909,"line":3549},11,[2907,3551,3445],{"emptyLinePlaceholder":1196},[2907,3553,3555],{"class":2909,"line":3554},12,[2907,3556,3557],{"class":3365},"\u002F\u002F After\n",[2907,3559,3561,3564,3566,3569,3571,3573],{"class":2909,"line":3560},13,[2907,3562,3563],{"class":3042},"addVitePlugin",[2907,3565,3047],{"class":3046},[2907,3567,3568],{"class":3050},"()",[2907,3570,3384],{"class":3383},[2907,3572,3473],{"class":3046},[2907,3574,3051],{"class":3050},[2907,3576,3578,3581,3583,3586,3589,3591],{"class":2909,"line":3577},14,[2907,3579,3580],{"class":3057},"  name",[2907,3582,3061],{"class":3050},[2907,3584,3585],{"class":3050}," '",[2907,3587,3588],{"class":2917},"my-plugin",[2907,3590,3411],{"class":3050},[2907,3592,3079],{"class":3050},[2907,3594,3596,3598,3600,3602,3604],{"class":2909,"line":3595},15,[2907,3597,3391],{"class":3057},[2907,3599,3473],{"class":3050},[2907,3601,3298],{"class":3377},[2907,3603,3380],{"class":3050},[2907,3605,3064],{"class":3050},[2907,3607,3609],{"class":2909,"line":3608},16,[2907,3610,3611],{"class":3365},"    \u002F\u002F you can set global vite configuration here\n",[2907,3613,3615],{"class":2909,"line":3614},17,[2907,3616,3085],{"class":3050},[2907,3618,3620,3623,3625,3627,3629],{"class":2909,"line":3619},18,[2907,3621,3622],{"class":3057},"  configResolved",[2907,3624,3473],{"class":3050},[2907,3626,3298],{"class":3377},[2907,3628,3380],{"class":3050},[2907,3630,3064],{"class":3050},[2907,3632,3634],{"class":2909,"line":3633},19,[2907,3635,3636],{"class":3365},"    \u002F\u002F you can access the fully resolved vite configuration here\n",[2907,3638,3640],{"class":2909,"line":3639},20,[2907,3641,3085],{"class":3050},[2907,3643,3645,3648,3650,3653,3655,3658,3660],{"class":2909,"line":3644},21,[2907,3646,3647],{"class":3057},"  configEnvironment",[2907,3649,3473],{"class":3050},[2907,3651,3652],{"class":3377},"name",[2907,3654,3470],{"class":3050},[2907,3656,3657],{"class":3377}," config",[2907,3659,3380],{"class":3050},[2907,3661,3064],{"class":3050},[2907,3663,3665],{"class":2909,"line":3664},22,[2907,3666,3667],{"class":3365},"    \u002F\u002F you can set environment-specific vite configuration here\n",[2907,3669,3671,3674,3676,3678,3681,3683,3685,3687,3689],{"class":2909,"line":3670},23,[2907,3672,3673],{"class":3035},"    if",[2907,3675,3473],{"class":3057},[2907,3677,3652],{"class":3046},[2907,3679,3680],{"class":3050}," ===",[2907,3682,3585],{"class":3050},[2907,3684,3273],{"class":2917},[2907,3686,3411],{"class":3050},[2907,3688,3503],{"class":3057},[2907,3690,3051],{"class":3050},[2907,3692,3694,3697,3699,3701,3704],{"class":2909,"line":3693},24,[2907,3695,3696],{"class":3046},"      config",[2907,3698,3015],{"class":3050},[2907,3700,3396],{"class":3046},[2907,3702,3703],{"class":3050}," ||=",[2907,3705,3706],{"class":3050}," {}\n",[2907,3708,3710,3712,3714,3716,3718,3720,3722],{"class":2909,"line":3709},25,[2907,3711,3696],{"class":3046},[2907,3713,3015],{"class":3050},[2907,3715,3396],{"class":3046},[2907,3717,3015],{"class":3050},[2907,3719,3401],{"class":3046},[2907,3721,3703],{"class":3050},[2907,3723,3724],{"class":3057}," []\n",[2907,3726,3728,3730,3732,3734,3736,3738,3740,3742,3744,3746,3748,3750],{"class":2909,"line":3727},26,[2907,3729,3696],{"class":3046},[2907,3731,3015],{"class":3050},[2907,3733,3396],{"class":3046},[2907,3735,3015],{"class":3050},[2907,3737,3401],{"class":3046},[2907,3739,3015],{"class":3050},[2907,3741,3406],{"class":3042},[2907,3743,3047],{"class":3057},[2907,3745,3411],{"class":3050},[2907,3747,3414],{"class":2917},[2907,3749,3411],{"class":3050},[2907,3751,3094],{"class":3057},[2907,3753,3755],{"class":2909,"line":3754},27,[2907,3756,3757],{"class":3050},"    }\n",[2907,3759,3761],{"class":2909,"line":3760},28,[2907,3762,3085],{"class":3050},[2907,3764,3766,3769,3771,3774,3776],{"class":2909,"line":3765},29,[2907,3767,3768],{"class":3057},"  applyToEnvironment",[2907,3770,3473],{"class":3050},[2907,3772,3773],{"class":3377},"environment",[2907,3775,3380],{"class":3050},[2907,3777,3064],{"class":3050},[2907,3779,3781,3784,3787,3789,3791,3793,3795,3797],{"class":2909,"line":3780},30,[2907,3782,3783],{"class":3035},"    return",[2907,3785,3786],{"class":3046}," environment",[2907,3788,3015],{"class":3050},[2907,3790,3652],{"class":3046},[2907,3792,3680],{"class":3050},[2907,3794,3585],{"class":3050},[2907,3796,3273],{"class":2917},[2907,3798,3799],{"class":3050},"'\n",[2907,3801,3803],{"class":2909,"line":3802},31,[2907,3804,3085],{"class":3050},[2907,3806,3808,3810],{"class":2909,"line":3807},32,[2907,3809,3091],{"class":3050},[2907,3811,3812],{"class":3046},"))\n",[3341,3814,3816],{"id":3815},"_2-migrate-vite-plugins-to-use-environments","2. Migrate Vite plugins to use environments",[2877,3818,3819,3820,3822,3823,3291,3825,3827,3828,3831],{},"Instead of using ",[2889,3821,3563],{}," with ",[2889,3824,3290],{},[2889,3826,3294],{},", you can instead use the new ",[2889,3829,3830],{},"applyToEnvironment"," hook within your plugin.",[2897,3833,3835],{"className":3025,"code":3834,"language":3027,"meta":2903,"style":2903},"\u002F\u002F Before\naddVitePlugin(() => ({\n  name: 'my-plugin',\n  config (config) {\n    config.optimizeDeps.include.push('my-package')\n  },\n}), { client: false })\n\n\u002F\u002F After\naddVitePlugin(() => ({\n  name: 'my-plugin',\n  config (config) {\n    \u002F\u002F you can set global vite configuration here\n  },\n  configResolved (config) {\n    \u002F\u002F you can access the fully resolved vite configuration here\n  },\n  configEnvironment (name, config) {\n    \u002F\u002F you can set environment-specific vite configuration here\n    if (name === 'client') {\n      config.optimizeDeps ||= {}\n      config.optimizeDeps.include ||= []\n      config.optimizeDeps.include.push('my-package')\n    }\n  },\n  applyToEnvironment (environment) {\n    return environment.name === 'client'\n  },\n}))\n",[2889,3836,3837,3841,3855,3869,3881,3907,3911,3932,3936,3940,3954,3968,3980,3984,3988,4000,4004,4008,4024,4028,4048,4060,4076,4102,4106,4110,4122,4140,4144],{"__ignoreMap":2903},[2907,3838,3839],{"class":2909,"line":2910},[2907,3840,3366],{"class":3365},[2907,3842,3843,3845,3847,3849,3851,3853],{"class":2909,"line":3054},[2907,3844,3563],{"class":3042},[2907,3846,3047],{"class":3046},[2907,3848,3568],{"class":3050},[2907,3850,3384],{"class":3383},[2907,3852,3473],{"class":3046},[2907,3854,3051],{"class":3050},[2907,3856,3857,3859,3861,3863,3865,3867],{"class":2909,"line":3067},[2907,3858,3580],{"class":3057},[2907,3860,3061],{"class":3050},[2907,3862,3585],{"class":3050},[2907,3864,3588],{"class":2917},[2907,3866,3411],{"class":3050},[2907,3868,3079],{"class":3050},[2907,3870,3871,3873,3875,3877,3879],{"class":2909,"line":3082},[2907,3872,3391],{"class":3057},[2907,3874,3473],{"class":3050},[2907,3876,3298],{"class":3377},[2907,3878,3380],{"class":3050},[2907,3880,3064],{"class":3050},[2907,3882,3883,3885,3887,3889,3891,3893,3895,3897,3899,3901,3903,3905],{"class":2909,"line":3088},[2907,3884,3511],{"class":3046},[2907,3886,3015],{"class":3050},[2907,3888,3396],{"class":3046},[2907,3890,3015],{"class":3050},[2907,3892,3401],{"class":3046},[2907,3894,3015],{"class":3050},[2907,3896,3406],{"class":3042},[2907,3898,3047],{"class":3057},[2907,3900,3411],{"class":3050},[2907,3902,3414],{"class":2917},[2907,3904,3411],{"class":3050},[2907,3906,3094],{"class":3057},[2907,3908,3909],{"class":2909,"line":3448},[2907,3910,3085],{"class":3050},[2907,3912,3913,3915,3917,3919,3921,3924,3926,3928,3930],{"class":2909,"line":3492},[2907,3914,3091],{"class":3050},[2907,3916,3380],{"class":3046},[2907,3918,3470],{"class":3050},[2907,3920,3426],{"class":3050},[2907,3922,3923],{"class":3057}," client",[2907,3925,3061],{"class":3050},[2907,3927,3435],{"class":3434},[2907,3929,3438],{"class":3050},[2907,3931,3094],{"class":3046},[2907,3933,3934],{"class":2909,"line":3508},[2907,3935,3445],{"emptyLinePlaceholder":1196},[2907,3937,3938],{"class":2909,"line":3536},[2907,3939,3557],{"class":3365},[2907,3941,3942,3944,3946,3948,3950,3952],{"class":2909,"line":3542},[2907,3943,3563],{"class":3042},[2907,3945,3047],{"class":3046},[2907,3947,3568],{"class":3050},[2907,3949,3384],{"class":3383},[2907,3951,3473],{"class":3046},[2907,3953,3051],{"class":3050},[2907,3955,3956,3958,3960,3962,3964,3966],{"class":2909,"line":3549},[2907,3957,3580],{"class":3057},[2907,3959,3061],{"class":3050},[2907,3961,3585],{"class":3050},[2907,3963,3588],{"class":2917},[2907,3965,3411],{"class":3050},[2907,3967,3079],{"class":3050},[2907,3969,3970,3972,3974,3976,3978],{"class":2909,"line":3554},[2907,3971,3391],{"class":3057},[2907,3973,3473],{"class":3050},[2907,3975,3298],{"class":3377},[2907,3977,3380],{"class":3050},[2907,3979,3064],{"class":3050},[2907,3981,3982],{"class":2909,"line":3560},[2907,3983,3611],{"class":3365},[2907,3985,3986],{"class":2909,"line":3577},[2907,3987,3085],{"class":3050},[2907,3989,3990,3992,3994,3996,3998],{"class":2909,"line":3595},[2907,3991,3622],{"class":3057},[2907,3993,3473],{"class":3050},[2907,3995,3298],{"class":3377},[2907,3997,3380],{"class":3050},[2907,3999,3064],{"class":3050},[2907,4001,4002],{"class":2909,"line":3608},[2907,4003,3636],{"class":3365},[2907,4005,4006],{"class":2909,"line":3614},[2907,4007,3085],{"class":3050},[2907,4009,4010,4012,4014,4016,4018,4020,4022],{"class":2909,"line":3619},[2907,4011,3647],{"class":3057},[2907,4013,3473],{"class":3050},[2907,4015,3652],{"class":3377},[2907,4017,3470],{"class":3050},[2907,4019,3657],{"class":3377},[2907,4021,3380],{"class":3050},[2907,4023,3064],{"class":3050},[2907,4025,4026],{"class":2909,"line":3633},[2907,4027,3667],{"class":3365},[2907,4029,4030,4032,4034,4036,4038,4040,4042,4044,4046],{"class":2909,"line":3639},[2907,4031,3673],{"class":3035},[2907,4033,3473],{"class":3057},[2907,4035,3652],{"class":3046},[2907,4037,3680],{"class":3050},[2907,4039,3585],{"class":3050},[2907,4041,3273],{"class":2917},[2907,4043,3411],{"class":3050},[2907,4045,3503],{"class":3057},[2907,4047,3051],{"class":3050},[2907,4049,4050,4052,4054,4056,4058],{"class":2909,"line":3644},[2907,4051,3696],{"class":3046},[2907,4053,3015],{"class":3050},[2907,4055,3396],{"class":3046},[2907,4057,3703],{"class":3050},[2907,4059,3706],{"class":3050},[2907,4061,4062,4064,4066,4068,4070,4072,4074],{"class":2909,"line":3664},[2907,4063,3696],{"class":3046},[2907,4065,3015],{"class":3050},[2907,4067,3396],{"class":3046},[2907,4069,3015],{"class":3050},[2907,4071,3401],{"class":3046},[2907,4073,3703],{"class":3050},[2907,4075,3724],{"class":3057},[2907,4077,4078,4080,4082,4084,4086,4088,4090,4092,4094,4096,4098,4100],{"class":2909,"line":3670},[2907,4079,3696],{"class":3046},[2907,4081,3015],{"class":3050},[2907,4083,3396],{"class":3046},[2907,4085,3015],{"class":3050},[2907,4087,3401],{"class":3046},[2907,4089,3015],{"class":3050},[2907,4091,3406],{"class":3042},[2907,4093,3047],{"class":3057},[2907,4095,3411],{"class":3050},[2907,4097,3414],{"class":2917},[2907,4099,3411],{"class":3050},[2907,4101,3094],{"class":3057},[2907,4103,4104],{"class":2909,"line":3693},[2907,4105,3757],{"class":3050},[2907,4107,4108],{"class":2909,"line":3709},[2907,4109,3085],{"class":3050},[2907,4111,4112,4114,4116,4118,4120],{"class":2909,"line":3727},[2907,4113,3768],{"class":3057},[2907,4115,3473],{"class":3050},[2907,4117,3773],{"class":3377},[2907,4119,3380],{"class":3050},[2907,4121,3064],{"class":3050},[2907,4123,4124,4126,4128,4130,4132,4134,4136,4138],{"class":2909,"line":3754},[2907,4125,3783],{"class":3035},[2907,4127,3786],{"class":3046},[2907,4129,3015],{"class":3050},[2907,4131,3652],{"class":3046},[2907,4133,3680],{"class":3050},[2907,4135,3585],{"class":3050},[2907,4137,3273],{"class":2917},[2907,4139,3799],{"class":3050},[2907,4141,4142],{"class":2909,"line":3760},[2907,4143,3085],{"class":3050},[2907,4145,4146,4148],{"class":2909,"line":3765},[2907,4147,3091],{"class":3050},[2907,4149,3812],{"class":3046},[4151,4152,4154],"read-more",{"to":3224,"target":4153},"_blank",[2877,4155,4156],{},"Learn more about Vite's Environment API",[2872,4158,4160,4161],{"id":4159},"non-async-callhook","Non-Async ",[2889,4162,3160],{},[2877,4164,3209,4165,4167],{},[3001,4166,3212],{},": Minimal",[3215,4169,3218],{"id":4170},"what-changed-1",[2877,4172,4173,4174,3351,4179,4181,4182,4184,4185,4188,4189,4191],{},"With the upgrade to ",[2881,4175,4178],{"href":4176,"rel":4177},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fhookable",[2885],"hookable v6",[2889,4180,3160],{}," may now return ",[2889,4183,3169],{}," instead of always returning ",[2889,4186,4187],{},"Promise\u003Cvoid>",". This is a significant performance improvement that avoids unnecessary ",[2889,4190,3173],{}," allocations when there are no registered hooks or all hooks are synchronous.",[2877,4193,4194,4195,4198,4199,3822,4201,4204,4205,3270,4208,4211,4212,4215],{},"By default (with ",[2889,4196,4197],{},"compatibilityVersion: 4","), Nuxt wraps ",[2889,4200,3160],{},[2889,4202,4203],{},"Promise.resolve()"," so that existing ",[2889,4206,4207],{},".then()",[2889,4209,4210],{},".catch()"," chaining continues to work. With ",[2889,4213,4214],{},"compatibilityVersion: 5",", this wrapper is removed.",[3236,4217,4218],{},[2877,4219,4220],{},"This affects both build-time Nuxt hooks (used by Nuxt modules) and runtime Nuxt hooks (which you might use in your application code).",[3215,4222,3318],{"id":4223},"reasons-for-change-1",[2877,4225,4226,4227,4229,4230,4232],{},"Hookable v6's ",[2889,4228,3160],{}," is 20-40x faster because it avoids creating a ",[2889,4231,3173],{}," when one is not needed. This benefits applications with many hook call sites.",[3215,4234,3339],{"id":4235},"migration-steps-1",[2877,4237,4238,4239,3822,4241,3291,4243,4245,4246,3061],{},"If you or your modules use ",[2889,4240,3160],{},[2889,4242,4207],{},[2889,4244,4210],{}," chaining, switch to ",[2889,4247,4248],{},"await",[2897,4250,4254],{"className":4251,"code":4252,"language":4253,"meta":2903,"style":2903},"language-diff shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","- nuxtApp.callHook('my:hook', data).then(() => { ... })\n+ await nuxtApp.callHook('my:hook', data)\n","diff",[2889,4255,4256,4264],{"__ignoreMap":2903},[2907,4257,4258,4261],{"class":2909,"line":2910},[2907,4259,4260],{"class":3050},"-",[2907,4262,4263],{"class":3057}," nuxtApp.callHook('my:hook', data).then(() => { ... })\n",[2907,4265,4266,4269],{"class":2909,"line":3054},[2907,4267,4268],{"class":3050},"+",[2907,4270,4271],{"class":2917}," await nuxtApp.callHook('my:hook', data)\n",[2897,4273,4275],{"className":4251,"code":4274,"language":4253,"meta":2903,"style":2903},"- nuxtApp.hooks.callHook('my:hook', data).catch(err => { ... })\n+ try { await nuxtApp.hooks.callHook('my:hook', data) } catch (err) { ... }\n",[2889,4276,4277,4284],{"__ignoreMap":2903},[2907,4278,4279,4281],{"class":2909,"line":2910},[2907,4280,4260],{"class":3050},[2907,4282,4283],{"class":3057}," nuxtApp.hooks.callHook('my:hook', data).catch(err => { ... })\n",[2907,4285,4286,4288],{"class":2909,"line":3054},[2907,4287,4268],{"class":3050},[2907,4289,4290],{"class":2917}," try { await nuxtApp.hooks.callHook('my:hook', data) } catch (err) { ... }\n",[3236,4292,4293],{},[2877,4294,3240,4295,3243,4297,3247,4299,3015],{},[2889,4296,3199],{},[2881,4298,2996],{"href":3246},[2889,4300,4301],{},"experimental.asyncCallHook: false",[2877,4303,4304,4305,4307,4308,4310],{},"Alternatively, you can ensure ",[2889,4306,3160],{}," always returns a ",[2889,4309,3173],{}," with:",[2897,4312,4314],{"className":3025,"code":4313,"filename":233,"language":3027,"meta":3028,"style":2903},"export default defineNuxtConfig({\n  experimental: {\n    asyncCallHook: true,\n  },\n})\n",[2889,4315,4316,4328,4337,4349,4353],{"__ignoreMap":2903},[2907,4317,4318,4320,4322,4324,4326],{"class":2909,"line":2910},[2907,4319,3036],{"class":3035},[2907,4321,3039],{"class":3035},[2907,4323,3043],{"class":3042},[2907,4325,3047],{"class":3046},[2907,4327,3051],{"class":3050},[2907,4329,4330,4333,4335],{"class":2909,"line":3054},[2907,4331,4332],{"class":3057},"  experimental",[2907,4334,3061],{"class":3050},[2907,4336,3064],{"class":3050},[2907,4338,4339,4342,4344,4347],{"class":2909,"line":3067},[2907,4340,4341],{"class":3057},"    asyncCallHook",[2907,4343,3061],{"class":3050},[2907,4345,4346],{"class":3434}," true",[2907,4348,3079],{"class":3050},[2907,4350,4351],{"class":2909,"line":3082},[2907,4352,3085],{"class":3050},[2907,4354,4355,4357],{"class":2909,"line":3088},[2907,4356,3091],{"class":3050},[2907,4358,3094],{"class":3046},[2872,4360,4362],{"id":4361},"client-only-comment-placeholders","Client-Only Comment Placeholders",[2877,4364,3209,4365,4167],{},[3001,4366,3212],{},[3215,4368,3218],{"id":4369},"what-changed-2",[2877,4371,4372,4373,4375,4376,4379,4380,4383,4384,4387,4388,4390],{},"With ",[2889,4374,4214],{},", client-only components (",[2889,4377,4378],{},".client.vue"," files and ",[2889,4381,4382],{},"createClientOnly()"," wrappers) now render an HTML comment (",[2889,4385,4386],{},"\u003C!--placeholder-->",") on the server instead of an empty ",[2889,4389,3186],{}," element.",[3215,4392,3318],{"id":4393},"reasons-for-change-2",[2877,4395,4396,4397,4399,4400,4403],{},"When the placeholder ",[2889,4398,3186],{}," and the actual component root share the same tag name, Vue's runtime skips re-applying ",[2889,4401,4402],{},"setScopeId"," during hydration. This causes scoped styles to be missing after the component mounts. Using a comment node avoids the tag name collision entirely.",[3215,4405,3339],{"id":4406},"migration-steps-2",[2877,4408,4409,4410,4412,4413,3351,4416,4419,4420,4422,4423,4426],{},"If you rely on the placeholder ",[2889,4411,3186],{}," to inherit attributes (",[2889,4414,4415],{},"class",[2889,4417,4418],{},"style",", etc.) for layout purposes (e.g., reserving space to prevent layout shift), wrap the component in ",[2889,4421,440],{}," with a ",[2889,4424,4425],{},"#fallback"," slot instead:",[2897,4428,4430],{"className":4251,"code":4429,"language":4253,"meta":2903,"style":2903},"- \u003CMyComponent class=\"placeholder\" style=\"min-height: 200px\" \u002F>\n+ \u003CClientOnly>\n+   \u003CMyComponent \u002F>\n+   \u003Ctemplate #fallback>\n+     \u003Cdiv class=\"placeholder\" style=\"min-height: 200px\">\u003C\u002Fdiv>\n+   \u003C\u002Ftemplate>\n+ \u003C\u002FClientOnly>\n",[2889,4431,4432,4439,4446,4453,4460,4467,4474],{"__ignoreMap":2903},[2907,4433,4434,4436],{"class":2909,"line":2910},[2907,4435,4260],{"class":3050},[2907,4437,4438],{"class":3057}," \u003CMyComponent class=\"placeholder\" style=\"min-height: 200px\" \u002F>\n",[2907,4440,4441,4443],{"class":2909,"line":3054},[2907,4442,4268],{"class":3050},[2907,4444,4445],{"class":2917}," \u003CClientOnly>\n",[2907,4447,4448,4450],{"class":2909,"line":3067},[2907,4449,4268],{"class":3050},[2907,4451,4452],{"class":2917},"   \u003CMyComponent \u002F>\n",[2907,4454,4455,4457],{"class":2909,"line":3082},[2907,4456,4268],{"class":3050},[2907,4458,4459],{"class":2917},"   \u003Ctemplate #fallback>\n",[2907,4461,4462,4464],{"class":2909,"line":3088},[2907,4463,4268],{"class":3050},[2907,4465,4466],{"class":2917},"     \u003Cdiv class=\"placeholder\" style=\"min-height: 200px\">\u003C\u002Fdiv>\n",[2907,4468,4469,4471],{"class":2909,"line":3448},[2907,4470,4268],{"class":3050},[2907,4472,4473],{"class":2917},"   \u003C\u002Ftemplate>\n",[2907,4475,4476,4478],{"class":2909,"line":3492},[2907,4477,4268],{"class":3050},[2907,4479,4480],{"class":2917}," \u003C\u002FClientOnly>\n",[3236,4482,4483],{},[2877,4484,3240,4485,3243,4487,3247,4489,3015],{},[2889,4486,3199],{},[2881,4488,2996],{"href":3246},[2889,4490,4491],{},"experimental.clientNodePlaceholder: true",[2877,4493,4494,4495,4497],{},"Alternatively, you can revert to the previous ",[2889,4496,3186],{}," placeholder behavior with:",[2897,4499,4501],{"className":3025,"code":4500,"filename":233,"language":3027,"meta":3028,"style":2903},"export default defineNuxtConfig({\n  experimental: {\n    clientNodePlaceholder: false,\n  },\n})\n",[2889,4502,4503,4515,4523,4534,4538],{"__ignoreMap":2903},[2907,4504,4505,4507,4509,4511,4513],{"class":2909,"line":2910},[2907,4506,3036],{"class":3035},[2907,4508,3039],{"class":3035},[2907,4510,3043],{"class":3042},[2907,4512,3047],{"class":3046},[2907,4514,3051],{"class":3050},[2907,4516,4517,4519,4521],{"class":2909,"line":3054},[2907,4518,4332],{"class":3057},[2907,4520,3061],{"class":3050},[2907,4522,3064],{"class":3050},[2907,4524,4525,4528,4530,4532],{"class":2909,"line":3067},[2907,4526,4527],{"class":3057},"    clientNodePlaceholder",[2907,4529,3061],{"class":3050},[2907,4531,3435],{"class":3434},[2907,4533,3079],{"class":3050},[2907,4535,4536],{"class":2909,"line":3082},[2907,4537,3085],{"class":3050},[2907,4539,4540,4542],{"class":2909,"line":3088},[2907,4541,3091],{"class":3050},[2907,4543,3094],{"class":3046},[2867,4545,4547],{"id":4546},"migrating-to-nuxt-4","Migrating to Nuxt 4",[2877,4549,4550],{},"Nuxt 4 includes significant improvements and changes. This guide will help you migrate your existing Nuxt 3 application to Nuxt 4.",[2877,4552,4553],{},"First, upgrade to Nuxt 4:",[2893,4555,4556,4571,4585,4598,4611],{"sync":2895},[2897,4557,4559],{"className":2899,"code":4558,"filename":2901,"language":2902,"meta":2903,"style":2903},"npm install nuxt@^4.0.0\n",[2889,4560,4561],{"__ignoreMap":2903},[2907,4562,4563,4565,4568],{"class":2909,"line":2910},[2907,4564,2901],{"class":2913},[2907,4566,4567],{"class":2917}," install",[2907,4569,4570],{"class":2917}," nuxt@^4.0.0\n",[2897,4572,4574],{"className":2899,"code":4573,"filename":2925,"language":2902,"meta":2903,"style":2903},"yarn add nuxt@^4.0.0\n",[2889,4575,4576],{"__ignoreMap":2903},[2907,4577,4578,4580,4583],{"class":2909,"line":2910},[2907,4579,2925],{"class":2913},[2907,4581,4582],{"class":2917}," add",[2907,4584,4570],{"class":2917},[2897,4586,4588],{"className":2899,"code":4587,"filename":2939,"language":2902,"meta":2903,"style":2903},"pnpm add nuxt@^4.0.0\n",[2889,4589,4590],{"__ignoreMap":2903},[2907,4591,4592,4594,4596],{"class":2909,"line":2910},[2907,4593,2939],{"class":2913},[2907,4595,4582],{"class":2917},[2907,4597,4570],{"class":2917},[2897,4599,4601],{"className":2899,"code":4600,"filename":2953,"language":2902,"meta":2903,"style":2903},"bun add nuxt@^4.0.0\n",[2889,4602,4603],{"__ignoreMap":2903},[2907,4604,4605,4607,4609],{"class":2909,"line":2910},[2907,4606,2953],{"class":2913},[2907,4608,4582],{"class":2917},[2907,4610,4570],{"class":2917},[2897,4612,4614],{"className":2899,"code":4613,"filename":2970,"language":2902,"meta":2903,"style":2903},"deno add npm:nuxt@^4.0.0\n",[2889,4615,4616],{"__ignoreMap":2903},[2907,4617,4618,4620,4622],{"class":2909,"line":2910},[2907,4619,2970],{"class":2913},[2907,4621,4582],{"class":2917},[2907,4623,4624],{"class":2917}," npm:nuxt@^4.0.0\n",[2877,4626,4627],{},"After upgrading, most Nuxt 4 behaviors are now the default. However, some features can still be configured if you need to maintain backward compatibility during your migration.",[2877,4629,4630],{},"The following sections detail the key changes and migrations needed when upgrading to Nuxt 4.",[2877,4632,4633],{},"Breaking or significant changes are documented below along with migration steps and available configuration options.",[2872,4635,4637],{"id":4636},"migrating-using-codemods","Migrating Using Codemods",[2877,4639,4640,4641,4646],{},"To facilitate the upgrade process, we have collaborated with the ",[2881,4642,4645],{"href":4643,"rel":4644},"https:\u002F\u002Fgithub.com\u002Fcodemod\u002Fcodemod",[2885],"Codemod"," team to automate many migration steps with some open-source codemods.",[3192,4648,4649],{},[2877,4650,4651,4652,4655],{},"If you encounter any issues, please report them to the Codemod team with ",[2889,4653,4654],{},"npx codemod feedback"," 🙏",[2877,4657,4658,4659,3015],{},"For a complete list of Nuxt 4 codemods, detailed information on each, their source, and various ways to run them, visit the ",[2881,4660,4663],{"href":4661,"rel":4662},"https:\u002F\u002Fapp.codemod.com\u002Fregistry",[2885],"Codemod Registry",[2877,4665,4666,4667,4670],{},"You can run all the codemods mentioned in this guide using the following ",[2889,4668,4669],{},"codemod"," recipe:",[2893,4672,4673,4693,4713,4732,4751],{},[2897,4674,4676],{"className":2899,"code":4675,"filename":2901,"language":2902,"meta":2903,"style":2903},"# Using pinned version due to https:\u002F\u002Fgithub.com\u002Fcodemod\u002Fcodemod\u002Fissues\u002F1710\nnpx codemod@0.18.7 nuxt\u002F4\u002Fmigration-recipe\n",[2889,4677,4678,4683],{"__ignoreMap":2903},[2907,4679,4680],{"class":2909,"line":2910},[2907,4681,4682],{"class":3365},"# Using pinned version due to https:\u002F\u002Fgithub.com\u002Fcodemod\u002Fcodemod\u002Fissues\u002F1710\n",[2907,4684,4685,4687,4690],{"class":2909,"line":3054},[2907,4686,2914],{"class":2913},[2907,4688,4689],{"class":2917}," codemod@0.18.7",[2907,4691,4692],{"class":2917}," nuxt\u002F4\u002Fmigration-recipe\n",[2897,4694,4696],{"className":2899,"code":4695,"filename":2925,"language":2902,"meta":2903,"style":2903},"# Using pinned version due to https:\u002F\u002Fgithub.com\u002Fcodemod\u002Fcodemod\u002Fissues\u002F1710\nyarn dlx codemod@0.18.7 nuxt\u002F4\u002Fmigration-recipe\n",[2889,4697,4698,4702],{"__ignoreMap":2903},[2907,4699,4700],{"class":2909,"line":2910},[2907,4701,4682],{"class":3365},[2907,4703,4704,4706,4709,4711],{"class":2909,"line":3054},[2907,4705,2925],{"class":2913},[2907,4707,4708],{"class":2917}," dlx",[2907,4710,4689],{"class":2917},[2907,4712,4692],{"class":2917},[2897,4714,4716],{"className":2899,"code":4715,"filename":2939,"language":2902,"meta":2903,"style":2903},"# Using pinned version due to https:\u002F\u002Fgithub.com\u002Fcodemod\u002Fcodemod\u002Fissues\u002F1710\npnpm dlx codemod@0.18.7 nuxt\u002F4\u002Fmigration-recipe\n",[2889,4717,4718,4722],{"__ignoreMap":2903},[2907,4719,4720],{"class":2909,"line":2910},[2907,4721,4682],{"class":3365},[2907,4723,4724,4726,4728,4730],{"class":2909,"line":3054},[2907,4725,2939],{"class":2913},[2907,4727,4708],{"class":2917},[2907,4729,4689],{"class":2917},[2907,4731,4692],{"class":2917},[2897,4733,4735],{"className":2899,"code":4734,"filename":2953,"language":2902,"meta":2903,"style":2903},"# Using pinned version due to https:\u002F\u002Fgithub.com\u002Fcodemod\u002Fcodemod\u002Fissues\u002F1710\nbun x codemod@0.18.7 nuxt\u002F4\u002Fmigration-recipe\n",[2889,4736,4737,4741],{"__ignoreMap":2903},[2907,4738,4739],{"class":2909,"line":2910},[2907,4740,4682],{"class":3365},[2907,4742,4743,4745,4747,4749],{"class":2909,"line":3054},[2907,4744,2953],{"class":2913},[2907,4746,2962],{"class":2917},[2907,4748,4689],{"class":2917},[2907,4750,4692],{"class":2917},[2897,4752,4754],{"className":2899,"code":4753,"filename":2970,"language":2902,"meta":2903,"style":2903},"# Using pinned version due to https:\u002F\u002Fgithub.com\u002Fcodemod\u002Fcodemod\u002Fissues\u002F1710\ndeno x codemod@0.18.7 nuxt\u002F4\u002Fmigration-recipe\n",[2889,4755,4756,4760],{"__ignoreMap":2903},[2907,4757,4758],{"class":2909,"line":2910},[2907,4759,4682],{"class":3365},[2907,4761,4762,4764,4766,4768],{"class":2909,"line":3054},[2907,4763,2970],{"class":2913},[2907,4765,2962],{"class":2917},[2907,4767,4689],{"class":2917},[2907,4769,4692],{"class":2917},[2877,4771,4772],{},"This command will execute all codemods in sequence, with the option to deselect any that you do not wish to run. Each codemod is also listed below alongside its respective change and can be executed independently.",[2872,4774,4776],{"id":4775},"new-directory-structure","New Directory Structure",[2877,4778,3209,4779,4781],{},[3001,4780,3212],{},": Significant",[2877,4783,4784,4785,4788],{},"Nuxt now defaults to a new directory structure, with backwards compatibility (so if Nuxt detects you are using the old structure, such as with a top-level ",[2889,4786,4787],{},"app\u002Fpages\u002F"," directory, this new structure will not apply).",[2877,4790,4791,4792],{},"👉 ",[2881,4793,4796],{"href":4794,"rel":4795},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fissues\u002F26444",[2885],"See full RFC",[3215,4798,3218],{"id":4799},"what-changed-3",[3106,4801,4802,4812,4825,4841,4855,4872],{},[3109,4803,4804,4805,4808,4809,4811],{},"the new Nuxt default ",[2889,4806,4807],{},"srcDir"," is ",[2889,4810,1195],{}," by default, and most things are resolved from there.",[3109,4813,4814,4817,4818,4821,4822],{},[2889,4815,4816],{},"serverDir"," now defaults to ",[2889,4819,4820],{},"\u003CrootDir>\u002Fserver"," rather than ",[2889,4823,4824],{},"\u003CsrcDir>\u002Fserver",[3109,4826,4827,3351,4830,3270,4833,4836,4837,4840],{},[2889,4828,4829],{},"layers\u002F",[2889,4831,4832],{},"modules\u002F",[2889,4834,4835],{},"public\u002F"," are resolved relative to ",[2889,4838,4839],{},"\u003CrootDir>"," by default",[3109,4842,4843,4844,3351,4849,4852,4853],{},"if using ",[2881,4845,4848],{"href":4846,"rel":4847},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fcontent\u002Fpull\u002F2649",[2885],"Nuxt Content v2.13+",[2889,4850,4851],{},"content\u002F"," is resolved relative to ",[2889,4854,4839],{},[3109,4856,4857,4858,4861,4862,3270,4865,4868,4869],{},"a new ",[2889,4859,4860],{},"dir.app"," is added, which is the directory we look for ",[2889,4863,4864],{},"router.options.ts",[2889,4866,4867],{},"spa-loading-template.html"," - this defaults to ",[2889,4870,4871],{},"\u003CsrcDir>\u002F",[3109,4873,4857,4874,4879,4880,3270,4883],{},[2881,4875,4876],{"href":1253},[2889,4877,4878],{},"shared\u002F"," directory is available for code shared between the Vue app and the Nitro server, with auto-imports for ",[2889,4881,4882],{},"shared\u002Futils\u002F",[2889,4884,4885],{},"shared\u002Ftypes\u002F",[4887,4888,4889,4893,5041],"details",{},[4890,4891,4892],"summary",{},"An example v4 folder structure.",[2897,4894,4898],{"className":4895,"code":4896,"language":4897,"meta":2903,"style":2903},"language-sh shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight",".output\u002F\n.nuxt\u002F\napp\u002F\n  assets\u002F\n  components\u002F\n  composables\u002F\n  layouts\u002F\n  middleware\u002F\n  pages\u002F\n  plugins\u002F\n  utils\u002F\n  app.config.ts\n  app.vue\n  router.options.ts\ncontent\u002F\nlayers\u002F\nmodules\u002F\nnode_modules\u002F\npublic\u002F\nshared\u002F\n  types\u002F\n  utils\u002F\nserver\u002F\n  api\u002F\n  middleware\u002F\n  plugins\u002F\n  routes\u002F\n  utils\u002F\nnuxt.config.ts\n","sh",[2889,4899,4900,4905,4910,4915,4920,4925,4930,4935,4940,4945,4950,4955,4960,4965,4970,4975,4980,4985,4990,4995,5000,5005,5009,5014,5019,5023,5027,5032,5036],{"__ignoreMap":2903},[2907,4901,4902],{"class":2909,"line":2910},[2907,4903,4904],{"class":2913},".output\u002F\n",[2907,4906,4907],{"class":2909,"line":3054},[2907,4908,4909],{"class":2913},".nuxt\u002F\n",[2907,4911,4912],{"class":2909,"line":3067},[2907,4913,4914],{"class":2913},"app\u002F\n",[2907,4916,4917],{"class":2909,"line":3082},[2907,4918,4919],{"class":2913},"  assets\u002F\n",[2907,4921,4922],{"class":2909,"line":3088},[2907,4923,4924],{"class":2913},"  components\u002F\n",[2907,4926,4927],{"class":2909,"line":3448},[2907,4928,4929],{"class":2913},"  composables\u002F\n",[2907,4931,4932],{"class":2909,"line":3492},[2907,4933,4934],{"class":2913},"  layouts\u002F\n",[2907,4936,4937],{"class":2909,"line":3508},[2907,4938,4939],{"class":2913},"  middleware\u002F\n",[2907,4941,4942],{"class":2909,"line":3536},[2907,4943,4944],{"class":2913},"  pages\u002F\n",[2907,4946,4947],{"class":2909,"line":3542},[2907,4948,4949],{"class":2913},"  plugins\u002F\n",[2907,4951,4952],{"class":2909,"line":3549},[2907,4953,4954],{"class":2913},"  utils\u002F\n",[2907,4956,4957],{"class":2909,"line":3554},[2907,4958,4959],{"class":2913},"  app.config.ts\n",[2907,4961,4962],{"class":2909,"line":3560},[2907,4963,4964],{"class":2913},"  app.vue\n",[2907,4966,4967],{"class":2909,"line":3577},[2907,4968,4969],{"class":2913},"  router.options.ts\n",[2907,4971,4972],{"class":2909,"line":3595},[2907,4973,4974],{"class":2913},"content\u002F\n",[2907,4976,4977],{"class":2909,"line":3608},[2907,4978,4979],{"class":2913},"layers\u002F\n",[2907,4981,4982],{"class":2909,"line":3614},[2907,4983,4984],{"class":2913},"modules\u002F\n",[2907,4986,4987],{"class":2909,"line":3619},[2907,4988,4989],{"class":2913},"node_modules\u002F\n",[2907,4991,4992],{"class":2909,"line":3633},[2907,4993,4994],{"class":2913},"public\u002F\n",[2907,4996,4997],{"class":2909,"line":3639},[2907,4998,4999],{"class":2913},"shared\u002F\n",[2907,5001,5002],{"class":2909,"line":3644},[2907,5003,5004],{"class":2913},"  types\u002F\n",[2907,5006,5007],{"class":2909,"line":3664},[2907,5008,4954],{"class":2913},[2907,5010,5011],{"class":2909,"line":3670},[2907,5012,5013],{"class":2913},"server\u002F\n",[2907,5015,5016],{"class":2909,"line":3693},[2907,5017,5018],{"class":2913},"  api\u002F\n",[2907,5020,5021],{"class":2909,"line":3709},[2907,5022,4939],{"class":2913},[2907,5024,5025],{"class":2909,"line":3727},[2907,5026,4949],{"class":2913},[2907,5028,5029],{"class":2909,"line":3754},[2907,5030,5031],{"class":2913},"  routes\u002F\n",[2907,5033,5034],{"class":2909,"line":3760},[2907,5035,4954],{"class":2913},[2907,5037,5038],{"class":2909,"line":3765},[2907,5039,5040],{"class":2913},"nuxt.config.ts\n",[3192,5042,5043],{},[2877,5044,5045,5046,5049,5050,5052,5053,5055,5056,5059,5060,3351,5063,3100,5066,5068],{},"With this new structure, the ",[2889,5047,5048],{},"~"," alias now points to the ",[2889,5051,1195],{}," directory by default (your ",[2889,5054,4807],{},"). This means ",[2889,5057,5058],{},"~\u002Fcomponents"," resolves to ",[2889,5061,5062],{},"app\u002Fcomponents\u002F",[2889,5064,5065],{},"~\u002Fpages",[2889,5067,4787],{},", etc.",[2877,5070,5071,5072,3015],{},"👉 For more details, see the ",[2881,5073,5076],{"href":5074,"rel":5075},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fpull\u002F27029",[2885],"PR implementing this change",[3215,5078,3318],{"id":5079},"reasons-for-change-3",[3257,5081,5082,5095],{},[3109,5083,5084,5087,5088,3270,5091,5094],{},[3001,5085,5086],{},"Performance"," - placing all your code in the root of your repo causes issues with ",[2889,5089,5090],{},".git\u002F",[2889,5092,5093],{},"node_modules\u002F"," folders being scanned\u002Fincluded by FS watchers which can significantly delay startup on non-Mac OSes.",[3109,5096,5097,5100,5101,5104,5105,5107,5108,5112],{},[3001,5098,5099],{},"IDE type-safety"," - ",[2889,5102,5103],{},"server\u002F"," and the rest of your app are running in two entirely different contexts with different global imports available, and making sure ",[2889,5106,5103],{}," isn't ",[5109,5110,5111],"em",{},"inside"," the same folder as the rest of your app is a big first step to ensuring you get good auto-completes in your IDE.",[5114,5115],"video-accordion",{"platform":5116,"title":5117,"video-id":5118},"vimeo","Watch a video from Vue School on the new directory structure","1031028378",[3215,5120,3339],{"id":5121},"migration-steps-3",[3257,5123,5124,5129,5170,5191],{},[3109,5125,5126,5127,3015],{},"Create a new directory called ",[2889,5128,1195],{},[3109,5130,5131,5132,3351,5135,3351,5138,3351,5141,3351,5144,3351,5147,3351,5149,3270,5152,5155,5156,3351,5158,3351,5160,5162,5163,3291,5166,5169],{},"Move your ",[2889,5133,5134],{},"assets\u002F",[2889,5136,5137],{},"components\u002F",[2889,5139,5140],{},"composables\u002F",[2889,5142,5143],{},"app\u002Flayouts\u002F",[2889,5145,5146],{},"app\u002Fmiddleware\u002F",[2889,5148,4787],{},[2889,5150,5151],{},"app\u002Fplugins\u002F",[2889,5153,5154],{},"utils\u002F"," folders under it, as well as ",[2889,5157,219],{},[2889,5159,229],{},[2889,5161,224],{},". If you have an ",[2889,5164,5165],{},"app\u002Frouter-options.ts",[2889,5167,5168],{},"app\u002Fspa-loading-template.html",", these paths remain the same.",[3109,5171,5172,5173,3351,5175,3351,5177,3351,5179,3351,5181,3351,5183,3270,5185,5187,5188,5190],{},"Make sure your ",[2889,5174,233],{},[2889,5176,4851],{},[2889,5178,4829],{},[2889,5180,4832],{},[2889,5182,4835],{},[2889,5184,4878],{},[2889,5186,5103],{}," folders remain outside the ",[2889,5189,1195],{}," folder, in the root of your project.",[3109,5192,5193,5194,3291,5197,5200,5201,5204,5205,5207],{},"Remember to update any third-party configuration files to work with the new directory structure, such as your ",[2889,5195,5196],{},"tailwindcss",[2889,5198,5199],{},"eslint"," configuration (if required - ",[2889,5202,5203],{},"@nuxtjs\u002Ftailwindcss"," should automatically configure ",[2889,5206,5196],{}," correctly).",[3236,5209,5210],{},[2877,5211,5212,5213],{},"You can automate this migration by running ",[2889,5214,5215],{},"npx codemod@latest nuxt\u002F4\u002Ffile-structure",[2877,5217,5218,5219,5222,5223,5226,5227,5229,5230,3351,5232,3351,5234,3270,5236,5238,5239,5242,5243,5245,5246,3351,5249,3270,5252,5254],{},"However, migration is ",[5109,5220,5221],{},"not required",". If you wish to keep your current folder structure, Nuxt should auto-detect it. (If it does not, please raise an issue.) The one exception is that if you ",[5109,5224,5225],{},"already"," have a custom ",[2889,5228,4807],{},". In this case, you should be aware that your ",[2889,5231,4832],{},[2889,5233,4835],{},[2889,5235,4878],{},[2889,5237,5103],{}," folders will be resolved from your ",[2889,5240,5241],{},"rootDir"," rather than from your custom ",[2889,5244,4807],{},". You can override this by configuring ",[2889,5247,5248],{},"dir.modules",[2889,5250,5251],{},"dir.public",[2889,5253,4816],{}," if you need to.",[2877,5256,5257],{},"You can also force a v3 folder structure with the following configuration:",[2897,5259,5261],{"className":3025,"code":5260,"filename":233,"language":3027,"meta":2903,"style":2903},"export default defineNuxtConfig({\n  \u002F\u002F This reverts the new srcDir default from `app` back to your root directory\n  srcDir: '.',\n  \u002F\u002F This specifies the directory prefix for `router.options.ts` and `spa-loading-template.html`\n  dir: {\n    app: 'app',\n  },\n})\n",[2889,5262,5263,5275,5280,5295,5300,5309,5324,5328],{"__ignoreMap":2903},[2907,5264,5265,5267,5269,5271,5273],{"class":2909,"line":2910},[2907,5266,3036],{"class":3035},[2907,5268,3039],{"class":3035},[2907,5270,3043],{"class":3042},[2907,5272,3047],{"class":3046},[2907,5274,3051],{"class":3050},[2907,5276,5277],{"class":2909,"line":3054},[2907,5278,5279],{"class":3365},"  \u002F\u002F This reverts the new srcDir default from `app` back to your root directory\n",[2907,5281,5282,5285,5287,5289,5291,5293],{"class":2909,"line":3067},[2907,5283,5284],{"class":3057},"  srcDir",[2907,5286,3061],{"class":3050},[2907,5288,3585],{"class":3050},[2907,5290,3015],{"class":2917},[2907,5292,3411],{"class":3050},[2907,5294,3079],{"class":3050},[2907,5296,5297],{"class":2909,"line":3082},[2907,5298,5299],{"class":3365},"  \u002F\u002F This specifies the directory prefix for `router.options.ts` and `spa-loading-template.html`\n",[2907,5301,5302,5305,5307],{"class":2909,"line":3088},[2907,5303,5304],{"class":3057},"  dir",[2907,5306,3061],{"class":3050},[2907,5308,3064],{"class":3050},[2907,5310,5311,5314,5316,5318,5320,5322],{"class":2909,"line":3448},[2907,5312,5313],{"class":3057},"    app",[2907,5315,3061],{"class":3050},[2907,5317,3585],{"class":3050},[2907,5319,1193],{"class":2917},[2907,5321,3411],{"class":3050},[2907,5323,3079],{"class":3050},[2907,5325,5326],{"class":2909,"line":3492},[2907,5327,3085],{"class":3050},[2907,5329,5330,5332],{"class":2909,"line":3508},[2907,5331,3091],{"class":3050},[2907,5333,3094],{"class":3046},[2872,5335,5337],{"id":5336},"singleton-data-fetching-layer","Singleton Data Fetching Layer",[2877,5339,3209,5340,5342],{},[3001,5341,3212],{},": Moderate",[3215,5344,3218],{"id":5345},"what-changed-4",[2877,5347,5348,5349,3270,5351,5353],{},"Nuxt's data fetching system (",[2889,5350,515],{},[2889,5352,527],{},") has been significantly reorganized for better performance and consistency:",[3257,5355,5356,5393,5406,5412],{},[3109,5357,5358,5361,5362,3291,5364,5366,5367,3351,5370,3270,5373,5376,5377,3351,5380,3351,5383,3351,5386,3291,5389,5392],{},[3001,5359,5360],{},"Shared refs for the same key",": All calls to ",[2889,5363,515],{},[2889,5365,527],{}," with the same key now share the same ",[2889,5368,5369],{},"data",[2889,5371,5372],{},"error",[2889,5374,5375],{},"status"," refs. This means that it is important that all calls with an explicit key must not have conflicting ",[2889,5378,5379],{},"deep",[2889,5381,5382],{},"transform",[2889,5384,5385],{},"pick",[2889,5387,5388],{},"getCachedData",[2889,5390,5391],{},"default"," options.",[3109,5394,5395,3267,5400,5402,5403,5405],{},[3001,5396,5397,5398],{},"More control over ",[2889,5399,5388],{},[2889,5401,5388],{}," function is now called every time data is fetched, even if this is caused by a watcher or calling ",[2889,5404,722],{},". (Previously, new data was always fetched and this function was not called in these cases.) To allow more control over when to use cached data and when to refetch, the function now receives a context object with the cause of the request.",[3109,5407,5408,5411],{},[3001,5409,5410],{},"Reactive key support",": You can now use computed refs, plain refs or getter functions as keys, which enables automatic data refetching (and stores data separately).",[3109,5413,5414,5417,5418,5420],{},[3001,5415,5416],{},"Data cleanup",": When the last component using data fetched with ",[2889,5419,515],{}," is unmounted, Nuxt will remove that data to avoid ever-growing memory usage.",[3215,5422,3318],{"id":5423},"reasons-for-change-4",[2877,5425,5426,5427,3015],{},"These changes have been made to improve memory usage and increase consistency with loading states across calls of ",[2889,5428,515],{},[3215,5430,3339],{"id":5431},"migration-steps-4",[3257,5433,5434,5736],{},[3109,5435,5436,5439,5440,5577,5580,5581,5583,5584],{},[3001,5437,5438],{},"Check for inconsistent options",": Review any components using the same key with different options or fetch functions.",[2897,5441,5443],{"className":3025,"code":5442,"language":3027,"meta":2903,"style":2903},"\u002F\u002F This will now trigger a warning\nconst { data: users1 } = useAsyncData('users', () => $fetch('\u002Fapi\u002Fusers'), { deep: false })\nconst { data: users2 } = useAsyncData('users', () => $fetch('\u002Fapi\u002Fusers'), { deep: true })\n",[2889,5444,5445,5450,5518],{"__ignoreMap":2903},[2907,5446,5447],{"class":2909,"line":2910},[2907,5448,5449],{"class":3365},"\u002F\u002F This will now trigger a warning\n",[2907,5451,5452,5455,5457,5460,5462,5465,5467,5470,5473,5475,5477,5480,5482,5484,5487,5489,5492,5494,5496,5499,5501,5503,5505,5507,5510,5512,5514,5516],{"class":2909,"line":3054},[2907,5453,5454],{"class":3383},"const",[2907,5456,3426],{"class":3050},[2907,5458,5459],{"class":3057}," data",[2907,5461,3061],{"class":3050},[2907,5463,5464],{"class":3046}," users1 ",[2907,5466,3091],{"class":3050},[2907,5468,5469],{"class":3050}," =",[2907,5471,5472],{"class":3042}," useAsyncData",[2907,5474,3047],{"class":3046},[2907,5476,3411],{"class":3050},[2907,5478,5479],{"class":2917},"users",[2907,5481,3411],{"class":3050},[2907,5483,3470],{"class":3050},[2907,5485,5486],{"class":3050}," ()",[2907,5488,3384],{"class":3383},[2907,5490,5491],{"class":3042}," $fetch",[2907,5493,3047],{"class":3046},[2907,5495,3411],{"class":3050},[2907,5497,5498],{"class":2917},"\u002Fapi\u002Fusers",[2907,5500,3411],{"class":3050},[2907,5502,3380],{"class":3046},[2907,5504,3470],{"class":3050},[2907,5506,3426],{"class":3050},[2907,5508,5509],{"class":3057}," deep",[2907,5511,3061],{"class":3050},[2907,5513,3435],{"class":3434},[2907,5515,3438],{"class":3050},[2907,5517,3094],{"class":3046},[2907,5519,5520,5522,5524,5526,5528,5531,5533,5535,5537,5539,5541,5543,5545,5547,5549,5551,5553,5555,5557,5559,5561,5563,5565,5567,5569,5571,5573,5575],{"class":2909,"line":3067},[2907,5521,5454],{"class":3383},[2907,5523,3426],{"class":3050},[2907,5525,5459],{"class":3057},[2907,5527,3061],{"class":3050},[2907,5529,5530],{"class":3046}," users2 ",[2907,5532,3091],{"class":3050},[2907,5534,5469],{"class":3050},[2907,5536,5472],{"class":3042},[2907,5538,3047],{"class":3046},[2907,5540,3411],{"class":3050},[2907,5542,5479],{"class":2917},[2907,5544,3411],{"class":3050},[2907,5546,3470],{"class":3050},[2907,5548,5486],{"class":3050},[2907,5550,3384],{"class":3383},[2907,5552,5491],{"class":3042},[2907,5554,3047],{"class":3046},[2907,5556,3411],{"class":3050},[2907,5558,5498],{"class":2917},[2907,5560,3411],{"class":3050},[2907,5562,3380],{"class":3046},[2907,5564,3470],{"class":3050},[2907,5566,3426],{"class":3050},[2907,5568,5509],{"class":3057},[2907,5570,3061],{"class":3050},[2907,5572,4346],{"class":3434},[2907,5574,3438],{"class":3050},[2907,5576,3094],{"class":3046},[5578,5579],"br",{},"It may be beneficial to extract any calls to ",[2889,5582,515],{}," that share an explicit key (and have custom options) into their own composable:",[2897,5585,5588],{"className":3025,"code":5586,"filename":5587,"language":3027,"meta":2903,"style":2903},"export function useUserData (userId: string) {\n  return useAsyncData(\n    `user-${userId}`,\n    () => fetchUser(userId),\n    {\n      deep: true,\n      transform: user => ({ ...user, lastAccessed: new Date() }),\n    },\n  )\n}\n","app\u002Fcomposables\u002FuseUserData.ts",[2889,5589,5590,5614,5624,5642,5660,5665,5676,5721,5726,5731],{"__ignoreMap":2903},[2907,5591,5592,5594,5597,5600,5602,5605,5607,5610,5612],{"class":2909,"line":2910},[2907,5593,3036],{"class":3035},[2907,5595,5596],{"class":3383}," function",[2907,5598,5599],{"class":3042}," useUserData",[2907,5601,3473],{"class":3050},[2907,5603,5604],{"class":3377},"userId",[2907,5606,3061],{"class":3050},[2907,5608,5609],{"class":2913}," string",[2907,5611,3380],{"class":3050},[2907,5613,3064],{"class":3050},[2907,5615,5616,5619,5621],{"class":2909,"line":3054},[2907,5617,5618],{"class":3035},"  return",[2907,5620,5472],{"class":3042},[2907,5622,5623],{"class":3057},"(\n",[2907,5625,5626,5629,5632,5635,5637,5640],{"class":2909,"line":3067},[2907,5627,5628],{"class":3050},"    `",[2907,5630,5631],{"class":2917},"user-",[2907,5633,5634],{"class":3050},"${",[2907,5636,5604],{"class":3046},[2907,5638,5639],{"class":3050},"}`",[2907,5641,3079],{"class":3050},[2907,5643,5644,5647,5649,5652,5654,5656,5658],{"class":2909,"line":3082},[2907,5645,5646],{"class":3050},"    ()",[2907,5648,3384],{"class":3383},[2907,5650,5651],{"class":3042}," fetchUser",[2907,5653,3047],{"class":3057},[2907,5655,5604],{"class":3046},[2907,5657,3380],{"class":3057},[2907,5659,3079],{"class":3050},[2907,5661,5662],{"class":2909,"line":3088},[2907,5663,5664],{"class":3050},"    {\n",[2907,5666,5667,5670,5672,5674],{"class":2909,"line":3448},[2907,5668,5669],{"class":3057},"      deep",[2907,5671,3061],{"class":3050},[2907,5673,4346],{"class":3434},[2907,5675,3079],{"class":3050},[2907,5677,5678,5681,5683,5686,5688,5690,5693,5696,5699,5701,5704,5706,5709,5712,5715,5717,5719],{"class":2909,"line":3492},[2907,5679,5680],{"class":3042},"      transform",[2907,5682,3061],{"class":3050},[2907,5684,5685],{"class":3377}," user",[2907,5687,3384],{"class":3383},[2907,5689,3473],{"class":3057},[2907,5691,5692],{"class":3050},"{",[2907,5694,5695],{"class":3050}," ...",[2907,5697,5698],{"class":3046},"user",[2907,5700,3470],{"class":3050},[2907,5702,5703],{"class":3057}," lastAccessed",[2907,5705,3061],{"class":3050},[2907,5707,5708],{"class":3050}," new",[2907,5710,5711],{"class":3042}," Date",[2907,5713,5714],{"class":3057},"() ",[2907,5716,3091],{"class":3050},[2907,5718,3380],{"class":3057},[2907,5720,3079],{"class":3050},[2907,5722,5723],{"class":2909,"line":3508},[2907,5724,5725],{"class":3050},"    },\n",[2907,5727,5728],{"class":2909,"line":3536},[2907,5729,5730],{"class":3057},"  )\n",[2907,5732,5733],{"class":2909,"line":3542},[2907,5734,5735],{"class":3050},"}\n",[3109,5737,5738,3061,5744],{},[3001,5739,5740,5741,5743],{},"Update ",[2889,5742,5388],{}," implementations",[2897,5745,5747],{"className":4251,"code":5746,"language":4253,"meta":2903,"style":2903},"useAsyncData('key', fetchFunction, {\n-  getCachedData: (key, nuxtApp) => {\n-    return cachedData[key]\n-  }\n+  getCachedData: (key, nuxtApp, ctx) => {\n+    \u002F\u002F ctx.cause - can be 'initial' | 'refresh:hook' | 'refresh:manual' | 'watch'\n+    \n+    \u002F\u002F Example: Don't use cache on manual refresh\n+    if (ctx.cause === 'refresh:manual') return undefined\n+    \n+    return cachedData[key]\n+  }\n})\n",[2889,5748,5749,5754,5761,5768,5774,5781,5788,5795,5802,5809,5815,5821,5827],{"__ignoreMap":2903},[2907,5750,5751],{"class":2909,"line":2910},[2907,5752,5753],{"class":3046},"useAsyncData('key', fetchFunction, {\n",[2907,5755,5756,5758],{"class":2909,"line":3054},[2907,5757,4260],{"class":3050},[2907,5759,5760],{"class":3057},"  getCachedData: (key, nuxtApp) => {\n",[2907,5762,5763,5765],{"class":2909,"line":3067},[2907,5764,4260],{"class":3050},[2907,5766,5767],{"class":3057},"    return cachedData[key]\n",[2907,5769,5770,5772],{"class":2909,"line":3082},[2907,5771,4260],{"class":3050},[2907,5773,3539],{"class":3057},[2907,5775,5776,5778],{"class":2909,"line":3088},[2907,5777,4268],{"class":3050},[2907,5779,5780],{"class":2917},"  getCachedData: (key, nuxtApp, ctx) => {\n",[2907,5782,5783,5785],{"class":2909,"line":3448},[2907,5784,4268],{"class":3050},[2907,5786,5787],{"class":2917},"    \u002F\u002F ctx.cause - can be 'initial' | 'refresh:hook' | 'refresh:manual' | 'watch'\n",[2907,5789,5790,5792],{"class":2909,"line":3492},[2907,5791,4268],{"class":3050},[2907,5793,5794],{"class":2917},"    \n",[2907,5796,5797,5799],{"class":2909,"line":3508},[2907,5798,4268],{"class":3050},[2907,5800,5801],{"class":2917},"    \u002F\u002F Example: Don't use cache on manual refresh\n",[2907,5803,5804,5806],{"class":2909,"line":3536},[2907,5805,4268],{"class":3050},[2907,5807,5808],{"class":2917},"    if (ctx.cause === 'refresh:manual') return undefined\n",[2907,5810,5811,5813],{"class":2909,"line":3542},[2907,5812,4268],{"class":3050},[2907,5814,5794],{"class":2917},[2907,5816,5817,5819],{"class":2909,"line":3549},[2907,5818,4268],{"class":3050},[2907,5820,5767],{"class":2917},[2907,5822,5823,5825],{"class":2909,"line":3554},[2907,5824,4268],{"class":3050},[2907,5826,3539],{"class":2917},[2907,5828,5829],{"class":2909,"line":3560},[2907,5830,5831],{"class":3046},"})\n",[2877,5833,5834],{},"Alternatively, for now, you can disable this behaviour with:",[2897,5836,5838],{"className":3025,"code":5837,"filename":233,"language":3027,"meta":3028,"style":2903},"export default defineNuxtConfig({\n  experimental: {\n    granularCachedData: false,\n    purgeCachedData: false,\n  },\n})\n",[2889,5839,5840,5852,5860,5871,5882,5886],{"__ignoreMap":2903},[2907,5841,5842,5844,5846,5848,5850],{"class":2909,"line":2910},[2907,5843,3036],{"class":3035},[2907,5845,3039],{"class":3035},[2907,5847,3043],{"class":3042},[2907,5849,3047],{"class":3046},[2907,5851,3051],{"class":3050},[2907,5853,5854,5856,5858],{"class":2909,"line":3054},[2907,5855,4332],{"class":3057},[2907,5857,3061],{"class":3050},[2907,5859,3064],{"class":3050},[2907,5861,5862,5865,5867,5869],{"class":2909,"line":3067},[2907,5863,5864],{"class":3057},"    granularCachedData",[2907,5866,3061],{"class":3050},[2907,5868,3435],{"class":3434},[2907,5870,3079],{"class":3050},[2907,5872,5873,5876,5878,5880],{"class":2909,"line":3082},[2907,5874,5875],{"class":3057},"    purgeCachedData",[2907,5877,3061],{"class":3050},[2907,5879,3435],{"class":3434},[2907,5881,3079],{"class":3050},[2907,5883,5884],{"class":2909,"line":3088},[2907,5885,3085],{"class":3050},[2907,5887,5888,5890],{"class":2909,"line":3448},[2907,5889,3091],{"class":3050},[2907,5891,3094],{"class":3046},[2872,5893,5895],{"id":5894},"corrected-module-loading-order-in-layers","Corrected Module Loading Order in Layers",[2877,5897,3209,5898,4167],{},[3001,5899,3212],{},[3215,5901,3218],{"id":5902},"what-changed-5",[2877,5904,5905,5906,5909],{},"The order in which modules are loaded when using ",[2881,5907,5908],{"href":1399},"Nuxt layers"," has been corrected. Previously, modules from the project root were loaded before modules from extended layers, which was the reverse of the expected behavior.",[2877,5911,5912],{},"Now modules are loaded in the correct order:",[3257,5914,5915,5921],{},[3109,5916,5917,5920],{},[3001,5918,5919],{},"Layer modules first"," (in extend order - deeper layers first)",[3109,5922,5923,5926],{},[3001,5924,5925],{},"Project modules last"," (highest priority)",[2877,5928,5929],{},"This affects both:",[3106,5931,5932,5940],{},[3109,5933,5934,5935,5937,5938],{},"Modules defined in the ",[2889,5936,162],{}," array in ",[2889,5939,233],{},[3109,5941,5942,5943,5945],{},"Auto-discovered modules from the ",[2889,5944,4832],{}," directory",[3215,5947,3318],{"id":5948},"reasons-for-change-5",[2877,5950,5951],{},"This change ensures that:",[3106,5953,5954,5957,5960],{},[3109,5955,5956],{},"Extended layers have lower priority than the consuming project",[3109,5958,5959],{},"Module execution order matches the intuitive layer inheritance pattern",[3109,5961,5962],{},"Module configuration and hooks work as expected in multi-layer setups",[3215,5964,3339],{"id":5965},"migration-steps-5",[2877,5967,5968,5971],{},[3001,5969,5970],{},"Most projects will not need changes",", as this corrects the loading order to match expected behavior.",[2877,5973,5974],{},"However, if your project was relying on the previous incorrect order, you may need to:",[3257,5976,5977,5983,5989],{},[3109,5978,5979,5982],{},[3001,5980,5981],{},"Review module dependencies",": Check if any modules depend on specific loading order",[3109,5984,5985,5988],{},[3001,5986,5987],{},"Adjust module configuration",": If modules were configured to work around the incorrect order",[3109,5990,5991,5994],{},[3001,5992,5993],{},"Test thoroughly",": Ensure all functionality works as expected with the corrected order",[2877,5996,5997],{},"Example of the new correct order:",[2897,5999,6001],{"className":3025,"code":6000,"language":3027,"meta":2903,"style":2903},"\u002F\u002F Layer: my-layer\u002Fnuxt.config.ts\nexport default defineNuxtConfig({\n  modules: ['layer-module-1', 'layer-module-2'],\n})\n\n\u002F\u002F Project: nuxt.config.ts\nexport default defineNuxtConfig({\n  extends: ['.\u002Fmy-layer'],\n  modules: ['project-module-1', 'project-module-2'],\n})\n\n\u002F\u002F Loading order (corrected):\n\u002F\u002F 1. layer-module-1\n\u002F\u002F 2. layer-module-2\n\u002F\u002F 3. project-module-1 (can override layer modules)\n\u002F\u002F 4. project-module-2 (can override layer modules)\n",[2889,6002,6003,6008,6020,6051,6057,6061,6066,6078,6098,6126,6132,6136,6141,6146,6151,6156],{"__ignoreMap":2903},[2907,6004,6005],{"class":2909,"line":2910},[2907,6006,6007],{"class":3365},"\u002F\u002F Layer: my-layer\u002Fnuxt.config.ts\n",[2907,6009,6010,6012,6014,6016,6018],{"class":2909,"line":3054},[2907,6011,3036],{"class":3035},[2907,6013,3039],{"class":3035},[2907,6015,3043],{"class":3042},[2907,6017,3047],{"class":3046},[2907,6019,3051],{"class":3050},[2907,6021,6022,6025,6027,6030,6032,6035,6037,6039,6041,6044,6046,6049],{"class":2909,"line":3067},[2907,6023,6024],{"class":3057},"  modules",[2907,6026,3061],{"class":3050},[2907,6028,6029],{"class":3046}," [",[2907,6031,3411],{"class":3050},[2907,6033,6034],{"class":2917},"layer-module-1",[2907,6036,3411],{"class":3050},[2907,6038,3470],{"class":3050},[2907,6040,3585],{"class":3050},[2907,6042,6043],{"class":2917},"layer-module-2",[2907,6045,3411],{"class":3050},[2907,6047,6048],{"class":3046},"]",[2907,6050,3079],{"class":3050},[2907,6052,6053,6055],{"class":2909,"line":3082},[2907,6054,3091],{"class":3050},[2907,6056,3094],{"class":3046},[2907,6058,6059],{"class":2909,"line":3088},[2907,6060,3445],{"emptyLinePlaceholder":1196},[2907,6062,6063],{"class":2909,"line":3448},[2907,6064,6065],{"class":3365},"\u002F\u002F Project: nuxt.config.ts\n",[2907,6067,6068,6070,6072,6074,6076],{"class":2909,"line":3492},[2907,6069,3036],{"class":3035},[2907,6071,3039],{"class":3035},[2907,6073,3043],{"class":3042},[2907,6075,3047],{"class":3046},[2907,6077,3051],{"class":3050},[2907,6079,6080,6083,6085,6087,6089,6092,6094,6096],{"class":2909,"line":3508},[2907,6081,6082],{"class":3057},"  extends",[2907,6084,3061],{"class":3050},[2907,6086,6029],{"class":3046},[2907,6088,3411],{"class":3050},[2907,6090,6091],{"class":2917},".\u002Fmy-layer",[2907,6093,3411],{"class":3050},[2907,6095,6048],{"class":3046},[2907,6097,3079],{"class":3050},[2907,6099,6100,6102,6104,6106,6108,6111,6113,6115,6117,6120,6122,6124],{"class":2909,"line":3536},[2907,6101,6024],{"class":3057},[2907,6103,3061],{"class":3050},[2907,6105,6029],{"class":3046},[2907,6107,3411],{"class":3050},[2907,6109,6110],{"class":2917},"project-module-1",[2907,6112,3411],{"class":3050},[2907,6114,3470],{"class":3050},[2907,6116,3585],{"class":3050},[2907,6118,6119],{"class":2917},"project-module-2",[2907,6121,3411],{"class":3050},[2907,6123,6048],{"class":3046},[2907,6125,3079],{"class":3050},[2907,6127,6128,6130],{"class":2909,"line":3542},[2907,6129,3091],{"class":3050},[2907,6131,3094],{"class":3046},[2907,6133,6134],{"class":2909,"line":3549},[2907,6135,3445],{"emptyLinePlaceholder":1196},[2907,6137,6138],{"class":2909,"line":3554},[2907,6139,6140],{"class":3365},"\u002F\u002F Loading order (corrected):\n",[2907,6142,6143],{"class":2909,"line":3560},[2907,6144,6145],{"class":3365},"\u002F\u002F 1. layer-module-1\n",[2907,6147,6148],{"class":2909,"line":3577},[2907,6149,6150],{"class":3365},"\u002F\u002F 2. layer-module-2\n",[2907,6152,6153],{"class":2909,"line":3595},[2907,6154,6155],{"class":3365},"\u002F\u002F 3. project-module-1 (can override layer modules)\n",[2907,6157,6158],{"class":2909,"line":3608},[2907,6159,6160],{"class":3365},"\u002F\u002F 4. project-module-2 (can override layer modules)\n",[2877,6162,6163,6164,6170],{},"If you encounter issues with module order dependencies due to needing to register a hook, consider using the ",[2881,6165,6166,6169],{"href":1343},[2889,6167,6168],{},"modules:done"," hook"," for modules that need to call a hook. This is run after all other modules have been loaded, which means it is safe to use.",[2877,6172,6173,6174,3270,6179,6184],{},"👉 See ",[2881,6175,6178],{"href":6176,"rel":6177},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fpull\u002F31507",[2885],"PR #31507",[2881,6180,6183],{"href":6181,"rel":6182},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fissues\u002F25719",[2885],"issue #25719"," for more details.",[2872,6186,6188],{"id":6187},"deduplication-of-route-metadata","Deduplication of Route Metadata",[2877,6190,3209,6191,4167],{},[3001,6192,3212],{},[3215,6194,3218],{"id":6195},"what-changed-6",[2877,6197,6198,6199,6201,6202,3351,6204,6207,6208,3270,6211,6214],{},"It's possible to set some route metadata using ",[2889,6200,678],{},", such as the ",[2889,6203,3652],{},[2889,6205,6206],{},"path",", and so on. Previously these were available both on the route and on route metadata (for example, ",[2889,6209,6210],{},"route.name",[2889,6212,6213],{},"route.meta.name",").",[2877,6216,6217],{},"Now, they are only accessible on the route object.",[3215,6219,3318],{"id":6220},"reasons-for-change-6",[2877,6222,6223,6224,6227],{},"This is a result of enabling ",[2889,6225,6226],{},"experimental.scanPageMeta"," by default, and is a performance optimization.",[3215,6229,3339],{"id":6230},"migration-steps-6",[2877,6232,6233],{},"The migration should be straightforward:",[2897,6235,6237],{"className":4251,"code":6236,"language":4253,"meta":2903,"style":2903},"  const route = useRoute()\n  \n- console.log(route.meta.name)\n+ console.log(route.name)\n",[2889,6238,6239,6244,6249,6256],{"__ignoreMap":2903},[2907,6240,6241],{"class":2909,"line":2910},[2907,6242,6243],{"class":3046},"  const route = useRoute()\n",[2907,6245,6246],{"class":2909,"line":3054},[2907,6247,6248],{"class":3046},"  \n",[2907,6250,6251,6253],{"class":2909,"line":3067},[2907,6252,4260],{"class":3050},[2907,6254,6255],{"class":3057}," console.log(route.meta.name)\n",[2907,6257,6258,6260],{"class":2909,"line":3082},[2907,6259,4268],{"class":3050},[2907,6261,6262],{"class":2917}," console.log(route.name)\n",[2872,6264,6266],{"id":6265},"normalized-component-names","Normalized Component Names",[2877,6268,3209,6269,5342],{},[3001,6270,3212],{},[2877,6272,6273],{},"Vue will now generate component names that match the Nuxt pattern for component naming.",[3215,6275,3218],{"id":6276},"what-changed-7",[2877,6278,6279],{},"By default, if you haven't set it manually, Vue will assign a component name that matches\nthe filename of the component.",[2897,6281,6284],{"className":2899,"code":6282,"filename":6283,"language":2902,"meta":2903,"style":2903},"├─ components\u002F\n├─── SomeFolder\u002F\n├───── MyComponent.vue\n","Directory structure",[2889,6285,6286,6294,6302],{"__ignoreMap":2903},[2907,6287,6288,6291],{"class":2909,"line":2910},[2907,6289,6290],{"class":2913},"├─",[2907,6292,6293],{"class":2917}," components\u002F\n",[2907,6295,6296,6299],{"class":2909,"line":3054},[2907,6297,6298],{"class":2913},"├───",[2907,6300,6301],{"class":2917}," SomeFolder\u002F\n",[2907,6303,6304,6307],{"class":2909,"line":3067},[2907,6305,6306],{"class":2913},"├─────",[2907,6308,6309],{"class":2917}," MyComponent.vue\n",[2877,6311,6312,6313,6316,6317,6319],{},"In this case, the component name would be ",[2889,6314,6315],{},"MyComponent",", as far as Vue is concerned. If you wanted to use ",[2889,6318,3132],{}," with it, or identify it in the Vue DevTools, you would need to use this name.",[2877,6321,6322,6323,3015],{},"But in order to auto-import it, you would need to use ",[2889,6324,6325],{},"SomeFolderMyComponent",[2877,6327,6328],{},"With this change, these two values will match, and Vue will generate a component name that matches the Nuxt pattern for component naming.",[3215,6330,3339],{"id":6331},"migration-steps-7",[2877,6333,6334,6335,6338,6339,6342,6343,6345],{},"Ensure that you use the updated name in any tests which use ",[2889,6336,6337],{},"findComponent"," from ",[2889,6340,6341],{},"@vue\u002Ftest-utils"," and in any ",[2889,6344,3132],{}," which depends on the name of your component.",[2877,6347,5834],{},[2897,6349,6351],{"className":3025,"code":6350,"filename":233,"language":3027,"meta":3028,"style":2903},"export default defineNuxtConfig({\n  experimental: {\n    normalizeComponentNames: false,\n  },\n})\n",[2889,6352,6353,6365,6373,6384,6388],{"__ignoreMap":2903},[2907,6354,6355,6357,6359,6361,6363],{"class":2909,"line":2910},[2907,6356,3036],{"class":3035},[2907,6358,3039],{"class":3035},[2907,6360,3043],{"class":3042},[2907,6362,3047],{"class":3046},[2907,6364,3051],{"class":3050},[2907,6366,6367,6369,6371],{"class":2909,"line":3054},[2907,6368,4332],{"class":3057},[2907,6370,3061],{"class":3050},[2907,6372,3064],{"class":3050},[2907,6374,6375,6378,6380,6382],{"class":2909,"line":3067},[2907,6376,6377],{"class":3057},"    normalizeComponentNames",[2907,6379,3061],{"class":3050},[2907,6381,3435],{"class":3434},[2907,6383,3079],{"class":3050},[2907,6385,6386],{"class":2909,"line":3082},[2907,6387,3085],{"class":3050},[2907,6389,6390,6392],{"class":2909,"line":3088},[2907,6391,3091],{"class":3050},[2907,6393,3094],{"class":3046},[2872,6395,6397],{"id":6396},"unhead-v2","Unhead v2",[2877,6399,3209,6400,4167],{},[3001,6401,3212],{},[3215,6403,3218],{"id":6404},"what-changed-8",[2877,6406,6407,6412,6413,6416],{},[2881,6408,6411],{"href":6409,"rel":6410},"https:\u002F\u002Funhead.unjs.io\u002F",[2885],"Unhead",", used to generate ",[2889,6414,6415],{},"\u003Chead>"," tags, has been updated to version 2. While mostly compatible it includes several breaking changes\nfor lower-level APIs.",[3106,6418,6419,6434,6437],{},[3109,6420,6421,6422,3351,6425,3351,6428,3351,6431,3015],{},"Removed props: ",[2889,6423,6424],{},"vmid",[2889,6426,6427],{},"hid",[2889,6429,6430],{},"children",[2889,6432,6433],{},"body",[3109,6435,6436],{},"Promise input no longer supported.",[3109,6438,6439],{},"Tags are now sorted using Capo.js by default.",[3215,6441,3339],{"id":6442},"migration-steps-8",[2877,6444,6445],{},"The above changes should have minimal impact on your app.",[2877,6447,6448],{},"If you have issues you should verify:",[3106,6450,6451],{},[3109,6452,6453],{},"You're not using any of the removed props.",[2897,6455,6457],{"className":4251,"code":6456,"language":4253,"meta":2903,"style":2903},"useHead({\n  meta: [{ \n    name: 'description', \n    \u002F\u002F meta tags don't need a vmid, or a key    \n-   vmid: 'description' \n-   hid: 'description'\n  }]\n})\n",[2889,6458,6459,6464,6469,6474,6479,6486,6493,6498],{"__ignoreMap":2903},[2907,6460,6461],{"class":2909,"line":2910},[2907,6462,6463],{"class":3046},"useHead({\n",[2907,6465,6466],{"class":2909,"line":3054},[2907,6467,6468],{"class":3046},"  meta: [{ \n",[2907,6470,6471],{"class":2909,"line":3067},[2907,6472,6473],{"class":3046},"    name: 'description', \n",[2907,6475,6476],{"class":2909,"line":3082},[2907,6477,6478],{"class":3046},"    \u002F\u002F meta tags don't need a vmid, or a key    \n",[2907,6480,6481,6483],{"class":2909,"line":3088},[2907,6482,4260],{"class":3050},[2907,6484,6485],{"class":3057},"   vmid: 'description' \n",[2907,6487,6488,6490],{"class":2909,"line":3448},[2907,6489,4260],{"class":3050},[2907,6491,6492],{"class":3057},"   hid: 'description'\n",[2907,6494,6495],{"class":2909,"line":3492},[2907,6496,6497],{"class":3046},"  }]\n",[2907,6499,6500],{"class":2909,"line":3508},[2907,6501,5831],{"class":3046},[3106,6503,6504],{},[3109,6505,6506,6507,3291,6512,6517],{},"If you're using ",[2881,6508,6511],{"href":6509,"rel":6510},"https:\u002F\u002Funhead.unjs.io\u002Fdocs\u002Fhead\u002Fguides\u002Fplugins\u002Ftemplate-params",[2885],"Template Params",[2881,6513,6516],{"href":6514,"rel":6515},"https:\u002F\u002Funhead.unjs.io\u002Fdocs\u002Fhead\u002Fguides\u002Fplugins\u002Falias-sorting",[2885],"Alias Tag Sorting",", you will need to explicitly opt in to these features now.",[2897,6519,6521],{"className":3025,"code":6520,"language":3027,"meta":2903,"style":2903},"import { AliasSortingPlugin, TemplateParamsPlugin } from '@unhead\u002Fvue\u002Fplugins'\n\nexport default defineNuxtPlugin({\n  setup () {\n    const unhead = injectHead()\n    unhead.use(TemplateParamsPlugin)\n    unhead.use(AliasSortingPlugin)\n  },\n})\n",[2889,6522,6523,6550,6554,6567,6576,6592,6609,6624,6628],{"__ignoreMap":2903},[2907,6524,6525,6528,6530,6533,6535,6538,6540,6543,6545,6548],{"class":2909,"line":2910},[2907,6526,6527],{"class":3035},"import",[2907,6529,3426],{"class":3050},[2907,6531,6532],{"class":3046}," AliasSortingPlugin",[2907,6534,3470],{"class":3050},[2907,6536,6537],{"class":3046}," TemplateParamsPlugin",[2907,6539,3438],{"class":3050},[2907,6541,6542],{"class":3035}," from",[2907,6544,3585],{"class":3050},[2907,6546,6547],{"class":2917},"@unhead\u002Fvue\u002Fplugins",[2907,6549,3799],{"class":3050},[2907,6551,6552],{"class":2909,"line":3054},[2907,6553,3445],{"emptyLinePlaceholder":1196},[2907,6555,6556,6558,6560,6563,6565],{"class":2909,"line":3067},[2907,6557,3036],{"class":3035},[2907,6559,3039],{"class":3035},[2907,6561,6562],{"class":3042}," defineNuxtPlugin",[2907,6564,3047],{"class":3046},[2907,6566,3051],{"class":3050},[2907,6568,6569,6572,6574],{"class":2909,"line":3082},[2907,6570,6571],{"class":3057},"  setup",[2907,6573,5486],{"class":3050},[2907,6575,3064],{"class":3050},[2907,6577,6578,6581,6584,6586,6589],{"class":2909,"line":3088},[2907,6579,6580],{"class":3383},"    const",[2907,6582,6583],{"class":3046}," unhead",[2907,6585,5469],{"class":3050},[2907,6587,6588],{"class":3042}," injectHead",[2907,6590,6591],{"class":3057},"()\n",[2907,6593,6594,6597,6599,6602,6604,6607],{"class":2909,"line":3448},[2907,6595,6596],{"class":3046},"    unhead",[2907,6598,3015],{"class":3050},[2907,6600,6601],{"class":3042},"use",[2907,6603,3047],{"class":3057},[2907,6605,6606],{"class":3046},"TemplateParamsPlugin",[2907,6608,3094],{"class":3057},[2907,6610,6611,6613,6615,6617,6619,6622],{"class":2909,"line":3492},[2907,6612,6596],{"class":3046},[2907,6614,3015],{"class":3050},[2907,6616,6601],{"class":3042},[2907,6618,3047],{"class":3057},[2907,6620,6621],{"class":3046},"AliasSortingPlugin",[2907,6623,3094],{"class":3057},[2907,6625,6626],{"class":2909,"line":3508},[2907,6627,3085],{"class":3050},[2907,6629,6630,6632],{"class":2909,"line":3536},[2907,6631,3091],{"class":3050},[2907,6633,3094],{"class":3046},[2877,6635,6636,6637,3100,6640,3291,6643,3015],{},"While not required it's recommended to update any imports from ",[2889,6638,6639],{},"@unhead\u002Fvue",[2889,6641,6642],{},"#imports",[2889,6644,6645],{},"nuxt\u002Fapp",[2897,6647,6649],{"className":4251,"code":6648,"language":4253,"meta":2903,"style":2903},"-import { useHead } from '@unhead\u002Fvue'\n+import { useHead } from '#imports'\n",[2889,6650,6651,6658],{"__ignoreMap":2903},[2907,6652,6653,6655],{"class":2909,"line":2910},[2907,6654,4260],{"class":3050},[2907,6656,6657],{"class":3057},"import { useHead } from '@unhead\u002Fvue'\n",[2907,6659,6660,6662],{"class":2909,"line":3054},[2907,6661,4268],{"class":3050},[2907,6663,6664],{"class":2917},"import { useHead } from '#imports'\n",[2877,6666,6667,6668,6671],{},"If you still have issues you may revert to the v1 behavior by enabling the ",[2889,6669,6670],{},"head.legacy"," config.",[2897,6673,6675],{"className":3025,"code":6674,"language":3027,"meta":2903,"style":2903},"export default defineNuxtConfig({\n  unhead: {\n    legacy: true,\n  },\n})\n",[2889,6676,6677,6689,6698,6709,6713],{"__ignoreMap":2903},[2907,6678,6679,6681,6683,6685,6687],{"class":2909,"line":2910},[2907,6680,3036],{"class":3035},[2907,6682,3039],{"class":3035},[2907,6684,3043],{"class":3042},[2907,6686,3047],{"class":3046},[2907,6688,3051],{"class":3050},[2907,6690,6691,6694,6696],{"class":2909,"line":3054},[2907,6692,6693],{"class":3057},"  unhead",[2907,6695,3061],{"class":3050},[2907,6697,3064],{"class":3050},[2907,6699,6700,6703,6705,6707],{"class":2909,"line":3067},[2907,6701,6702],{"class":3057},"    legacy",[2907,6704,3061],{"class":3050},[2907,6706,4346],{"class":3434},[2907,6708,3079],{"class":3050},[2907,6710,6711],{"class":2909,"line":3082},[2907,6712,3085],{"class":3050},[2907,6714,6715,6717],{"class":2909,"line":3088},[2907,6716,3091],{"class":3050},[2907,6718,3094],{"class":3046},[2872,6720,6722],{"id":6721},"new-dom-location-for-spa-loading-screen","New DOM Location for SPA Loading Screen",[2877,6724,3209,6725,4167],{},[3001,6726,3212],{},[3215,6728,3218],{"id":6729},"what-changed-9",[2877,6731,6732,6733,6736,6737,6740,6741,6744],{},"When rendering a client-only page (with ",[2889,6734,6735],{},"ssr: false","), we optionally render a loading screen (from ",[2889,6738,6739],{},"~\u002Fapp\u002Fspa-loading-template.html"," - note that this has also changed to ",[2889,6742,6743],{},"~\u002Fspa-loading-template.html"," in Nuxt 4), within the Nuxt app root:",[2897,6746,6750],{"className":6747,"code":6748,"language":6749,"meta":2903,"style":2903},"language-html shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","\u003Cdiv id=\"__nuxt\">\n  \u003C!-- spa loading template -->\n\u003C\u002Fdiv>\n","html",[2889,6751,6752,6777,6782],{"__ignoreMap":2903},[2907,6753,6754,6757,6760,6763,6766,6769,6772,6774],{"class":2909,"line":2910},[2907,6755,6756],{"class":3050},"\u003C",[2907,6758,6759],{"class":3057},"div",[2907,6761,6762],{"class":3383}," id",[2907,6764,6765],{"class":3050},"=",[2907,6767,6768],{"class":3050},"\"",[2907,6770,6771],{"class":2917},"__nuxt",[2907,6773,6768],{"class":3050},[2907,6775,6776],{"class":3050},">\n",[2907,6778,6779],{"class":2909,"line":3054},[2907,6780,6781],{"class":3365},"  \u003C!-- spa loading template -->\n",[2907,6783,6784,6787,6789],{"class":2909,"line":3067},[2907,6785,6786],{"class":3050},"\u003C\u002F",[2907,6788,6759],{"class":3057},[2907,6790,6776],{"class":3050},[2877,6792,6793],{},"Now, we default to rendering the template alongside the Nuxt app root:",[2897,6795,6797],{"className":6747,"code":6796,"language":6749,"meta":2903,"style":2903},"\u003Cdiv id=\"__nuxt\">\u003C\u002Fdiv>\n\u003C!-- spa loading template -->\n",[2889,6798,6799,6822],{"__ignoreMap":2903},[2907,6800,6801,6803,6805,6807,6809,6811,6813,6815,6818,6820],{"class":2909,"line":2910},[2907,6802,6756],{"class":3050},[2907,6804,6759],{"class":3057},[2907,6806,6762],{"class":3383},[2907,6808,6765],{"class":3050},[2907,6810,6768],{"class":3050},[2907,6812,6771],{"class":2917},[2907,6814,6768],{"class":3050},[2907,6816,6817],{"class":3050},">\u003C\u002F",[2907,6819,6759],{"class":3057},[2907,6821,6776],{"class":3050},[2907,6823,6824],{"class":2909,"line":3054},[2907,6825,6826],{"class":3365},"\u003C!-- spa loading template -->\n",[3215,6828,3318],{"id":6829},"reasons-for-change-7",[2877,6831,6832],{},"This allows the spa loading template to remain in the DOM until the Vue app suspense resolves, preventing a flash of white.",[3215,6834,3339],{"id":6835},"migration-steps-9",[2877,6837,6838,6839,6842,6843,3270,6846,6849],{},"If you were targeting the spa loading template with CSS or ",[2889,6840,6841],{},"document.queryElement"," you will need to update your selectors. For this purpose you can use the new ",[2889,6844,6845],{},"app.spaLoaderTag",[2889,6847,6848],{},"app.spaLoaderAttrs"," configuration options.",[2877,6851,6852],{},"Alternatively, you can revert to the previous behaviour with:",[2897,6854,6856],{"className":3025,"code":6855,"filename":233,"language":3027,"meta":3028,"style":2903},"export default defineNuxtConfig({\n  experimental: {\n    spaLoadingTemplateLocation: 'within',\n  },\n})\n",[2889,6857,6858,6870,6878,6894,6898],{"__ignoreMap":2903},[2907,6859,6860,6862,6864,6866,6868],{"class":2909,"line":2910},[2907,6861,3036],{"class":3035},[2907,6863,3039],{"class":3035},[2907,6865,3043],{"class":3042},[2907,6867,3047],{"class":3046},[2907,6869,3051],{"class":3050},[2907,6871,6872,6874,6876],{"class":2909,"line":3054},[2907,6873,4332],{"class":3057},[2907,6875,3061],{"class":3050},[2907,6877,3064],{"class":3050},[2907,6879,6880,6883,6885,6887,6890,6892],{"class":2909,"line":3067},[2907,6881,6882],{"class":3057},"    spaLoadingTemplateLocation",[2907,6884,3061],{"class":3050},[2907,6886,3585],{"class":3050},[2907,6888,6889],{"class":2917},"within",[2907,6891,3411],{"class":3050},[2907,6893,3079],{"class":3050},[2907,6895,6896],{"class":2909,"line":3082},[2907,6897,3085],{"class":3050},[2907,6899,6900,6902],{"class":2909,"line":3088},[2907,6901,3091],{"class":3050},[2907,6903,3094],{"class":3046},[2872,6905,6907,6908],{"id":6906},"parsed-errordata","Parsed ",[2889,6909,6910],{},"error.data",[2877,6912,3209,6913,4167],{},[3001,6914,3212],{},[2877,6916,6917,6918,6920,6921,6923],{},"It was possible to throw an error with a ",[2889,6919,5369],{}," property, but this was not parsed. Now, it is parsed and made available in the ",[2889,6922,5372],{}," object. Although a fix, this is technically a breaking change if you were relying on the previous behavior and parsing it manually.",[3215,6925,3339],{"id":6926},"migration-steps-10",[2877,6928,6929,6930,6932,6933,3061],{},"Update your custom ",[2889,6931,229],{}," to remove any additional parsing of ",[2889,6934,6910],{},[2897,6936,6938],{"className":4251,"code":6937,"language":4253,"meta":2903,"style":2903},"  \u003Cscript setup lang=\"ts\">\n  import type { NuxtError } from '#app'\n\n  const props = defineProps({\n    error: Object as () => NuxtError\n  })\n\n- const data = JSON.parse(error.data)\n+ const data = error.data\n  \u003C\u002Fscript>\n",[2889,6939,6940,6945,6950,6954,6959,6964,6969,6973,6980,6987],{"__ignoreMap":2903},[2907,6941,6942],{"class":2909,"line":2910},[2907,6943,6944],{"class":3046},"  \u003Cscript setup lang=\"ts\">\n",[2907,6946,6947],{"class":2909,"line":3054},[2907,6948,6949],{"class":3046},"  import type { NuxtError } from '#app'\n",[2907,6951,6952],{"class":2909,"line":3067},[2907,6953,3445],{"emptyLinePlaceholder":1196},[2907,6955,6956],{"class":2909,"line":3082},[2907,6957,6958],{"class":3046},"  const props = defineProps({\n",[2907,6960,6961],{"class":2909,"line":3088},[2907,6962,6963],{"class":3046},"    error: Object as () => NuxtError\n",[2907,6965,6966],{"class":2909,"line":3448},[2907,6967,6968],{"class":3046},"  })\n",[2907,6970,6971],{"class":2909,"line":3492},[2907,6972,3445],{"emptyLinePlaceholder":1196},[2907,6974,6975,6977],{"class":2909,"line":3508},[2907,6976,4260],{"class":3050},[2907,6978,6979],{"class":3057}," const data = JSON.parse(error.data)\n",[2907,6981,6982,6984],{"class":2909,"line":3536},[2907,6983,4268],{"class":3050},[2907,6985,6986],{"class":2917}," const data = error.data\n",[2907,6988,6989],{"class":2909,"line":3542},[2907,6990,6991],{"class":3046},"  \u003C\u002Fscript>\n",[2872,6993,6995],{"id":6994},"more-granular-inline-styles","More Granular Inline Styles",[2877,6997,3209,6998,5342],{},[3001,6999,3212],{},[2877,7001,7002],{},"Nuxt will now only inline styles for Vue components, not global CSS.",[3215,7004,3218],{"id":7005},"what-changed-10",[2877,7007,7008,7009,7012,7013,7016],{},"Previously, Nuxt would inline all CSS, including global styles, and remove ",[2889,7010,7011],{},"\u003Clink>"," elements to separate CSS files. Now, Nuxt will only do this for Vue components (which previously produced separate chunks of CSS). We think this is a better balance of reducing separate network requests (just as before, there will not be separate requests for individual ",[2889,7014,7015],{},".css"," files per-page or per-component on the initial load), as well as allowing caching of a single global CSS file and reducing the document download size of the initial request.",[3215,7018,3339],{"id":7019},"migration-steps-11",[2877,7021,7022,7023,7026],{},"This feature is fully configurable and you can revert to the previous behavior by setting ",[2889,7024,7025],{},"inlineStyles: true"," to inline global CSS as well as per-component CSS.",[2897,7028,7030],{"className":3025,"code":7029,"filename":233,"language":3027,"meta":3028,"style":2903},"export default defineNuxtConfig({\n  features: {\n    inlineStyles: true,\n  },\n})\n",[2889,7031,7032,7044,7053,7064,7068],{"__ignoreMap":2903},[2907,7033,7034,7036,7038,7040,7042],{"class":2909,"line":2910},[2907,7035,3036],{"class":3035},[2907,7037,3039],{"class":3035},[2907,7039,3043],{"class":3042},[2907,7041,3047],{"class":3046},[2907,7043,3051],{"class":3050},[2907,7045,7046,7049,7051],{"class":2909,"line":3054},[2907,7047,7048],{"class":3057},"  features",[2907,7050,3061],{"class":3050},[2907,7052,3064],{"class":3050},[2907,7054,7055,7058,7060,7062],{"class":2909,"line":3067},[2907,7056,7057],{"class":3057},"    inlineStyles",[2907,7059,3061],{"class":3050},[2907,7061,4346],{"class":3434},[2907,7063,3079],{"class":3050},[2907,7065,7066],{"class":2909,"line":3082},[2907,7067,3085],{"class":3050},[2907,7069,7070,7072],{"class":2909,"line":3088},[2907,7071,3091],{"class":3050},[2907,7073,3094],{"class":3046},[2872,7075,7077],{"id":7076},"scan-page-meta-after-resolution","Scan Page Meta After Resolution",[2877,7079,3209,7080,4167],{},[3001,7081,3212],{},[3215,7083,3218],{"id":7084},"what-changed-11",[2877,7086,7087,7088,3503,7090,7093,7094,7097],{},"We now scan page metadata (defined in ",[2889,7089,678],{},[5109,7091,7092],{},"after"," calling the ",[2889,7095,7096],{},"pages:extend"," hook rather than before.",[3215,7099,3318],{"id":7100},"reasons-for-change-8",[2877,7102,7103,7104,7106,7107,7110],{},"This was to allow scanning metadata for pages that users wanted to add in ",[2889,7105,7096],{},". We still offer an opportunity to change or override page metadata in a new ",[2889,7108,7109],{},"pages:resolved"," hook.",[3215,7112,3339],{"id":7113},"migration-steps-12",[2877,7115,7116,7117,7119,7120,3015],{},"If you want to override page metadata, do that in ",[2889,7118,7109],{}," rather than in ",[2889,7121,7096],{},[2897,7123,7125],{"className":4251,"code":7124,"language":4253,"meta":2903,"style":2903},"  export default defineNuxtConfig({\n    hooks: {\n-     'pages:extend'(pages) {\n+     'pages:resolved'(pages) {\n        const myPage = pages.find(page => page.path === '\u002F')\n        myPage.meta ||= {}\n        myPage.meta.layout = 'overridden-layout'\n      }\n    }\n  })\n",[2889,7126,7127,7132,7137,7144,7151,7156,7161,7166,7171,7175],{"__ignoreMap":2903},[2907,7128,7129],{"class":2909,"line":2910},[2907,7130,7131],{"class":3046},"  export default defineNuxtConfig({\n",[2907,7133,7134],{"class":2909,"line":3054},[2907,7135,7136],{"class":3046},"    hooks: {\n",[2907,7138,7139,7141],{"class":2909,"line":3067},[2907,7140,4260],{"class":3050},[2907,7142,7143],{"class":3057},"     'pages:extend'(pages) {\n",[2907,7145,7146,7148],{"class":2909,"line":3082},[2907,7147,4268],{"class":3050},[2907,7149,7150],{"class":2917},"     'pages:resolved'(pages) {\n",[2907,7152,7153],{"class":2909,"line":3088},[2907,7154,7155],{"class":3046},"        const myPage = pages.find(page => page.path === '\u002F')\n",[2907,7157,7158],{"class":2909,"line":3448},[2907,7159,7160],{"class":3046},"        myPage.meta ||= {}\n",[2907,7162,7163],{"class":2909,"line":3492},[2907,7164,7165],{"class":3046},"        myPage.meta.layout = 'overridden-layout'\n",[2907,7167,7168],{"class":2909,"line":3508},[2907,7169,7170],{"class":3046},"      }\n",[2907,7172,7173],{"class":2909,"line":3536},[2907,7174,3757],{"class":3046},[2907,7176,7177],{"class":2909,"line":3542},[2907,7178,6968],{"class":3046},[2877,7180,6852],{},[2897,7182,7184],{"className":3025,"code":7183,"filename":233,"language":3027,"meta":3028,"style":2903},"export default defineNuxtConfig({\n  experimental: {\n    scanPageMeta: true,\n  },\n})\n",[2889,7185,7186,7198,7206,7217,7221],{"__ignoreMap":2903},[2907,7187,7188,7190,7192,7194,7196],{"class":2909,"line":2910},[2907,7189,3036],{"class":3035},[2907,7191,3039],{"class":3035},[2907,7193,3043],{"class":3042},[2907,7195,3047],{"class":3046},[2907,7197,3051],{"class":3050},[2907,7199,7200,7202,7204],{"class":2909,"line":3054},[2907,7201,4332],{"class":3057},[2907,7203,3061],{"class":3050},[2907,7205,3064],{"class":3050},[2907,7207,7208,7211,7213,7215],{"class":2909,"line":3067},[2907,7209,7210],{"class":3057},"    scanPageMeta",[2907,7212,3061],{"class":3050},[2907,7214,4346],{"class":3434},[2907,7216,3079],{"class":3050},[2907,7218,7219],{"class":2909,"line":3082},[2907,7220,3085],{"class":3050},[2907,7222,7223,7225],{"class":2909,"line":3088},[2907,7224,3091],{"class":3050},[2907,7226,3094],{"class":3046},[2872,7228,7230],{"id":7229},"shared-prerender-data","Shared Prerender Data",[2877,7232,3209,7233,3213],{},[3001,7234,3212],{},[3215,7236,3218],{"id":7237},"what-changed-12",[2877,7239,7240,7241,3270,7243,7245,7246,3015],{},"We enabled a previously experimental feature to share data from ",[2889,7242,515],{},[2889,7244,527],{}," calls, across different pages. See ",[2881,7247,7250],{"href":7248,"rel":7249},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fpull\u002F24894",[2885],"original PR",[3215,7252,3318],{"id":7253},"reasons-for-change-9",[2877,7255,7256,7257,7259,7260,3291,7262,7264],{},"This feature automatically shares payload ",[5109,7258,5369],{}," between pages that are prerendered. This can result in a significant performance improvement when prerendering sites that use ",[2889,7261,515],{},[2889,7263,527],{}," and fetch the same data in different pages.",[2877,7266,7267,7268,7270],{},"For example, if your site requires a ",[2889,7269,527],{}," call for every page (for example, to get navigation data for a menu, or site settings from a CMS), this data would only be fetched once when prerendering the first page that uses it, and then cached for use when prerendering other pages.",[3215,7272,3339],{"id":7273},"migration-steps-13",[2877,7275,7276,7277,7279,7280,7282],{},"Make sure that any unique key of your data is always resolvable to the same data. For example, if you are using ",[2889,7278,515],{}," to fetch data related to a particular page, you should provide a key that uniquely matches that data. (",[2889,7281,527],{}," should do this automatically for you.)",[2897,7284,7287],{"className":3025,"code":7285,"filename":7286,"language":3027,"meta":2903,"style":2903},"\u002F\u002F This would be unsafe in a dynamic page (e.g. `[slug].vue`) because the route slug makes a difference\n\u002F\u002F to the data fetched, but Nuxt can't know that because it's not reflected in the key.\nconst route = useRoute()\nconst { data } = await useAsyncData(async () => {\n  return await $fetch(`\u002Fapi\u002Fmy-page\u002F${route.params.slug}`)\n})\n\u002F\u002F Instead, you should use a key that uniquely identifies the data fetched.\nconst { data } = await useAsyncData(route.params.slug, async () => {\n  return await $fetch(`\u002Fapi\u002Fmy-page\u002F${route.params.slug}`)\n})\n","app\u002Fpages\u002Ftest\u002F[slug].vue",[2889,7288,7289,7294,7299,7313,7342,7377,7383,7388,7426,7456],{"__ignoreMap":2903},[2907,7290,7291],{"class":2909,"line":2910},[2907,7292,7293],{"class":3365},"\u002F\u002F This would be unsafe in a dynamic page (e.g. `[slug].vue`) because the route slug makes a difference\n",[2907,7295,7296],{"class":2909,"line":3054},[2907,7297,7298],{"class":3365},"\u002F\u002F to the data fetched, but Nuxt can't know that because it's not reflected in the key.\n",[2907,7300,7301,7303,7306,7308,7311],{"class":2909,"line":3067},[2907,7302,5454],{"class":3383},[2907,7304,7305],{"class":3046}," route ",[2907,7307,6765],{"class":3050},[2907,7309,7310],{"class":3042}," useRoute",[2907,7312,6591],{"class":3046},[2907,7314,7315,7317,7319,7322,7324,7326,7329,7331,7333,7336,7338,7340],{"class":2909,"line":3082},[2907,7316,5454],{"class":3383},[2907,7318,3426],{"class":3050},[2907,7320,7321],{"class":3046}," data ",[2907,7323,3091],{"class":3050},[2907,7325,5469],{"class":3050},[2907,7327,7328],{"class":3035}," await",[2907,7330,5472],{"class":3042},[2907,7332,3047],{"class":3046},[2907,7334,7335],{"class":3383},"async",[2907,7337,5486],{"class":3050},[2907,7339,3384],{"class":3383},[2907,7341,3064],{"class":3050},[2907,7343,7344,7346,7348,7350,7352,7355,7358,7360,7363,7365,7368,7370,7373,7375],{"class":2909,"line":3088},[2907,7345,5618],{"class":3035},[2907,7347,7328],{"class":3035},[2907,7349,5491],{"class":3042},[2907,7351,3047],{"class":3057},[2907,7353,7354],{"class":3050},"`",[2907,7356,7357],{"class":2917},"\u002Fapi\u002Fmy-page\u002F",[2907,7359,5634],{"class":3050},[2907,7361,7362],{"class":3046},"route",[2907,7364,3015],{"class":3050},[2907,7366,7367],{"class":3046},"params",[2907,7369,3015],{"class":3050},[2907,7371,7372],{"class":3046},"slug",[2907,7374,5639],{"class":3050},[2907,7376,3094],{"class":3057},[2907,7378,7379,7381],{"class":2909,"line":3448},[2907,7380,3091],{"class":3050},[2907,7382,3094],{"class":3046},[2907,7384,7385],{"class":2909,"line":3492},[2907,7386,7387],{"class":3365},"\u002F\u002F Instead, you should use a key that uniquely identifies the data fetched.\n",[2907,7389,7390,7392,7394,7396,7398,7400,7402,7404,7407,7409,7411,7413,7415,7417,7420,7422,7424],{"class":2909,"line":3508},[2907,7391,5454],{"class":3383},[2907,7393,3426],{"class":3050},[2907,7395,7321],{"class":3046},[2907,7397,3091],{"class":3050},[2907,7399,5469],{"class":3050},[2907,7401,7328],{"class":3035},[2907,7403,5472],{"class":3042},[2907,7405,7406],{"class":3046},"(route",[2907,7408,3015],{"class":3050},[2907,7410,7367],{"class":3046},[2907,7412,3015],{"class":3050},[2907,7414,7372],{"class":3046},[2907,7416,3470],{"class":3050},[2907,7418,7419],{"class":3383}," async",[2907,7421,5486],{"class":3050},[2907,7423,3384],{"class":3383},[2907,7425,3064],{"class":3050},[2907,7427,7428,7430,7432,7434,7436,7438,7440,7442,7444,7446,7448,7450,7452,7454],{"class":2909,"line":3536},[2907,7429,5618],{"class":3035},[2907,7431,7328],{"class":3035},[2907,7433,5491],{"class":3042},[2907,7435,3047],{"class":3057},[2907,7437,7354],{"class":3050},[2907,7439,7357],{"class":2917},[2907,7441,5634],{"class":3050},[2907,7443,7362],{"class":3046},[2907,7445,3015],{"class":3050},[2907,7447,7367],{"class":3046},[2907,7449,3015],{"class":3050},[2907,7451,7372],{"class":3046},[2907,7453,5639],{"class":3050},[2907,7455,3094],{"class":3057},[2907,7457,7458,7460],{"class":2909,"line":3542},[2907,7459,3091],{"class":3050},[2907,7461,3094],{"class":3046},[2877,7463,7464],{},"Alternatively, you can disable this feature with:",[2897,7466,7468],{"className":3025,"code":7467,"filename":233,"language":3027,"meta":3028,"style":2903},"export default defineNuxtConfig({\n  experimental: {\n    sharedPrerenderData: false,\n  },\n})\n",[2889,7469,7470,7482,7490,7501,7505],{"__ignoreMap":2903},[2907,7471,7472,7474,7476,7478,7480],{"class":2909,"line":2910},[2907,7473,3036],{"class":3035},[2907,7475,3039],{"class":3035},[2907,7477,3043],{"class":3042},[2907,7479,3047],{"class":3046},[2907,7481,3051],{"class":3050},[2907,7483,7484,7486,7488],{"class":2909,"line":3054},[2907,7485,4332],{"class":3057},[2907,7487,3061],{"class":3050},[2907,7489,3064],{"class":3050},[2907,7491,7492,7495,7497,7499],{"class":2909,"line":3067},[2907,7493,7494],{"class":3057},"    sharedPrerenderData",[2907,7496,3061],{"class":3050},[2907,7498,3435],{"class":3434},[2907,7500,3079],{"class":3050},[2907,7502,7503],{"class":2909,"line":3082},[2907,7504,3085],{"class":3050},[2907,7506,7507,7509],{"class":2909,"line":3088},[2907,7508,3091],{"class":3050},[2907,7510,3094],{"class":3046},[2872,7512,7514,7515,3270,7517,7519,7520,3270,7522],{"id":7513},"default-data-and-error-values-in-useasyncdata-and-usefetch","Default ",[2889,7516,5369],{},[2889,7518,5372],{}," values in ",[2889,7521,515],{},[2889,7523,527],{},[2877,7525,3209,7526,4167],{},[3001,7527,3212],{},[3215,7529,3218],{"id":7530},"what-changed-13",[2877,7532,7533,3270,7535,7537,7538,7540,7541,3015],{},[2889,7534,5369],{},[2889,7536,5372],{}," objects returned from ",[2889,7539,515],{}," will now default to ",[2889,7542,3152],{},[3215,7544,3318],{"id":7545},"reasons-for-change-10",[2877,7547,7548,7549,7551,7552,7555,7556,3100,7558,7560,7561,7551,7563,7565],{},"Previously ",[2889,7550,5369],{}," was initialized to ",[2889,7553,7554],{},"null"," but reset in ",[2889,7557,650],{},[2889,7559,3152],{},". ",[2889,7562,5372],{},[2889,7564,7554],{},". This change is to bring greater consistency.",[3215,7567,3339],{"id":7568},"migration-steps-14",[2877,7570,7571,7572,3291,7575,7578,7579,7581,7582,7584],{},"If you were checking if ",[2889,7573,7574],{},"data.value",[2889,7576,7577],{},"error.value"," were ",[2889,7580,7554],{},", you can update these checks to check for ",[2889,7583,3152],{}," instead.",[3236,7586,7587],{},[2877,7588,7589,7590],{},"You can automate this step by running ",[2889,7591,7592],{},"npx codemod@latest nuxt\u002F4\u002Fdefault-data-error-value",[2872,7594,7596,7597,7600,7601,7604,7605,7608,7609,3270,7611],{"id":7595},"removal-of-deprecated-boolean-values-for-dedupe-option-when-calling-refresh-in-useasyncdata-and-usefetch","Removal of deprecated ",[2889,7598,7599],{},"boolean"," values for ",[2889,7602,7603],{},"dedupe"," option when calling ",[2889,7606,7607],{},"refresh"," in ",[2889,7610,515],{},[2889,7612,527],{},[2877,7614,3209,7615,4167],{},[3001,7616,3212],{},[3215,7618,3218],{"id":7619},"what-changed-14",[2877,7621,7622,7623,3100,7626,7628,7629,3473,7632,7635,7636,3473,7639,6214],{},"Previously it was possible to pass ",[2889,7624,7625],{},"dedupe: boolean",[2889,7627,7607],{},". These were aliases of ",[2889,7630,7631],{},"cancel",[2889,7633,7634],{},"true",") and ",[2889,7637,7638],{},"defer",[2889,7640,7641],{},"false",[2897,7643,7647],{"className":7644,"code":7645,"filename":7646,"language":3027,"meta":3028,"style":2903},"language-ts shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight twoslash lsp","\u002F\u002F @errors: 2322\nconst { refresh } = await useAsyncData(() => Promise.resolve({ message: 'Hello, Nuxt!' }))\n\nasync function refreshData () {\n  await refresh({ dedupe: true })\n}\n","app\u002Fapp.vue",[2889,7648,7649,8169,8173,8215,8279,8283],{"__ignoreMap":2903},[2907,7650,7651,7653,7655,7658,7714,7716,7718,7720,7722,7724,7967,7969,7971,7973,7975,8003,8005,8128,8130,8132,8134,8156,8158,8160,8163,8165,8167],{"class":2909,"line":2910},[2907,7652,5454],{"class":3383},[2907,7654,3426],{"class":3050},[2907,7656,7657],{"class":3046}," ",[2907,7659,7660],{"class":3046},[7661,7662,7665,7667],"v-menu",{"class":7663,"popper-class":7664,"theme":3028},"twoslash-hover","shiki twoslash-floating vp-copy-ignore",[2907,7666,7607],{},[7668,7669,7671],"template",{"v-slot:popper":7670},"{}",[2907,7672,7674],{"class":7673,"v-pre":2903},"twoslash-popup-container vp-copy-ignore",[2889,7675,7677,7680,7684,7687,7689,7693,7696,7700,7702,7704,7707,7709,7711],{"class":7676},"twoslash-popup-code",[2907,7678,5454],{"style":7679},"--shiki-light:#9C3EDA;--shiki-default:#9C3EDA;--shiki-dark:#C792EA",[2907,7681,7683],{"style":7682},"--shiki-light:#90A4AE;--shiki-default:#90A4AE;--shiki-dark:#BABED8"," refresh",[2907,7685,3061],{"style":7686},"--shiki-light:#39ADB5;--shiki-default:#39ADB5;--shiki-dark:#89DDFF",[2907,7688,3473],{"style":7686},[2907,7690,7692],{"style":7691},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic","opts",[2907,7694,7695],{"style":7686},"?:",[2907,7697,7699],{"style":7698},"--shiki-light:#E2931D;--shiki-default:#E2931D;--shiki-dark:#FFCB6B"," AsyncDataExecuteOptions",[2907,7701,3380],{"style":7686},[2907,7703,3384],{"style":7679},[2907,7705,7706],{"style":7698}," Promise",[2907,7708,6756],{"style":7686},[2907,7710,3169],{"style":7698},[2907,7712,7713],{"style":7686},">",[2907,7715,7657],{"class":3046},[2907,7717,3091],{"class":3050},[2907,7719,5469],{"class":3050},[2907,7721,7328],{"class":3035},[2907,7723,7657],{"class":3042},[2907,7725,7726],{"class":3042},[7661,7727,7728,7730],{"class":7663,"popper-class":7664,"theme":3028},[2907,7729,515],{},[7668,7731,7732],{"v-slot:popper":7670},[2907,7733,7734],{"class":7673,"v-pre":2903},[2889,7735,7736],{"class":7676},[2897,7737,7741],{"class":7738,"style":7739,"tabindex":7740},"shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","--shiki-light:#90A4AE;--shiki-default:#90A4AE;--shiki-dark:#babed8;--shiki-light-bg:#FAFAFA;--shiki-default-bg:#FAFAFA;--shiki-dark-bg:#292D3E","0",[2889,7742,7743,7754,7767,7778,7788,7798,7808,7829,7839,7853,7863,7869,7879,7887,7897,7919,7929],{},[2907,7744,7745,7747,7749,7751],{"class":2909},[2907,7746,5454],{"style":7679},[2907,7748,5472],{"style":7682},[2907,7750,3061],{"style":7686},[2907,7752,7753],{"style":7686}," \u003C{",[2907,7755,7756,7760,7762,7764],{"class":2909},[2907,7757,7759],{"style":7758},"--shiki-light:#E53935;--shiki-default:#E53935;--shiki-dark:#F07178","    message",[2907,7761,3061],{"style":7686},[2907,7763,5609],{"style":7698},[2907,7765,7766],{"style":7686},";",[2907,7768,7769,7771,7774,7776],{"class":2909},[2907,7770,3423],{"style":7686},[2907,7772,7773],{"style":7698}," unknown",[2907,7775,3470],{"style":7686},[2907,7777,3426],{"style":7686},[2907,7779,7780,7782,7784,7786],{"class":2909},[2907,7781,7759],{"style":7758},[2907,7783,3061],{"style":7686},[2907,7785,5609],{"style":7698},[2907,7787,7766],{"style":7686},[2907,7789,7790,7792,7795],{"class":2909},[2907,7791,3423],{"style":7686},[2907,7793,7794],{"style":7698}," KeysOf",[2907,7796,7797],{"style":7686},"\u003C{",[2907,7799,7800,7802,7804,7806],{"class":2909},[2907,7801,7759],{"style":7758},[2907,7803,3061],{"style":7686},[2907,7805,5609],{"style":7698},[2907,7807,7766],{"style":7686},[2907,7809,7810,7813,7816,7819,7822,7824,7827],{"class":2909},[2907,7811,7812],{"style":7686},"}>,",[2907,7814,7815],{"style":7698}," undefined",[2907,7817,7818],{"style":7686},">(",[2907,7820,7821],{"style":7691},"handler",[2907,7823,3061],{"style":7686},[2907,7825,7826],{"style":7698}," AsyncDataHandler",[2907,7828,7797],{"style":7686},[2907,7830,7831,7833,7835,7837],{"class":2909},[2907,7832,7759],{"style":7758},[2907,7834,3061],{"style":7686},[2907,7836,5609],{"style":7698},[2907,7838,7766],{"style":7686},[2907,7840,7841,7843,7846,7848,7851],{"class":2909},[2907,7842,7812],{"style":7686},[2907,7844,7845],{"style":7691}," opts",[2907,7847,7695],{"style":7686},[2907,7849,7850],{"style":7698}," AsyncDataOptions",[2907,7852,7797],{"style":7686},[2907,7854,7855,7857,7859,7861],{"class":2909},[2907,7856,7759],{"style":7758},[2907,7858,3061],{"style":7686},[2907,7860,5609],{"style":7698},[2907,7862,7766],{"style":7686},[2907,7864,7865,7867],{"class":2909},[2907,7866,3423],{"style":7686},[2907,7868,3426],{"style":7686},[2907,7870,7871,7873,7875,7877],{"class":2909},[2907,7872,7759],{"style":7758},[2907,7874,3061],{"style":7686},[2907,7876,5609],{"style":7698},[2907,7878,7766],{"style":7686},[2907,7880,7881,7883,7885],{"class":2909},[2907,7882,3423],{"style":7686},[2907,7884,7794],{"style":7698},[2907,7886,7797],{"style":7686},[2907,7888,7889,7891,7893,7895],{"class":2909},[2907,7890,7759],{"style":7758},[2907,7892,3061],{"style":7686},[2907,7894,5609],{"style":7698},[2907,7896,7766],{"style":7686},[2907,7898,7899,7901,7903,7905,7908,7910,7912,7914,7917],{"class":2909},[2907,7900,7812],{"style":7686},[2907,7902,7815],{"style":7698},[2907,7904,7713],{"style":7686},[2907,7906,7907],{"style":7686}," |",[2907,7909,7815],{"style":7698},[2907,7911,3380],{"style":7686},[2907,7913,3384],{"style":7679},[2907,7915,7916],{"style":7698}," AsyncData",[2907,7918,7797],{"style":7686},[2907,7920,7921,7923,7925,7927],{"class":2909},[2907,7922,7759],{"style":7758},[2907,7924,3061],{"style":7686},[2907,7926,5609],{"style":7698},[2907,7928,7766],{"style":7686},[2907,7930,7931,7933,7935,7937,7939,7942,7944,7947,7949,7951,7953,7955,7958,7962,7965],{"class":2909},[2907,7932,3091],{"style":7686},[2907,7934,7907],{"style":7686},[2907,7936,7815],{"style":7698},[2907,7938,3470],{"style":7686},[2907,7940,7941],{"style":7698}," NuxtError",[2907,7943,6756],{"style":7686},[2907,7945,7946],{"style":7698},"unknown",[2907,7948,7713],{"style":7686},[2907,7950,7907],{"style":7686},[2907,7952,7815],{"style":7698},[2907,7954,7713],{"style":7686},[2907,7956,7957],{"style":7682}," (+",[2907,7959,7961],{"style":7960},"--shiki-light:#F76D47;--shiki-default:#F76D47;--shiki-dark:#F78C6C","3",[2907,7963,7964],{"style":7698}," overloads",[2907,7966,3380],{"style":7682},[2907,7968,3047],{"class":3046},[2907,7970,3568],{"class":3050},[2907,7972,3384],{"class":3383},[2907,7974,7657],{"class":2913},[2907,7976,7977],{"class":2913},[7661,7978,7979,7981],{"class":7663,"popper-class":7664,"theme":3028},[2907,7980,3173],{},[7668,7982,7983],{"v-slot:popper":7670},[2907,7984,7985,7997],{"class":7673,"v-pre":2903},[2889,7986,7987,7990,7992,7994],{"class":7676},[2907,7988,7989],{"style":7679},"var",[2907,7991,7706],{"style":7682},[2907,7993,3061],{"style":7686},[2907,7995,7996],{"style":7698}," PromiseConstructor",[6759,7998,8000],{"class":7999},"twoslash-popup-docs prose prose-primary dark:prose-invert",[2877,8001,8002],{},"Represents the completion of an asynchronous operation",[2907,8004,3015],{"class":3050},[2907,8006,8007],{"class":3042},[7661,8008,8009,8012],{"class":7663,"popper-class":7664,"theme":3028},[2907,8010,8011],{},"resolve",[7668,8013,8014],{"v-slot:popper":7670},[2907,8015,8016,8099,8104],{"class":7673,"v-pre":2903},[2889,8017,8018],{"class":7676},[2897,8019,8020],{"class":7738,"style":7739,"tabindex":7740},[2889,8021,8022,8034,8044,8056,8066,8075,8085],{},[2907,8023,8024,8027,8029,8032],{"class":2909},[2907,8025,8026],{"style":7682},"(method) PromiseConstructor",[2907,8028,3015],{"style":7686},[2907,8030,8011],{"style":8031},"--shiki-light:#6182B8;--shiki-default:#6182B8;--shiki-dark:#82AAFF",[2907,8033,7797],{"style":7686},[2907,8035,8036,8038,8040,8042],{"class":2909},[2907,8037,7759],{"style":7758},[2907,8039,3061],{"style":7686},[2907,8041,5609],{"style":7698},[2907,8043,7766],{"style":7686},[2907,8045,8046,8049,8052,8054],{"class":2909},[2907,8047,8048],{"style":7686},"}>(",[2907,8050,8051],{"style":7691},"value",[2907,8053,3061],{"style":7686},[2907,8055,3426],{"style":7686},[2907,8057,8058,8060,8062,8064],{"class":2909},[2907,8059,7759],{"style":7758},[2907,8061,3061],{"style":7686},[2907,8063,5609],{"style":7698},[2907,8065,7766],{"style":7686},[2907,8067,8068,8071,8073],{"class":2909},[2907,8069,8070],{"style":7686},"}):",[2907,8072,7706],{"style":7698},[2907,8074,7797],{"style":7686},[2907,8076,8077,8079,8081,8083],{"class":2909},[2907,8078,7759],{"style":7758},[2907,8080,3061],{"style":7686},[2907,8082,5609],{"style":7698},[2907,8084,7766],{"style":7686},[2907,8086,8087,8090,8092,8095,8097],{"class":2909},[2907,8088,8089],{"style":7686},"}>",[2907,8091,7957],{"style":7682},[2907,8093,8094],{"style":7960},"2",[2907,8096,7964],{"style":7698},[2907,8098,3380],{"style":7682},[6759,8100,8101],{"class":7999},[2877,8102,8103],{},"Creates a new resolved promise for the provided value.",[6759,8105,8107,8120],{"class":8106},"twoslash-popup-docs twoslash-popup-docs-tags prose prose-primary dark:prose-invert",[2907,8108,8110,8114],{"class":8109},"twoslash-popup-docs-tag",[2907,8111,8113],{"class":8112},"twoslash-popup-docs-tag-name","@param",[2907,8115,8117,8119],{"class":8116},"twoslash-popup-docs-tag-value",[2889,8118,8051],{},"  A promise.",[2907,8121,8122,8125],{"class":8109},[2907,8123,8124],{"class":8112},"@returns",[2907,8126,8127],{"class":8116},"A promise whose internal state matches the provided promise.",[2907,8129,3047],{"class":3046},[2907,8131,5692],{"class":3050},[2907,8133,7657],{"class":3057},[2907,8135,8136],{"class":3057},[7661,8137,8138,8141],{"class":7663,"popper-class":7664,"theme":3028},[2907,8139,8140],{},"message",[7668,8142,8143],{"v-slot:popper":7670},[2907,8144,8145],{"class":7673,"v-pre":2903},[2889,8146,8147,8150,8152,8154],{"class":7676},[2907,8148,8149],{"style":7682},"(property) ",[2907,8151,8140],{"style":7698},[2907,8153,3061],{"style":7686},[2907,8155,5609],{"style":7682},[2907,8157,3061],{"class":3050},[2907,8159,3585],{"class":3050},[2907,8161,8162],{"class":2917},"Hello, Nuxt!",[2907,8164,3411],{"class":3050},[2907,8166,3438],{"class":3050},[2907,8168,3812],{"class":3046},[2907,8170,8171],{"class":2909,"line":3054},[2907,8172,3445],{"emptyLinePlaceholder":1196},[2907,8174,8175,8177,8179,8181,8211,8213],{"class":2909,"line":3067},[2907,8176,7335],{"class":3383},[2907,8178,5596],{"class":3383},[2907,8180,7657],{"class":3042},[2907,8182,8183],{"class":3042},[7661,8184,8185,8188],{"class":7663,"popper-class":7664,"theme":3028},[2907,8186,8187],{},"refreshData",[7668,8189,8190],{"v-slot:popper":7670},[2907,8191,8192],{"class":7673,"v-pre":2903},[2889,8193,8194,8197,8200,8203,8205,8207,8209],{"class":7676},[2907,8195,8196],{"style":7679},"function",[2907,8198,8199],{"style":8031}," refreshData",[2907,8201,8202],{"style":7686},"():",[2907,8204,7706],{"style":7698},[2907,8206,6756],{"style":7686},[2907,8208,3169],{"style":7698},[2907,8210,7713],{"style":7686},[2907,8212,5486],{"class":3050},[2907,8214,3064],{"class":3050},[2907,8216,8217,8220,8222,8260,8262,8264,8266,8271,8273,8275,8277],{"class":2909,"line":3082},[2907,8218,8219],{"class":3035},"  await",[2907,8221,7657],{"class":3042},[2907,8223,8224],{"class":3042},[7661,8225,8226,8228],{"class":7663,"popper-class":7664,"theme":3028},[2907,8227,7607],{},[7668,8229,8230],{"v-slot:popper":7670},[2907,8231,8232],{"class":7673,"v-pre":2903},[2889,8233,8234,8236,8238,8240,8242,8244,8246,8248,8250,8252,8254,8256,8258],{"class":7676},[2907,8235,5454],{"style":7679},[2907,8237,7683],{"style":7682},[2907,8239,3061],{"style":7686},[2907,8241,3473],{"style":7686},[2907,8243,7692],{"style":7691},[2907,8245,7695],{"style":7686},[2907,8247,7699],{"style":7698},[2907,8249,3380],{"style":7686},[2907,8251,3384],{"style":7679},[2907,8253,7706],{"style":7698},[2907,8255,6756],{"style":7686},[2907,8257,3169],{"style":7698},[2907,8259,7713],{"style":7686},[2907,8261,3047],{"class":3057},[2907,8263,5692],{"class":3050},[2907,8265,7657],{"class":3057},[2907,8267,8269],{"class":8268},"twoslash-error",[2907,8270,7603],{"class":3057},[2907,8272,3061],{"class":3050},[2907,8274,4346],{"class":3434},[2907,8276,3438],{"class":3050},[2907,8278,3094],{"class":3057},[6759,8280,8282],{"class":8281},"twoslash-meta-line twoslash-error-line vp-copy-ignore","Type 'true' is not assignable to type '\"cancel\" | \"defer\" | undefined'.",[2907,8284,8285],{"class":2909,"line":3088},[2907,8286,5735],{"class":3050},[3215,8288,3318],{"id":8289},"reasons-for-change-11",[2877,8291,8292],{},"These aliases were removed, for greater clarity.",[2877,8294,8295,8296,8298,8299,8301,8302,3015],{},"The issue came up when adding ",[2889,8297,7603],{}," as an option to ",[2889,8300,515],{},", and we removed the boolean values as they ended up being ",[5109,8303,8304],{},"opposites",[2877,8306,8307,8310,8311,8317,8318,8321,8322,8324,8325,8328,8329,8334],{},[2889,8308,8309],{},"refresh({ dedupe: false })"," meant ",[3001,8312,8313,8314,8316],{},"do not ",[5109,8315,7631],{}," existing requests in favour of this new one",". But passing ",[2889,8319,8320],{},"dedupe: true"," within the options of ",[2889,8323,515],{}," means ",[3001,8326,8327],{},"do not make any new requests if there is an existing pending request."," (See ",[2881,8330,8333],{"href":8331,"rel":8332},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fpull\u002F24564#pullrequestreview-1764584361",[2885],"PR",".)",[3215,8336,3339],{"id":8337},"migration-steps-15",[2877,8339,6233],{},[2897,8341,8343],{"className":4251,"code":8342,"language":4253,"meta":2903,"style":2903},"  const { refresh } = await useAsyncData(async () => ({ message: 'Hello, Nuxt 3!' }))\n  \n  async function refreshData () {\n-   await refresh({ dedupe: true })\n+   await refresh({ dedupe: 'cancel' })\n\n-   await refresh({ dedupe: false })\n+   await refresh({ dedupe: 'defer' })\n  }\n",[2889,8344,8345,8350,8354,8359,8366,8373,8377,8384,8391],{"__ignoreMap":2903},[2907,8346,8347],{"class":2909,"line":2910},[2907,8348,8349],{"class":3046},"  const { refresh } = await useAsyncData(async () => ({ message: 'Hello, Nuxt 3!' }))\n",[2907,8351,8352],{"class":2909,"line":3054},[2907,8353,6248],{"class":3046},[2907,8355,8356],{"class":2909,"line":3067},[2907,8357,8358],{"class":3046},"  async function refreshData () {\n",[2907,8360,8361,8363],{"class":2909,"line":3082},[2907,8362,4260],{"class":3050},[2907,8364,8365],{"class":3057},"   await refresh({ dedupe: true })\n",[2907,8367,8368,8370],{"class":2909,"line":3088},[2907,8369,4268],{"class":3050},[2907,8371,8372],{"class":2917},"   await refresh({ dedupe: 'cancel' })\n",[2907,8374,8375],{"class":2909,"line":3448},[2907,8376,3445],{"emptyLinePlaceholder":1196},[2907,8378,8379,8381],{"class":2909,"line":3492},[2907,8380,4260],{"class":3050},[2907,8382,8383],{"class":3057},"   await refresh({ dedupe: false })\n",[2907,8385,8386,8388],{"class":2909,"line":3508},[2907,8387,4268],{"class":3050},[2907,8389,8390],{"class":2917},"   await refresh({ dedupe: 'defer' })\n",[2907,8392,8393],{"class":2909,"line":3536},[2907,8394,3539],{"class":3046},[3236,8396,8397],{},[2877,8398,7589,8399],{},[2889,8400,8401],{},"npx codemod@latest nuxt\u002F4\u002Fdeprecated-dedupe-value",[2872,8403,8405,8406,7608,8408,3270,8410],{"id":8404},"respect-defaults-when-clearing-data-in-useasyncdata-and-usefetch","Respect defaults when clearing ",[2889,8407,5369],{},[2889,8409,515],{},[2889,8411,527],{},[2877,8413,3209,8414,4167],{},[3001,8415,3212],{},[3215,8417,3218],{"id":8418},"what-changed-15",[2877,8420,8421,8422,8424,8425,8427,8428,3291,8431,8433],{},"If you provide a custom ",[2889,8423,5391],{}," value for ",[2889,8426,515],{},", this will now be used when calling ",[2889,8429,8430],{},"clear",[2889,8432,650],{}," and it will be reset to its default value rather than simply unset.",[3215,8435,3318],{"id":8436},"reasons-for-change-12",[2877,8438,8439,8440,8442,8443,8445],{},"Often users set an appropriately empty value, such as an empty array, to avoid the need to check for ",[2889,8441,7554],{},"\u002F",[2889,8444,3152],{}," when iterating over it. This should be respected when resetting\u002Fclearing the data.",[2872,8447,8405,8449],{"id":8448},"respect-defaults-when-clearing-usestate",[2889,8450,619],{},[2877,8452,3209,8453,4167],{},[3001,8454,3212],{},[3215,8456,3218],{"id":8457},"what-changed-16",[2877,8459,4372,8460,3351,8462,8464,8465,8468,8469,8471,8472,8474,8475,8477,8478,8480],{},[2889,8461,4214],{},[2889,8463,654],{}," will reset state to its initial value (provided by the ",[2889,8466,8467],{},"init"," function of ",[2889,8470,619],{},") instead of setting it to ",[2889,8473,3152],{},". This aligns ",[2889,8476,654],{}," behavior with ",[2889,8479,650],{},", which already resets to defaults.",[3215,8482,3318],{"id":8483},"reasons-for-change-13",[2877,8485,8486,8487,8489,8490,8492,8493,8495,8496,8498],{},"When ",[2889,8488,654],{}," sets state to ",[2889,8491,3152],{},", composables that depend on that state can crash because they expect the state to always have a valid shape (e.g., accessing properties on ",[2889,8494,3152],{},"). Resetting to the ",[2889,8497,8467],{}," value ensures state always has a usable default.",[3215,8500,3339],{"id":8501},"migration-steps-16",[2877,8503,8504,8505,8507,8508,8510,8511,3061],{},"If you rely on ",[2889,8506,654],{}," setting state to ",[2889,8509,3152],{},", you can explicitly pass ",[2889,8512,8513],{},"{ reset: false }",[2897,8515,8517],{"className":4251,"code":8516,"language":4253,"meta":2903,"style":2903},"- clearNuxtState('myKey')\n+ clearNuxtState('myKey', { reset: false })\n",[2889,8518,8519,8526],{"__ignoreMap":2903},[2907,8520,8521,8523],{"class":2909,"line":2910},[2907,8522,4260],{"class":3050},[2907,8524,8525],{"class":3057}," clearNuxtState('myKey')\n",[2907,8527,8528,8530],{"class":2909,"line":3054},[2907,8529,4268],{"class":3050},[2907,8531,8532],{"class":2917}," clearNuxtState('myKey', { reset: false })\n",[2877,8534,8535],{},"Alternatively, you can revert to the previous behavior with:",[2897,8537,8539],{"className":3025,"code":8538,"filename":233,"language":3027,"meta":3028,"style":2903},"export default defineNuxtConfig({\n  experimental: {\n    defaults: {\n      useState: {\n        resetOnClear: false,\n      },\n    },\n  },\n})\n",[2889,8540,8541,8553,8561,8570,8579,8590,8595,8599,8603],{"__ignoreMap":2903},[2907,8542,8543,8545,8547,8549,8551],{"class":2909,"line":2910},[2907,8544,3036],{"class":3035},[2907,8546,3039],{"class":3035},[2907,8548,3043],{"class":3042},[2907,8550,3047],{"class":3046},[2907,8552,3051],{"class":3050},[2907,8554,8555,8557,8559],{"class":2909,"line":3054},[2907,8556,4332],{"class":3057},[2907,8558,3061],{"class":3050},[2907,8560,3064],{"class":3050},[2907,8562,8563,8566,8568],{"class":2909,"line":3067},[2907,8564,8565],{"class":3057},"    defaults",[2907,8567,3061],{"class":3050},[2907,8569,3064],{"class":3050},[2907,8571,8572,8575,8577],{"class":2909,"line":3082},[2907,8573,8574],{"class":3057},"      useState",[2907,8576,3061],{"class":3050},[2907,8578,3064],{"class":3050},[2907,8580,8581,8584,8586,8588],{"class":2909,"line":3088},[2907,8582,8583],{"class":3057},"        resetOnClear",[2907,8585,3061],{"class":3050},[2907,8587,3435],{"class":3434},[2907,8589,3079],{"class":3050},[2907,8591,8592],{"class":2909,"line":3448},[2907,8593,8594],{"class":3050},"      },\n",[2907,8596,8597],{"class":2909,"line":3492},[2907,8598,5725],{"class":3050},[2907,8600,8601],{"class":2909,"line":3508},[2907,8602,3085],{"class":3050},[2907,8604,8605,8607],{"class":2909,"line":3536},[2907,8606,3091],{"class":3050},[2907,8608,3094],{"class":3046},[2877,8610,8611,8612,3061],{},"You can also opt in to this behavior today without setting ",[2889,8613,4214],{},[2897,8615,8617],{"className":3025,"code":8616,"filename":233,"language":3027,"meta":3028,"style":2903},"export default defineNuxtConfig({\n  experimental: {\n    defaults: {\n      useState: {\n        resetOnClear: true,\n      },\n    },\n  },\n})\n",[2889,8618,8619,8631,8639,8647,8655,8665,8669,8673,8677],{"__ignoreMap":2903},[2907,8620,8621,8623,8625,8627,8629],{"class":2909,"line":2910},[2907,8622,3036],{"class":3035},[2907,8624,3039],{"class":3035},[2907,8626,3043],{"class":3042},[2907,8628,3047],{"class":3046},[2907,8630,3051],{"class":3050},[2907,8632,8633,8635,8637],{"class":2909,"line":3054},[2907,8634,4332],{"class":3057},[2907,8636,3061],{"class":3050},[2907,8638,3064],{"class":3050},[2907,8640,8641,8643,8645],{"class":2909,"line":3067},[2907,8642,8565],{"class":3057},[2907,8644,3061],{"class":3050},[2907,8646,3064],{"class":3050},[2907,8648,8649,8651,8653],{"class":2909,"line":3082},[2907,8650,8574],{"class":3057},[2907,8652,3061],{"class":3050},[2907,8654,3064],{"class":3050},[2907,8656,8657,8659,8661,8663],{"class":2909,"line":3088},[2907,8658,8583],{"class":3057},[2907,8660,3061],{"class":3050},[2907,8662,4346],{"class":3434},[2907,8664,3079],{"class":3050},[2907,8666,8667],{"class":2909,"line":3448},[2907,8668,8594],{"class":3050},[2907,8670,8671],{"class":2909,"line":3492},[2907,8672,5725],{"class":3050},[2907,8674,8675],{"class":2909,"line":3508},[2907,8676,3085],{"class":3050},[2907,8678,8679,8681],{"class":2909,"line":3536},[2907,8680,3091],{"class":3050},[2907,8682,3094],{"class":3046},[2872,8684,8686,8687,8690,8691,3270,8693],{"id":8685},"alignment-of-pending-value-in-useasyncdata-and-usefetch","Alignment of ",[2889,8688,8689],{},"pending"," value in ",[2889,8692,515],{},[2889,8694,527],{},[2877,8696,3209,8697,3213],{},[3001,8698,3212],{},[2877,8700,8701,8702,8704,8705,3351,8707,3351,8709,3270,8711,8713,8714,8716,8717,8719],{},"The ",[2889,8703,8689],{}," object returned from ",[2889,8706,515],{},[2889,8708,527],{},[2889,8710,543],{},[2889,8712,547],{}," is now a computed property that is ",[2889,8715,7634],{}," only when ",[2889,8718,5375],{}," is also pending.",[3215,8721,3218],{"id":8722},"what-changed-17",[2877,8724,8725,8726,8729,8730,8732,8733,8735,8736,8738,8739,8741],{},"Now, when ",[2889,8727,8728],{},"immediate: false"," is passed, ",[2889,8731,8689],{}," will be ",[2889,8734,7641],{}," until the first request is made. This is a change from the previous behavior, where ",[2889,8737,8689],{}," was always ",[2889,8740,7634],{}," until the first request was made.",[3215,8743,3318],{"id":8744},"reasons-for-change-14",[2877,8746,8747,8748,8750,8751,8753,8754,8756],{},"This aligns the meaning of ",[2889,8749,8689],{}," with the ",[2889,8752,5375],{}," property, which is also ",[2889,8755,8689],{}," when the request is in progress.",[3215,8758,3339],{"id":8759},"migration-steps-17",[2877,8761,8762,8763,8765,8766,8768,8769,8771],{},"If you rely on the ",[2889,8764,8689],{}," property, ensure that your logic accounts for the new behavior where ",[2889,8767,8689],{}," will only be ",[2889,8770,7634],{}," when the status is also pending.",[2897,8773,8775],{"className":4251,"code":8774,"language":4253,"meta":2903,"style":2903},"  \u003Ctemplate>\n-   \u003Cdiv v-if=\"!pending\">\n+   \u003Cdiv v-if=\"status === 'success'\">\n      \u003Cp>Data: {{ data }}\u003C\u002Fp>\n    \u003C\u002Fdiv>\n    \u003Cdiv v-else>\n      \u003Cp>Loading...\u003C\u002Fp>\n    \u003C\u002Fdiv>\n  \u003C\u002Ftemplate>\n  \u003Cscript setup lang=\"ts\">\n  const { data, pending, execute, status } = await useAsyncData(() => fetch('\u002Fapi\u002Fdata'), {\n    immediate: false\n  })\n  onMounted(() => execute())\n  \u003C\u002Fscript>\n",[2889,8776,8777,8782,8789,8796,8801,8806,8811,8816,8820,8825,8829,8834,8839,8843,8848],{"__ignoreMap":2903},[2907,8778,8779],{"class":2909,"line":2910},[2907,8780,8781],{"class":3046},"  \u003Ctemplate>\n",[2907,8783,8784,8786],{"class":2909,"line":3054},[2907,8785,4260],{"class":3050},[2907,8787,8788],{"class":3057},"   \u003Cdiv v-if=\"!pending\">\n",[2907,8790,8791,8793],{"class":2909,"line":3067},[2907,8792,4268],{"class":3050},[2907,8794,8795],{"class":2917},"   \u003Cdiv v-if=\"status === 'success'\">\n",[2907,8797,8798],{"class":2909,"line":3082},[2907,8799,8800],{"class":3046},"      \u003Cp>Data: {{ data }}\u003C\u002Fp>\n",[2907,8802,8803],{"class":2909,"line":3088},[2907,8804,8805],{"class":3046},"    \u003C\u002Fdiv>\n",[2907,8807,8808],{"class":2909,"line":3448},[2907,8809,8810],{"class":3046},"    \u003Cdiv v-else>\n",[2907,8812,8813],{"class":2909,"line":3492},[2907,8814,8815],{"class":3046},"      \u003Cp>Loading...\u003C\u002Fp>\n",[2907,8817,8818],{"class":2909,"line":3508},[2907,8819,8805],{"class":3046},[2907,8821,8822],{"class":2909,"line":3536},[2907,8823,8824],{"class":3046},"  \u003C\u002Ftemplate>\n",[2907,8826,8827],{"class":2909,"line":3542},[2907,8828,6944],{"class":3046},[2907,8830,8831],{"class":2909,"line":3549},[2907,8832,8833],{"class":3046},"  const { data, pending, execute, status } = await useAsyncData(() => fetch('\u002Fapi\u002Fdata'), {\n",[2907,8835,8836],{"class":2909,"line":3554},[2907,8837,8838],{"class":3046},"    immediate: false\n",[2907,8840,8841],{"class":2909,"line":3560},[2907,8842,6968],{"class":3046},[2907,8844,8845],{"class":2909,"line":3577},[2907,8846,8847],{"class":3046},"  onMounted(() => execute())\n",[2907,8849,8850],{"class":2909,"line":3595},[2907,8851,6991],{"class":3046},[2877,8853,8854],{},"Alternatively, you can temporarily revert to the previous behavior with:",[2897,8856,8858],{"className":3025,"code":8857,"filename":233,"language":3027,"meta":3028,"style":2903},"export default defineNuxtConfig({\n  experimental: {\n    pendingWhenIdle: true,\n  },\n})\n",[2889,8859,8860,8872,8880,8891,8895],{"__ignoreMap":2903},[2907,8861,8862,8864,8866,8868,8870],{"class":2909,"line":2910},[2907,8863,3036],{"class":3035},[2907,8865,3039],{"class":3035},[2907,8867,3043],{"class":3042},[2907,8869,3047],{"class":3046},[2907,8871,3051],{"class":3050},[2907,8873,8874,8876,8878],{"class":2909,"line":3054},[2907,8875,4332],{"class":3057},[2907,8877,3061],{"class":3050},[2907,8879,3064],{"class":3050},[2907,8881,8882,8885,8887,8889],{"class":2909,"line":3067},[2907,8883,8884],{"class":3057},"    pendingWhenIdle",[2907,8886,3061],{"class":3050},[2907,8888,4346],{"class":3434},[2907,8890,3079],{"class":3050},[2907,8892,8893],{"class":2909,"line":3082},[2907,8894,3085],{"class":3050},[2907,8896,8897,8899],{"class":2909,"line":3088},[2907,8898,3091],{"class":3050},[2907,8900,3094],{"class":3046},[2872,8902,8904,8905,3270,8907],{"id":8903},"key-change-behavior-in-useasyncdata-and-usefetch","Key Change Behavior in ",[2889,8906,515],{},[2889,8908,527],{},[2877,8910,3209,8911,3213],{},[3001,8912,3212],{},[3215,8914,3218],{"id":8915},"what-changed-18",[2877,8917,8918,8919,3291,8921,8923,8924,8926,8927,8929],{},"When using reactive keys in ",[2889,8920,515],{},[2889,8922,527],{},", Nuxt automatically refetches data when the key changes. When ",[2889,8925,8728],{}," is set, ",[2889,8928,515],{}," will only fetch data when the key changes if the data has already been fetched once.",[2877,8931,8932,8933,8935],{},"Previously, ",[2889,8934,527],{}," had slightly different behavior. It would always fetch data when the key changed.",[2877,8937,8938,8939,3270,8941,8943],{},"Now, ",[2889,8940,527],{},[2889,8942,515],{}," behave consistently - by only fetch data when the key changes if the data has already been fetched once.",[3215,8945,3318],{"id":8946},"reasons-for-change-15",[2877,8948,8949,8950,3270,8952,8954,8955,8957,8958,3291,8960,8963,8964,3291,8966,3015],{},"This ensures consistent behavior between ",[2889,8951,515],{},[2889,8953,527],{},", and prevents unexpected fetches. If you have set ",[2889,8956,8728],{},", then you must call ",[2889,8959,7607],{},[2889,8961,8962],{},"execute"," or data will never be fetched in ",[2889,8965,527],{},[2889,8967,515],{},[3215,8969,3339],{"id":8970},"migration-steps-18",[2877,8972,8973,8974,8976],{},"This change should generally improve the expected behavior, but if you were expecting changing the key or options of a non-immediate ",[2889,8975,527],{},", you now will need to trigger it manually the first time.",[2897,8978,8980],{"className":4251,"code":8979,"language":4253,"meta":2903,"style":2903},"  const id = ref('123')\n  const { data, execute } = await useFetch('\u002Fapi\u002Ftest', {\n    query: { id },\n    immediate: false\n  )\n+ watch(id, () => execute(), { once: true })\n",[2889,8981,8982,8987,8992,8997,9001,9005],{"__ignoreMap":2903},[2907,8983,8984],{"class":2909,"line":2910},[2907,8985,8986],{"class":3046},"  const id = ref('123')\n",[2907,8988,8989],{"class":2909,"line":3054},[2907,8990,8991],{"class":3046},"  const { data, execute } = await useFetch('\u002Fapi\u002Ftest', {\n",[2907,8993,8994],{"class":2909,"line":3067},[2907,8995,8996],{"class":3046},"    query: { id },\n",[2907,8998,8999],{"class":2909,"line":3082},[2907,9000,8838],{"class":3046},[2907,9002,9003],{"class":2909,"line":3088},[2907,9004,5730],{"class":3046},[2907,9006,9007,9009],{"class":2909,"line":3448},[2907,9008,4268],{"class":3050},[2907,9010,9011],{"class":2917}," watch(id, () => execute(), { once: true })\n",[2877,9013,9014],{},"To opt out of this behavior:",[2897,9016,9018],{"className":3025,"code":9017,"language":3027,"meta":2903,"style":2903},"\u002F\u002F Or globally in your Nuxt config\nexport default defineNuxtConfig({\n  experimental: {\n    alwaysRunFetchOnKeyChange: true,\n  },\n})\n",[2889,9019,9020,9025,9037,9045,9056,9060],{"__ignoreMap":2903},[2907,9021,9022],{"class":2909,"line":2910},[2907,9023,9024],{"class":3365},"\u002F\u002F Or globally in your Nuxt config\n",[2907,9026,9027,9029,9031,9033,9035],{"class":2909,"line":3054},[2907,9028,3036],{"class":3035},[2907,9030,3039],{"class":3035},[2907,9032,3043],{"class":3042},[2907,9034,3047],{"class":3046},[2907,9036,3051],{"class":3050},[2907,9038,9039,9041,9043],{"class":2909,"line":3067},[2907,9040,4332],{"class":3057},[2907,9042,3061],{"class":3050},[2907,9044,3064],{"class":3050},[2907,9046,9047,9050,9052,9054],{"class":2909,"line":3082},[2907,9048,9049],{"class":3057},"    alwaysRunFetchOnKeyChange",[2907,9051,3061],{"class":3050},[2907,9053,4346],{"class":3434},[2907,9055,3079],{"class":3050},[2907,9057,9058],{"class":2909,"line":3088},[2907,9059,3085],{"class":3050},[2907,9061,9062,9064],{"class":2909,"line":3448},[2907,9063,3091],{"class":3050},[2907,9065,3094],{"class":3046},[2872,9067,9069,9070,3270,9072],{"id":9068},"shallow-data-reactivity-in-useasyncdata-and-usefetch","Shallow Data Reactivity in ",[2889,9071,515],{},[2889,9073,527],{},[2877,9075,3209,9076,4167],{},[3001,9077,3212],{},[2877,9079,8701,9080,8704,9082,3351,9084,3351,9086,3270,9088,9090,9091,9094,9095,3015],{},[2889,9081,5369],{},[2889,9083,515],{},[2889,9085,527],{},[2889,9087,543],{},[2889,9089,547],{}," is now a ",[2889,9092,9093],{},"shallowRef"," rather than a ",[2889,9096,9097],{},"ref",[3215,9099,3218],{"id":9100},"what-changed-19",[2877,9102,9103,9104,9106,9107,9109],{},"When new data is fetched, anything depending on ",[2889,9105,5369],{}," will still be reactive because the entire object is replaced. But if your code changes a property ",[5109,9108,6889],{}," that data structure, this will not trigger any reactivity in your app.",[3215,9111,3318],{"id":9112},"reasons-for-change-16",[2877,9114,9115,9116,9119,9120,9122],{},"This brings a ",[3001,9117,9118],{},"significant"," performance improvement for deeply nested objects and arrays because Vue does not need to watch every single property\u002Farray for modification. In most cases, ",[2889,9121,5369],{}," should also be immutable.",[3215,9124,3339],{"id":9125},"migration-steps-19",[2877,9127,9128],{},"In most cases, no migration steps are required, but if you rely on the reactivity of the data object then you have two options:",[3257,9130,9131,9153],{},[3109,9132,9133,9134],{},"You can granularly opt in to deep reactivity on a per-composable basis:\n",[2897,9135,9137],{"className":4251,"code":9136,"language":4253,"meta":2903,"style":2903},"- const { data } = useFetch('\u002Fapi\u002Ftest')\n+ const { data } = useFetch('\u002Fapi\u002Ftest', { deep: true })\n",[2889,9138,9139,9146],{"__ignoreMap":2903},[2907,9140,9141,9143],{"class":2909,"line":2910},[2907,9142,4260],{"class":3050},[2907,9144,9145],{"class":3057}," const { data } = useFetch('\u002Fapi\u002Ftest')\n",[2907,9147,9148,9150],{"class":2909,"line":3054},[2907,9149,4268],{"class":3050},[2907,9151,9152],{"class":2917}," const { data } = useFetch('\u002Fapi\u002Ftest', { deep: true })\n",[3109,9154,9155,9156],{},"You can change the default behavior on a project-wide basis (not recommended):\n",[2897,9157,9159],{"className":3025,"code":9158,"filename":233,"language":3027,"meta":3028,"style":2903},"export default defineNuxtConfig({\n  experimental: {\n    defaults: {\n      useAsyncData: {\n        deep: true,\n      },\n    },\n  },\n})\n",[2889,9160,9161,9173,9181,9189,9198,9209,9213,9217,9221],{"__ignoreMap":2903},[2907,9162,9163,9165,9167,9169,9171],{"class":2909,"line":2910},[2907,9164,3036],{"class":3035},[2907,9166,3039],{"class":3035},[2907,9168,3043],{"class":3042},[2907,9170,3047],{"class":3046},[2907,9172,3051],{"class":3050},[2907,9174,9175,9177,9179],{"class":2909,"line":3054},[2907,9176,4332],{"class":3057},[2907,9178,3061],{"class":3050},[2907,9180,3064],{"class":3050},[2907,9182,9183,9185,9187],{"class":2909,"line":3067},[2907,9184,8565],{"class":3057},[2907,9186,3061],{"class":3050},[2907,9188,3064],{"class":3050},[2907,9190,9191,9194,9196],{"class":2909,"line":3082},[2907,9192,9193],{"class":3057},"      useAsyncData",[2907,9195,3061],{"class":3050},[2907,9197,3064],{"class":3050},[2907,9199,9200,9203,9205,9207],{"class":2909,"line":3088},[2907,9201,9202],{"class":3057},"        deep",[2907,9204,3061],{"class":3050},[2907,9206,4346],{"class":3434},[2907,9208,3079],{"class":3050},[2907,9210,9211],{"class":2909,"line":3448},[2907,9212,8594],{"class":3050},[2907,9214,9215],{"class":2909,"line":3492},[2907,9216,5725],{"class":3050},[2907,9218,9219],{"class":2909,"line":3508},[2907,9220,3085],{"class":3050},[2907,9222,9223,9225],{"class":2909,"line":3536},[2907,9224,3091],{"class":3050},[2907,9226,3094],{"class":3046},[3236,9228,9229],{},[2877,9230,9231,9232],{},"If you need to, you can automate this step by running ",[2889,9233,9234],{},"npx codemod@latest nuxt\u002F4\u002Fshallow-function-reactivity",[2872,9236,9238,9239],{"id":9237},"absolute-watch-paths-in-builderwatch","Absolute Watch Paths in ",[2889,9240,9241],{},"builder:watch",[2877,9243,3209,9244,4167],{},[3001,9245,3212],{},[3215,9247,3218],{"id":9248},"what-changed-20",[2877,9250,9251,9252,9254,9255,3015],{},"The Nuxt ",[2889,9253,9241],{}," hook now emits a path which is absolute rather than relative to your project ",[2889,9256,4807],{},[3215,9258,3318],{"id":9259},"reasons-for-change-17",[2877,9261,9262,9263,9265],{},"This allows us to support watching paths which are outside your ",[2889,9264,4807],{},", and offers better support for layers and other more complex patterns.",[3215,9267,3339],{"id":9268},"migration-steps-20",[2877,9270,9271,9272,3015],{},"We have already proactively migrated the public Nuxt modules which we are aware use this hook. See ",[2881,9273,9276],{"href":9274,"rel":9275},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fissues\u002F25339",[2885],"issue #25339",[2877,9278,9279,9280,9282],{},"However, if you are a module author using the ",[2889,9281,9241],{}," hook and wishing to remain backwards\u002Fforwards compatible, you can use the following code to ensure that your code works the same in both Nuxt v3 and Nuxt v4:",[2897,9284,9286],{"className":4251,"code":9285,"language":4253,"meta":2903,"style":2903},"+ import { relative, resolve } from 'node:fs'\n  \u002F\u002F ...\n  nuxt.hook('builder:watch', async (event, path) => {\n+   path = relative(nuxt.options.srcDir, resolve(nuxt.options.srcDir, path))\n    \u002F\u002F ...\n  })\n",[2889,9287,9288,9295,9300,9305,9312,9317],{"__ignoreMap":2903},[2907,9289,9290,9292],{"class":2909,"line":2910},[2907,9291,4268],{"class":3050},[2907,9293,9294],{"class":2917}," import { relative, resolve } from 'node:fs'\n",[2907,9296,9297],{"class":2909,"line":3054},[2907,9298,9299],{"class":3046},"  \u002F\u002F ...\n",[2907,9301,9302],{"class":2909,"line":3067},[2907,9303,9304],{"class":3046},"  nuxt.hook('builder:watch', async (event, path) => {\n",[2907,9306,9307,9309],{"class":2909,"line":3082},[2907,9308,4268],{"class":3050},[2907,9310,9311],{"class":2917},"   path = relative(nuxt.options.srcDir, resolve(nuxt.options.srcDir, path))\n",[2907,9313,9314],{"class":2909,"line":3088},[2907,9315,9316],{"class":3046},"    \u002F\u002F ...\n",[2907,9318,9319],{"class":2909,"line":3448},[2907,9320,6968],{"class":3046},[3236,9322,9323],{},[2877,9324,7589,9325],{},[2889,9326,9327],{},"npx codemod@latest nuxt\u002F4\u002Fabsolute-watch-path",[2872,9329,9331,9332,9335],{"id":9330},"removal-of-window__nuxt__-object","Removal of ",[2889,9333,9334],{},"window.__NUXT__"," object",[3215,9337,3218],{"id":9338},"what-changed-21",[2877,9340,9341,9342,9344],{},"We are removing the global ",[2889,9343,9334],{}," object after the app finishes hydration.",[3215,9346,3318],{"id":9347},"reasons-for-change-18",[2877,9349,9350,9351,9356,9357,3015],{},"This opens the way to multi-app patterns (",[2881,9352,9355],{"href":9353,"rel":9354},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fissues\u002F21635",[2885],"#21635",") and enables us to focus on a single way to access Nuxt app data - ",[2889,9358,9359],{},"useNuxtApp()",[3215,9361,3339],{"id":9362},"migration-steps-21",[2877,9364,9365,9366,3061],{},"The data is still available, but can be accessed with ",[2889,9367,9368],{},"useNuxtApp().payload",[2897,9370,9372],{"className":4251,"code":9371,"language":4253,"meta":2903,"style":2903},"- console.log(window.__NUXT__)\n+ console.log(useNuxtApp().payload)\n",[2889,9373,9374,9381],{"__ignoreMap":2903},[2907,9375,9376,9378],{"class":2909,"line":2910},[2907,9377,4260],{"class":3050},[2907,9379,9380],{"class":3057}," console.log(window.__NUXT__)\n",[2907,9382,9383,9385],{"class":2909,"line":3054},[2907,9384,4268],{"class":3050},[2907,9386,9387],{"class":2917}," console.log(useNuxtApp().payload)\n",[2872,9389,9391],{"id":9390},"directory-index-scanning","Directory index scanning",[2877,9393,3209,9394,3213],{},[3001,9395,3212],{},[3215,9397,3218],{"id":9398},"what-changed-22",[2877,9400,9401,9402,9404,9405,9408],{},"Child folders in your ",[2889,9403,5146],{}," folder are also scanned for ",[2889,9406,9407],{},"index"," files and these are now also registered as middleware in your project.",[3215,9410,3318],{"id":9411},"reasons-for-change-19",[2877,9413,9414,9415,3270,9417,3015],{},"Nuxt scans a number of folders automatically, including ",[2889,9416,5146],{},[2889,9418,5151],{},[2877,9420,9401,9421,9423,9424,9426],{},[2889,9422,5151],{}," folder are scanned for ",[2889,9425,9407],{}," files and we wanted to make this behavior consistent between scanned directories.",[3215,9428,3339],{"id":9429},"migration-steps-22",[2877,9431,9432],{},"Probably no migration is necessary but if you wish to revert to previous behavior you can add a hook to filter out these middleware:",[2897,9434,9436],{"className":3025,"code":9435,"language":3027,"meta":2903,"style":2903},"export default defineNuxtConfig({\n  hooks: {\n    'app:resolve' (app) {\n      app.middleware = app.middleware.filter(mw => !\u002F\\\u002Findex\\.[^\u002F]+$\u002F.test(mw.path))\n    },\n  },\n})\n",[2889,9437,9438,9450,9459,9477,9548,9552,9556],{"__ignoreMap":2903},[2907,9439,9440,9442,9444,9446,9448],{"class":2909,"line":2910},[2907,9441,3036],{"class":3035},[2907,9443,3039],{"class":3035},[2907,9445,3043],{"class":3042},[2907,9447,3047],{"class":3046},[2907,9449,3051],{"class":3050},[2907,9451,9452,9455,9457],{"class":2909,"line":3054},[2907,9453,9454],{"class":3057},"  hooks",[2907,9456,3061],{"class":3050},[2907,9458,3064],{"class":3050},[2907,9460,9461,9464,9467,9469,9471,9473,9475],{"class":2909,"line":3067},[2907,9462,9463],{"class":3050},"    '",[2907,9465,9466],{"class":2917},"app:resolve",[2907,9468,3411],{"class":3050},[2907,9470,3473],{"class":3050},[2907,9472,1193],{"class":3377},[2907,9474,3380],{"class":3050},[2907,9476,3064],{"class":3050},[2907,9478,9479,9482,9484,9486,9488,9491,9493,9495,9497,9500,9502,9505,9507,9510,9512,9515,9517,9520,9523,9525,9528,9531,9533,9535,9538,9540,9542,9544,9546],{"class":2909,"line":3082},[2907,9480,9481],{"class":3046},"      app",[2907,9483,3015],{"class":3050},[2907,9485,157],{"class":3046},[2907,9487,5469],{"class":3050},[2907,9489,9490],{"class":3046}," app",[2907,9492,3015],{"class":3050},[2907,9494,157],{"class":3046},[2907,9496,3015],{"class":3050},[2907,9498,9499],{"class":3042},"filter",[2907,9501,3047],{"class":3057},[2907,9503,9504],{"class":3377},"mw",[2907,9506,3384],{"class":3383},[2907,9508,9509],{"class":3050}," !",[2907,9511,8442],{"class":3050},[2907,9513,9514],{"class":3046},"\\\u002F",[2907,9516,9407],{"class":2917},[2907,9518,9519],{"class":3046},"\\.",[2907,9521,9522],{"class":3050},"[^",[2907,9524,8442],{"class":2917},[2907,9526,9527],{"class":3050},"]+",[2907,9529,9530],{"class":3035},"$",[2907,9532,8442],{"class":3050},[2907,9534,3015],{"class":3050},[2907,9536,9537],{"class":3042},"test",[2907,9539,3047],{"class":3057},[2907,9541,9504],{"class":3046},[2907,9543,3015],{"class":3050},[2907,9545,6206],{"class":3046},[2907,9547,3812],{"class":3057},[2907,9549,9550],{"class":2909,"line":3088},[2907,9551,5725],{"class":3050},[2907,9553,9554],{"class":2909,"line":3448},[2907,9555,3085],{"class":3050},[2907,9557,9558,9560],{"class":2909,"line":3492},[2907,9559,3091],{"class":3050},[2907,9561,3094],{"class":3046},[2872,9563,9565],{"id":9564},"template-compilation-changes","Template Compilation Changes",[2877,9567,3209,9568,4167],{},[3001,9569,3212],{},[3215,9571,3218],{"id":9572},"what-changed-23",[2877,9574,9575,9576,9579,9580,9583],{},"Previously, Nuxt used ",[2889,9577,9578],{},"lodash\u002Ftemplate"," to compile templates located on the file system using the ",[2889,9581,9582],{},".ejs"," file format\u002Fsyntax.",[2877,9585,9586,9587,3351,9590,3351,9593,9596],{},"In addition, we provided some template utilities (",[2889,9588,9589],{},"serialize",[2889,9591,9592],{},"importName",[2889,9594,9595],{},"importSources",") which could be used for code-generation within these templates, which are now being removed.",[3215,9598,3318],{"id":9599},"reasons-for-change-20",[2877,9601,9602,9603,9606],{},"In Nuxt v3 we moved to a 'virtual' syntax with a ",[2889,9604,9605],{},"getContents()"," function which is much more flexible and performant.",[2877,9608,9609,9610,9612,9613,9616],{},"In addition, ",[2889,9611,9578],{}," has had a succession of security issues. These do not really apply to Nuxt projects because it is being used at build-time, not runtime, and by trusted code. However, they still appear in security audits. Moreover, ",[2889,9614,9615],{},"lodash"," is a hefty dependency and is unused by most projects.",[2877,9618,9619,9620,9625],{},"Finally, providing code serialization functions directly within Nuxt is not ideal. Instead, we maintain projects like ",[2881,9621,9624],{"href":9622,"rel":9623},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fknitwork",[2885],"unjs\u002Fknitwork"," which can be dependencies of your project, and where security issues can be reported\u002Fresolved directly without requiring an upgrade of Nuxt itself.",[3215,9627,3339],{"id":9628},"migration-steps-23",[2877,9630,9631],{},"We have raised PRs to update modules using EJS syntax, but if you need to do this yourself, you have three backwards\u002Fforwards-compatible alternatives:",[3106,9633,9634,9639,9646],{},[3109,9635,9636,9637,3015],{},"Moving your string interpolation logic directly into ",[2889,9638,9605],{},[3109,9640,9641,9642,3015],{},"Using a custom function to handle the replacement, such as in ",[2881,9643,9644],{"href":9644,"rel":9645},"https:\u002F\u002Fgithub.com\u002Fnuxt-modules\u002Fcolor-mode\u002Fpull\u002F240",[2885],[3109,9647,9648,9649,9652,9653,9656],{},"Use ",[2889,9650,9651],{},"es-toolkit\u002Fcompat"," (a drop-in replacement for lodash template), as a dependency of ",[5109,9654,9655],{},"your"," project rather than Nuxt:",[2897,9658,9660],{"className":4251,"code":9659,"language":4253,"meta":2903,"style":2903},"+ import { readFileSync } from 'node:fs'\n+ import { template } from 'es-toolkit\u002Fcompat'\n  \u002F\u002F ...\n  addTemplate({\n    fileName: 'appinsights-vue.js'\n    options: { \u002F* some options *\u002F },\n-   src: resolver.resolve('.\u002Fruntime\u002Fplugin.ejs'),\n+   getContents({ options }) {\n+     const contents = readFileSync(resolver.resolve('.\u002Fruntime\u002Fplugin.ejs'), 'utf-8')\n+     return template(contents)({ options })\n+   },\n  })\n",[2889,9661,9662,9669,9676,9680,9685,9690,9695,9702,9709,9716,9723,9730],{"__ignoreMap":2903},[2907,9663,9664,9666],{"class":2909,"line":2910},[2907,9665,4268],{"class":3050},[2907,9667,9668],{"class":2917}," import { readFileSync } from 'node:fs'\n",[2907,9670,9671,9673],{"class":2909,"line":3054},[2907,9672,4268],{"class":3050},[2907,9674,9675],{"class":2917}," import { template } from 'es-toolkit\u002Fcompat'\n",[2907,9677,9678],{"class":2909,"line":3067},[2907,9679,9299],{"class":3046},[2907,9681,9682],{"class":2909,"line":3082},[2907,9683,9684],{"class":3046},"  addTemplate({\n",[2907,9686,9687],{"class":2909,"line":3088},[2907,9688,9689],{"class":3046},"    fileName: 'appinsights-vue.js'\n",[2907,9691,9692],{"class":2909,"line":3448},[2907,9693,9694],{"class":3046},"    options: { \u002F* some options *\u002F },\n",[2907,9696,9697,9699],{"class":2909,"line":3492},[2907,9698,4260],{"class":3050},[2907,9700,9701],{"class":3057},"   src: resolver.resolve('.\u002Fruntime\u002Fplugin.ejs'),\n",[2907,9703,9704,9706],{"class":2909,"line":3508},[2907,9705,4268],{"class":3050},[2907,9707,9708],{"class":2917},"   getContents({ options }) {\n",[2907,9710,9711,9713],{"class":2909,"line":3536},[2907,9712,4268],{"class":3050},[2907,9714,9715],{"class":2917},"     const contents = readFileSync(resolver.resolve('.\u002Fruntime\u002Fplugin.ejs'), 'utf-8')\n",[2907,9717,9718,9720],{"class":2909,"line":3542},[2907,9719,4268],{"class":3050},[2907,9721,9722],{"class":2917},"     return template(contents)({ options })\n",[2907,9724,9725,9727],{"class":2909,"line":3549},[2907,9726,4268],{"class":3050},[2907,9728,9729],{"class":2917},"   },\n",[2907,9731,9732],{"class":2909,"line":3554},[2907,9733,6968],{"class":3046},[2877,9735,9736,9737,3351,9739,3351,9741,9743,9744,3061],{},"Finally, if you are using the template utilities (",[2889,9738,9589],{},[2889,9740,9592],{},[2889,9742,9595],{},"), you can replace them as follows with utilities from ",[2889,9745,9746],{},"knitwork",[2897,9748,9750],{"className":3025,"code":9749,"language":3027,"meta":2903,"style":2903},"import { genDynamicImport, genImport, genSafeVariableName } from 'knitwork'\n\nconst serialize = (data: any) => JSON.stringify(data, null, 2).replace(\u002F\"\\{(.+)\\}\"(?=,?$)\u002Fgm, r => JSON.parse(r).replace(\u002F^\\{(.*)\\}$\u002F, '$1'))\n\nconst importSources = (sources: string | string[], { lazy = false } = {}) => {\n  return toArray(sources).map((src) => {\n    if (lazy) {\n      return `const ${genSafeVariableName(src)} = ${genDynamicImport(src, { comment: `webpackChunkName: ${JSON.stringify(src)}` })}`\n    }\n    return genImport(src, genSafeVariableName(src))\n  }).join('\\n')\n}\n\nconst importName = genSafeVariableName\n",[2889,9751,9752,9781,9785,9924,9928,9975,10006,10019,10085,10089,10109,10132,10136,10140],{"__ignoreMap":2903},[2907,9753,9754,9756,9758,9761,9763,9766,9768,9771,9773,9775,9777,9779],{"class":2909,"line":2910},[2907,9755,6527],{"class":3035},[2907,9757,3426],{"class":3050},[2907,9759,9760],{"class":3046}," genDynamicImport",[2907,9762,3470],{"class":3050},[2907,9764,9765],{"class":3046}," genImport",[2907,9767,3470],{"class":3050},[2907,9769,9770],{"class":3046}," genSafeVariableName",[2907,9772,3438],{"class":3050},[2907,9774,6542],{"class":3035},[2907,9776,3585],{"class":3050},[2907,9778,9746],{"class":2917},[2907,9780,3799],{"class":3050},[2907,9782,9783],{"class":2909,"line":3054},[2907,9784,3445],{"emptyLinePlaceholder":1196},[2907,9786,9787,9789,9792,9794,9796,9798,9800,9803,9805,9807,9810,9812,9815,9818,9820,9823,9826,9828,9830,9833,9835,9837,9839,9842,9844,9846,9849,9852,9854,9857,9859,9862,9864,9867,9870,9872,9875,9877,9879,9881,9884,9887,9889,9891,9893,9895,9898,9900,9902,9904,9907,9909,9911,9913,9915,9917,9920,9922],{"class":2909,"line":3067},[2907,9788,5454],{"class":3383},[2907,9790,9791],{"class":3046}," serialize ",[2907,9793,6765],{"class":3050},[2907,9795,3473],{"class":3050},[2907,9797,5369],{"class":3377},[2907,9799,3061],{"class":3050},[2907,9801,9802],{"class":2913}," any",[2907,9804,3380],{"class":3050},[2907,9806,3384],{"class":3383},[2907,9808,9809],{"class":3046}," JSON",[2907,9811,3015],{"class":3050},[2907,9813,9814],{"class":3042},"stringify",[2907,9816,9817],{"class":3046},"(data",[2907,9819,3470],{"class":3050},[2907,9821,9822],{"class":3050}," null,",[2907,9824,9825],{"class":3075}," 2",[2907,9827,3380],{"class":3046},[2907,9829,3015],{"class":3050},[2907,9831,9832],{"class":3042},"replace",[2907,9834,3047],{"class":3046},[2907,9836,8442],{"class":3050},[2907,9838,6768],{"class":2917},[2907,9840,9841],{"class":3046},"\\{",[2907,9843,3047],{"class":3050},[2907,9845,3015],{"class":2917},[2907,9847,9848],{"class":3050},"+)",[2907,9850,9851],{"class":3046},"\\}",[2907,9853,6768],{"class":2917},[2907,9855,9856],{"class":3050},"(?=",[2907,9858,3470],{"class":2917},[2907,9860,9861],{"class":3050},"?",[2907,9863,9530],{"class":3035},[2907,9865,9866],{"class":3050},")\u002F",[2907,9868,9869],{"class":3075},"gm",[2907,9871,3470],{"class":3050},[2907,9873,9874],{"class":3377}," r",[2907,9876,3384],{"class":3383},[2907,9878,9809],{"class":3046},[2907,9880,3015],{"class":3050},[2907,9882,9883],{"class":3042},"parse",[2907,9885,9886],{"class":3046},"(r)",[2907,9888,3015],{"class":3050},[2907,9890,9832],{"class":3042},[2907,9892,3047],{"class":3046},[2907,9894,8442],{"class":3050},[2907,9896,9897],{"class":3035},"^",[2907,9899,9841],{"class":3046},[2907,9901,3047],{"class":3050},[2907,9903,3015],{"class":2917},[2907,9905,9906],{"class":3050},"*)",[2907,9908,9851],{"class":3046},[2907,9910,9530],{"class":3035},[2907,9912,8442],{"class":3050},[2907,9914,3470],{"class":3050},[2907,9916,3585],{"class":3050},[2907,9918,9919],{"class":2917},"$1",[2907,9921,3411],{"class":3050},[2907,9923,3812],{"class":3046},[2907,9925,9926],{"class":2909,"line":3082},[2907,9927,3445],{"emptyLinePlaceholder":1196},[2907,9929,9930,9932,9935,9937,9939,9942,9944,9946,9948,9950,9953,9955,9957,9960,9962,9964,9966,9968,9971,9973],{"class":2909,"line":3088},[2907,9931,5454],{"class":3383},[2907,9933,9934],{"class":3046}," importSources ",[2907,9936,6765],{"class":3050},[2907,9938,3473],{"class":3050},[2907,9940,9941],{"class":3377},"sources",[2907,9943,3061],{"class":3050},[2907,9945,5609],{"class":2913},[2907,9947,7907],{"class":3050},[2907,9949,5609],{"class":2913},[2907,9951,9952],{"class":3046},"[]",[2907,9954,3470],{"class":3050},[2907,9956,3426],{"class":3050},[2907,9958,9959],{"class":3377}," lazy",[2907,9961,5469],{"class":3050},[2907,9963,3435],{"class":3434},[2907,9965,3438],{"class":3050},[2907,9967,5469],{"class":3050},[2907,9969,9970],{"class":3050}," {})",[2907,9972,3384],{"class":3383},[2907,9974,3064],{"class":3050},[2907,9976,9977,9979,9982,9984,9986,9988,9990,9993,9995,9997,10000,10002,10004],{"class":2909,"line":3448},[2907,9978,5618],{"class":3035},[2907,9980,9981],{"class":3042}," toArray",[2907,9983,3047],{"class":3057},[2907,9985,9941],{"class":3046},[2907,9987,3380],{"class":3057},[2907,9989,3015],{"class":3050},[2907,9991,9992],{"class":3042},"map",[2907,9994,3047],{"class":3057},[2907,9996,3047],{"class":3050},[2907,9998,9999],{"class":3377},"src",[2907,10001,3380],{"class":3050},[2907,10003,3384],{"class":3383},[2907,10005,3064],{"class":3050},[2907,10007,10008,10010,10012,10015,10017],{"class":2909,"line":3492},[2907,10009,3673],{"class":3035},[2907,10011,3473],{"class":3057},[2907,10013,10014],{"class":3046},"lazy",[2907,10016,3503],{"class":3057},[2907,10018,3051],{"class":3050},[2907,10020,10021,10024,10027,10030,10032,10035,10038,10040,10043,10045,10048,10051,10053,10055,10058,10060,10062,10065,10067,10070,10072,10074,10076,10078,10080,10082],{"class":2909,"line":3508},[2907,10022,10023],{"class":3035},"      return",[2907,10025,10026],{"class":3050}," `",[2907,10028,10029],{"class":2917},"const ",[2907,10031,5634],{"class":3050},[2907,10033,10034],{"class":3042},"genSafeVariableName",[2907,10036,10037],{"class":3046},"(src)",[2907,10039,3091],{"class":3050},[2907,10041,10042],{"class":2917}," = ",[2907,10044,5634],{"class":3050},[2907,10046,10047],{"class":3042},"genDynamicImport",[2907,10049,10050],{"class":3046},"(src",[2907,10052,3470],{"class":3050},[2907,10054,3426],{"class":3050},[2907,10056,10057],{"class":3057}," comment",[2907,10059,3061],{"class":3050},[2907,10061,10026],{"class":3050},[2907,10063,10064],{"class":2917},"webpackChunkName: ",[2907,10066,5634],{"class":3050},[2907,10068,10069],{"class":3046},"JSON",[2907,10071,3015],{"class":3050},[2907,10073,9814],{"class":3042},[2907,10075,10037],{"class":3046},[2907,10077,5639],{"class":3050},[2907,10079,3438],{"class":3050},[2907,10081,3380],{"class":3046},[2907,10083,10084],{"class":3050},"}`\n",[2907,10086,10087],{"class":2909,"line":3536},[2907,10088,3757],{"class":3050},[2907,10090,10091,10093,10095,10097,10099,10101,10103,10105,10107],{"class":2909,"line":3542},[2907,10092,3783],{"class":3035},[2907,10094,9765],{"class":3042},[2907,10096,3047],{"class":3057},[2907,10098,9999],{"class":3046},[2907,10100,3470],{"class":3050},[2907,10102,9770],{"class":3042},[2907,10104,3047],{"class":3057},[2907,10106,9999],{"class":3046},[2907,10108,3812],{"class":3057},[2907,10110,10111,10114,10116,10118,10121,10123,10125,10128,10130],{"class":2909,"line":3549},[2907,10112,10113],{"class":3050},"  }",[2907,10115,3380],{"class":3057},[2907,10117,3015],{"class":3050},[2907,10119,10120],{"class":3042},"join",[2907,10122,3047],{"class":3057},[2907,10124,3411],{"class":3050},[2907,10126,10127],{"class":3046},"\\n",[2907,10129,3411],{"class":3050},[2907,10131,3094],{"class":3057},[2907,10133,10134],{"class":2909,"line":3554},[2907,10135,5735],{"class":3050},[2907,10137,10138],{"class":2909,"line":3560},[2907,10139,3445],{"emptyLinePlaceholder":1196},[2907,10141,10142,10144,10147,10149],{"class":2909,"line":3577},[2907,10143,5454],{"class":3383},[2907,10145,10146],{"class":3046}," importName ",[2907,10148,6765],{"class":3050},[2907,10150,10151],{"class":3046}," genSafeVariableName\n",[3236,10153,10154],{},[2877,10155,7589,10156],{},[2889,10157,10158],{},"npx codemod@latest nuxt\u002F4\u002Ftemplate-compilation-changes",[2872,10160,10162],{"id":10161},"default-typescript-configuration-changes","Default TypeScript Configuration Changes",[2877,10164,3209,10165,4167],{},[3001,10166,3212],{},[3215,10168,3218],{"id":10169},"what-changed-24",[2877,10171,10172,10175,10176,10178,10179,3015],{},[2889,10173,10174],{},"compilerOptions.noUncheckedIndexedAccess"," is now ",[2889,10177,7634],{}," instead of ",[2889,10180,7641],{},[3215,10182,3318],{"id":10183},"reasons-for-change-21",[2877,10185,10186,10187,10192,10193,3015],{},"This change is a follow up to a prior ",[2881,10188,10191],{"href":10189,"rel":10190},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fpull\u002F27485",[2885],"3.12 config update"," where we improved our defaults, mostly adhering to ",[2881,10194,10197],{"href":10195,"rel":10196},"https:\u002F\u002Fwww.totaltypescript.com\u002Ftsconfig-cheat-sheet",[2885],"TotalTypeScript's recommendations",[3215,10199,3339],{"id":10200},"migration-steps-24",[2877,10202,10203],{},"There are two approaches:",[3257,10205,10206,10209],{},[3109,10207,10208],{},"Run a typecheck on your app and fix any new errors (recommended).",[3109,10210,10211,10212,3061,10214],{},"Override the new default in your ",[2889,10213,233],{},[2897,10215,10217],{"className":3025,"code":10216,"language":3027,"meta":2903,"style":2903},"export default defineNuxtConfig({\n  typescript: {\n    tsConfig: {\n      compilerOptions: {\n        noUncheckedIndexedAccess: false,\n      },\n    },\n  },\n})\n",[2889,10218,10219,10231,10240,10249,10258,10269,10273,10277,10281],{"__ignoreMap":2903},[2907,10220,10221,10223,10225,10227,10229],{"class":2909,"line":2910},[2907,10222,3036],{"class":3035},[2907,10224,3039],{"class":3035},[2907,10226,3043],{"class":3042},[2907,10228,3047],{"class":3046},[2907,10230,3051],{"class":3050},[2907,10232,10233,10236,10238],{"class":2909,"line":3054},[2907,10234,10235],{"class":3057},"  typescript",[2907,10237,3061],{"class":3050},[2907,10239,3064],{"class":3050},[2907,10241,10242,10245,10247],{"class":2909,"line":3067},[2907,10243,10244],{"class":3057},"    tsConfig",[2907,10246,3061],{"class":3050},[2907,10248,3064],{"class":3050},[2907,10250,10251,10254,10256],{"class":2909,"line":3082},[2907,10252,10253],{"class":3057},"      compilerOptions",[2907,10255,3061],{"class":3050},[2907,10257,3064],{"class":3050},[2907,10259,10260,10263,10265,10267],{"class":2909,"line":3088},[2907,10261,10262],{"class":3057},"        noUncheckedIndexedAccess",[2907,10264,3061],{"class":3050},[2907,10266,3435],{"class":3434},[2907,10268,3079],{"class":3050},[2907,10270,10271],{"class":2909,"line":3448},[2907,10272,8594],{"class":3050},[2907,10274,10275],{"class":2909,"line":3492},[2907,10276,5725],{"class":3050},[2907,10278,10279],{"class":2909,"line":3508},[2907,10280,3085],{"class":3050},[2907,10282,10283,10285],{"class":2909,"line":3536},[2907,10284,3091],{"class":3050},[2907,10286,3094],{"class":3046},[2872,10288,10290],{"id":10289},"typescript-configuration-splitting","TypeScript Configuration Splitting",[2877,10292,3209,10293,4167],{},[3001,10294,3212],{},[3215,10296,3218],{"id":10297},"what-changed-25",[2877,10299,10300],{},"Nuxt now generates separate TypeScript configurations for different contexts to provide better type-checking experiences:",[3257,10302,10303,10344,10353,10359,10365],{},[3109,10304,10305,10308,10309],{},[3001,10306,10307],{},"New TypeScript configuration files",": Nuxt now generates additional TypeScript configurations:",[3106,10310,10311,10317,10323,10332,10338],{},[3109,10312,10313,10316],{},[2889,10314,10315],{},".nuxt\u002Ftsconfig.app.json"," - For your app code (Vue components, composables, etc.)",[3109,10318,10319,10322],{},[2889,10320,10321],{},".nuxt\u002Ftsconfig.server.json"," - For your server-side code (Nitro\u002Fserver directory)",[3109,10324,10325,10328,10329,10331],{},[2889,10326,10327],{},".nuxt\u002Ftsconfig.node.json"," - For your build-time code (modules, ",[2889,10330,233],{},", etc.)",[3109,10333,10334,10337],{},[2889,10335,10336],{},".nuxt\u002Ftsconfig.shared.json"," - For code shared between app and server contexts (like types and non-environment specific utilities)",[3109,10339,10340,10343],{},[2889,10341,10342],{},".nuxt\u002Ftsconfig.json"," - Legacy configuration for backward compatibility",[3109,10345,10346,10349,10350,10352],{},[3001,10347,10348],{},"Backward compatibility",": Existing projects that extend ",[2889,10351,10342],{}," will continue to work as before.",[3109,10354,10355,10358],{},[3001,10356,10357],{},"Opt-in project references",": New projects or those wanting better type checking can adopt TypeScript's project references feature.",[3109,10360,10361,10364],{},[3001,10362,10363],{},"Context-specific type checking",": Each context now has appropriate compiler options and includes\u002Fexcludes for its specific environment.",[3109,10366,10367,10374],{},[3001,10368,10369,10370,10373],{},"New ",[2889,10371,10372],{},"typescript.nodeTsConfig"," option",": You can now customize the TypeScript configuration for Node.js build-time code.",[3215,10376,3318],{"id":10377},"reasons-for-change-22",[2877,10379,10380],{},"This change provides several benefits:",[3257,10382,10383,10389,10395,10401],{},[3109,10384,10385,10388],{},[3001,10386,10387],{},"Better type safety",": Each context (app, server, build-time) gets appropriate type checking with context-specific globals and APIs.",[3109,10390,10391,10394],{},[3001,10392,10393],{},"Improved IDE experience",": Better IntelliSense and error reporting for different parts of your codebase.",[3109,10396,10397,10400],{},[3001,10398,10399],{},"Cleaner separation",": Server code won't incorrectly suggest client-side APIs and vice versa.",[3109,10402,10403,10405],{},[3001,10404,5086],{},": TypeScript can more efficiently check code with properly scoped configurations.",[2877,10407,10408,10409,10411,10412,10414,10415,10417],{},"For example, auto-imports are not available in your ",[2889,10410,233],{}," (but previously this was not flagged by TypeScript). And while IDEs recognized the separate context hinted by ",[2889,10413,242],{}," in your ",[2889,10416,5103],{}," directory, this was not reflected in type-checking (requiring a separate step).",[3215,10419,3339],{"id":10420},"migration-steps-25",[2877,10422,10423,10426],{},[3001,10424,10425],{},"No migration is required"," - existing projects will continue to work as before.",[2877,10428,10429],{},"However, to take advantage of improved type checking, you can opt in to the new project references approach:",[3257,10431,10432,10598,10612,10637,10678,10834],{},[3109,10433,10434,10439,10440,10456],{},[3001,10435,10436,10437],{},"Update your root ",[2889,10438,242],{}," to use project references:",[3192,10441,10442],{},[2877,10443,10444,10445,10447,10448,10451,10452,10455],{},"If your ",[2889,10446,242],{}," currently has an ",[2889,10449,10450],{},"\"extends\": \".\u002F.nuxt\u002Ftsconfig.json\""," line, ",[3001,10453,10454],{},"remove it"," before adding the references. Project references and extends are mutually exclusive.",[2897,10457,10461],{"className":10458,"code":10459,"language":10460,"meta":2903,"style":2903},"language-json shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","{\n  \u002F\u002F Remove \"extends\": \".\u002F.nuxt\u002Ftsconfig.json\" if present\n  \"files\": [],\n  \"references\": [\n    { \"path\": \".\u002F.nuxt\u002Ftsconfig.app.json\" },\n    { \"path\": \".\u002F.nuxt\u002Ftsconfig.server.json\" },\n    { \"path\": \".\u002F.nuxt\u002Ftsconfig.shared.json\" },\n    { \"path\": \".\u002F.nuxt\u002Ftsconfig.node.json\" }\n  ]\n}\n","json",[2889,10462,10463,10467,10472,10487,10501,10525,10546,10567,10589,10594],{"__ignoreMap":2903},[2907,10464,10465],{"class":2909,"line":2910},[2907,10466,3051],{"class":3050},[2907,10468,10469],{"class":2909,"line":3054},[2907,10470,10471],{"class":3365},"  \u002F\u002F Remove \"extends\": \".\u002F.nuxt\u002Ftsconfig.json\" if present\n",[2907,10473,10474,10477,10480,10482,10484],{"class":2909,"line":3067},[2907,10475,10476],{"class":3050},"  \"",[2907,10478,10479],{"class":3383},"files",[2907,10481,6768],{"class":3050},[2907,10483,3061],{"class":3050},[2907,10485,10486],{"class":3050}," [],\n",[2907,10488,10489,10491,10494,10496,10498],{"class":2909,"line":3082},[2907,10490,10476],{"class":3050},[2907,10492,10493],{"class":3383},"references",[2907,10495,6768],{"class":3050},[2907,10497,3061],{"class":3050},[2907,10499,10500],{"class":3050}," [\n",[2907,10502,10503,10506,10509,10511,10513,10515,10517,10520,10522],{"class":2909,"line":3088},[2907,10504,10505],{"class":3050},"    {",[2907,10507,10508],{"class":3050}," \"",[2907,10510,6206],{"class":2913},[2907,10512,6768],{"class":3050},[2907,10514,3061],{"class":3050},[2907,10516,10508],{"class":3050},[2907,10518,10519],{"class":2917},".\u002F.nuxt\u002Ftsconfig.app.json",[2907,10521,6768],{"class":3050},[2907,10523,10524],{"class":3050}," },\n",[2907,10526,10527,10529,10531,10533,10535,10537,10539,10542,10544],{"class":2909,"line":3448},[2907,10528,10505],{"class":3050},[2907,10530,10508],{"class":3050},[2907,10532,6206],{"class":2913},[2907,10534,6768],{"class":3050},[2907,10536,3061],{"class":3050},[2907,10538,10508],{"class":3050},[2907,10540,10541],{"class":2917},".\u002F.nuxt\u002Ftsconfig.server.json",[2907,10543,6768],{"class":3050},[2907,10545,10524],{"class":3050},[2907,10547,10548,10550,10552,10554,10556,10558,10560,10563,10565],{"class":2909,"line":3492},[2907,10549,10505],{"class":3050},[2907,10551,10508],{"class":3050},[2907,10553,6206],{"class":2913},[2907,10555,6768],{"class":3050},[2907,10557,3061],{"class":3050},[2907,10559,10508],{"class":3050},[2907,10561,10562],{"class":2917},".\u002F.nuxt\u002Ftsconfig.shared.json",[2907,10564,6768],{"class":3050},[2907,10566,10524],{"class":3050},[2907,10568,10569,10571,10573,10575,10577,10579,10581,10584,10586],{"class":2909,"line":3508},[2907,10570,10505],{"class":3050},[2907,10572,10508],{"class":3050},[2907,10574,6206],{"class":2913},[2907,10576,6768],{"class":3050},[2907,10578,3061],{"class":3050},[2907,10580,10508],{"class":3050},[2907,10582,10583],{"class":2917},".\u002F.nuxt\u002Ftsconfig.node.json",[2907,10585,6768],{"class":3050},[2907,10587,10588],{"class":3050}," }\n",[2907,10590,10591],{"class":2909,"line":3536},[2907,10592,10593],{"class":3050},"  ]\n",[2907,10595,10596],{"class":2909,"line":3542},[2907,10597,5735],{"class":3050},[3109,10599,10600,10605,10606,10609,10610,3015],{},[3001,10601,10602,10603],{},"Remove any manual server ",[2889,10604,242],{}," files (like ",[2889,10607,10608],{},"server\u002Ftsconfig.json",") that extended ",[2889,10611,10321],{},[3109,10613,10614,10617,10618],{},[3001,10615,10616],{},"Update your type checking scripts"," to use the build flag for project references:",[2897,10619,10621],{"className":4251,"code":10620,"language":4253,"meta":2903,"style":2903},"- \"typecheck\": \"nuxt prepare && vue-tsc --noEmit\"\n+ \"typecheck\": \"nuxt prepare && vue-tsc -b --noEmit\"\n",[2889,10622,10623,10630],{"__ignoreMap":2903},[2907,10624,10625,10627],{"class":2909,"line":2910},[2907,10626,4260],{"class":3050},[2907,10628,10629],{"class":3057}," \"typecheck\": \"nuxt prepare && vue-tsc --noEmit\"\n",[2907,10631,10632,10634],{"class":2909,"line":3054},[2907,10633,4268],{"class":3050},[2907,10635,10636],{"class":2917}," \"typecheck\": \"nuxt prepare && vue-tsc -b --noEmit\"\n",[3109,10638,10639,3061,10642,10664],{},[3001,10640,10641],{},"Move all type augmentations into their appropriate context",[3106,10643,10644,10650,10655],{},[3109,10645,10646,10647,10649],{},"If you are augmenting types for the app context, move the files to the ",[2889,10648,1195],{}," directory.",[3109,10651,10652,10653,10649],{},"If you are augmenting types for the server context, move the files to the ",[2889,10654,5103],{},[3109,10656,10657,10658,10661,10662,10649],{},"If you are augmenting types that are ",[3001,10659,10660],{},"shared between the app and server",", move the files to the ",[2889,10663,4878],{},[10665,10666,10667],"warning",{},[2877,10668,10669,10670,3351,10672,10674,10675,10677],{},"Augmenting types from outside the ",[2889,10671,1195],{},[2889,10673,5103],{},", or ",[2889,10676,4878],{}," directories will not work with the new project references setup.",[3109,10679,10680,10683,10684],{},[3001,10681,10682],{},"Configure TypeScript options"," if needed:",[2897,10685,10687],{"className":3025,"code":10686,"language":3027,"meta":2903,"style":2903},"export default defineNuxtConfig({\n  typescript: {\n    \u002F\u002F customize tsconfig.app.json\n    tsConfig: {\n      \u002F\u002F ...\n    },\n    \u002F\u002F customize tsconfig.shared.json\n    sharedTsConfig: {\n      \u002F\u002F ...\n    },\n    \u002F\u002F customize tsconfig.node.json\n    nodeTsConfig: {\n      \u002F\u002F ...\n    },\n  },\n  nitro: {\n    typescript: {\n      \u002F\u002F customize tsconfig.server.json\n      tsConfig: {\n        \u002F\u002F ...\n      },\n    },\n  },\n})\n",[2889,10688,10689,10701,10709,10714,10722,10727,10731,10736,10745,10749,10753,10758,10767,10771,10775,10779,10788,10797,10802,10811,10816,10820,10824,10828],{"__ignoreMap":2903},[2907,10690,10691,10693,10695,10697,10699],{"class":2909,"line":2910},[2907,10692,3036],{"class":3035},[2907,10694,3039],{"class":3035},[2907,10696,3043],{"class":3042},[2907,10698,3047],{"class":3046},[2907,10700,3051],{"class":3050},[2907,10702,10703,10705,10707],{"class":2909,"line":3054},[2907,10704,10235],{"class":3057},[2907,10706,3061],{"class":3050},[2907,10708,3064],{"class":3050},[2907,10710,10711],{"class":2909,"line":3067},[2907,10712,10713],{"class":3365},"    \u002F\u002F customize tsconfig.app.json\n",[2907,10715,10716,10718,10720],{"class":2909,"line":3082},[2907,10717,10244],{"class":3057},[2907,10719,3061],{"class":3050},[2907,10721,3064],{"class":3050},[2907,10723,10724],{"class":2909,"line":3088},[2907,10725,10726],{"class":3365},"      \u002F\u002F ...\n",[2907,10728,10729],{"class":2909,"line":3448},[2907,10730,5725],{"class":3050},[2907,10732,10733],{"class":2909,"line":3492},[2907,10734,10735],{"class":3365},"    \u002F\u002F customize tsconfig.shared.json\n",[2907,10737,10738,10741,10743],{"class":2909,"line":3508},[2907,10739,10740],{"class":3057},"    sharedTsConfig",[2907,10742,3061],{"class":3050},[2907,10744,3064],{"class":3050},[2907,10746,10747],{"class":2909,"line":3536},[2907,10748,10726],{"class":3365},[2907,10750,10751],{"class":2909,"line":3542},[2907,10752,5725],{"class":3050},[2907,10754,10755],{"class":2909,"line":3549},[2907,10756,10757],{"class":3365},"    \u002F\u002F customize tsconfig.node.json\n",[2907,10759,10760,10763,10765],{"class":2909,"line":3554},[2907,10761,10762],{"class":3057},"    nodeTsConfig",[2907,10764,3061],{"class":3050},[2907,10766,3064],{"class":3050},[2907,10768,10769],{"class":2909,"line":3560},[2907,10770,10726],{"class":3365},[2907,10772,10773],{"class":2909,"line":3577},[2907,10774,5725],{"class":3050},[2907,10776,10777],{"class":2909,"line":3595},[2907,10778,3085],{"class":3050},[2907,10780,10781,10784,10786],{"class":2909,"line":3608},[2907,10782,10783],{"class":3057},"  nitro",[2907,10785,3061],{"class":3050},[2907,10787,3064],{"class":3050},[2907,10789,10790,10793,10795],{"class":2909,"line":3614},[2907,10791,10792],{"class":3057},"    typescript",[2907,10794,3061],{"class":3050},[2907,10796,3064],{"class":3050},[2907,10798,10799],{"class":2909,"line":3619},[2907,10800,10801],{"class":3365},"      \u002F\u002F customize tsconfig.server.json\n",[2907,10803,10804,10807,10809],{"class":2909,"line":3633},[2907,10805,10806],{"class":3057},"      tsConfig",[2907,10808,3061],{"class":3050},[2907,10810,3064],{"class":3050},[2907,10812,10813],{"class":2909,"line":3639},[2907,10814,10815],{"class":3365},"        \u002F\u002F ...\n",[2907,10817,10818],{"class":2909,"line":3644},[2907,10819,8594],{"class":3050},[2907,10821,10822],{"class":2909,"line":3664},[2907,10823,5725],{"class":3050},[2907,10825,10826],{"class":2909,"line":3670},[2907,10827,3085],{"class":3050},[2907,10829,10830,10832],{"class":2909,"line":3693},[2907,10831,3091],{"class":3050},[2907,10833,3094],{"class":3046},[3109,10835,10836,10839],{},[3001,10837,10838],{},"Update any CI\u002Fbuild scripts"," that run TypeScript checking to ensure they use the new project references approach.",[2877,10841,10842],{},"The new configuration provides better type safety and IntelliSense for projects that opt in, while maintaining full backward compatibility for existing setups.",[2872,10844,10846],{"id":10845},"removal-of-experimental-features","Removal of Experimental Features",[2877,10848,3209,10849,4167],{},[3001,10850,3212],{},[3215,10852,3218],{"id":10853},"what-changed-26",[2877,10855,10856],{},"Four experimental features are no longer configurable in Nuxt 4:",[3106,10858,10859,10867,10875,10883,10890],{},[3109,10860,10861,8732,10864,10866],{},[2889,10862,10863],{},"experimental.treeshakeClientOnly",[2889,10865,7634],{}," (default since v3.0)",[3109,10868,10869,8732,10872,10874],{},[2889,10870,10871],{},"experimental.configSchema",[2889,10873,7634],{}," (default since v3.3)",[3109,10876,10877,8732,10880,10882],{},[2889,10878,10879],{},"experimental.polyfillVueUseHead",[2889,10881,7641],{}," (default since v3.4)",[3109,10884,10885,8732,10888,10882],{},[2889,10886,10887],{},"experimental.respectNoSSRHeader",[2889,10889,7641],{},[3109,10891,10892,10895,10896,4840],{},[2889,10893,10894],{},"vite.devBundler"," is no longer configurable - it will use ",[2889,10897,10898],{},"vite-node",[3215,10900,3318],{"id":10901},"reasons-for-change-23",[2877,10903,10904],{},"These options have been set to their current values for some time and we do not have a reason to believe that they need to remain configurable.",[3215,10906,3339],{"id":10907},"migration-steps-26",[3106,10909,10910,10921],{},[3109,10911,10912,10915,10916],{},[2889,10913,10914],{},"polyfillVueUseHead"," is implementable in user-land with ",[2881,10917,10920],{"href":10918,"rel":10919},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fblob\u002Ff209158352b09d1986aa320e29ff36353b91c358\u002Fpackages\u002Fnuxt\u002Fsrc\u002Fhead\u002Fruntime\u002Fplugins\u002Fvueuse-head-polyfill.ts#L10-L11",[2885],"this plugin",[3109,10922,10923,10926,10927],{},[2889,10924,10925],{},"respectNoSSRHeader","is implementable in user-land with ",[2881,10928,10931],{"href":10929,"rel":10930},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fblob\u002Fc660b39447f0d5b8790c0826092638d321cd6821\u002Fpackages\u002Fnuxt\u002Fsrc\u002Fcore\u002Fruntime\u002Fnitro\u002Fno-ssr.ts#L8-L9",[2885],"server middleware",[2872,10933,10935,10936,10939],{"id":10934},"removal-of-top-level-generate-configuration","Removal of Top-Level ",[2889,10937,10938],{},"generate"," Configuration",[2877,10941,3209,10942,4167],{},[3001,10943,3212],{},[3215,10945,3218],{"id":10946},"what-changed-27",[2877,10948,10949,10950,10952],{},"The top-level ",[2889,10951,10938],{}," configuration option is no longer available in Nuxt 4. This includes all of its properties:",[3106,10954,10955,10961],{},[3109,10956,10957,10960],{},[2889,10958,10959],{},"generate.exclude"," - for excluding routes from prerendering",[3109,10962,10963,10966],{},[2889,10964,10965],{},"generate.routes"," - for specifying routes to prerender",[3215,10968,3318],{"id":10969},"reasons-for-change-24",[2877,10971,10972,10973,10975,10976,10979],{},"The top level ",[2889,10974,10938],{}," configuration was a holdover from Nuxt 2. We've supported ",[2889,10977,10978],{},"nitro.prerender"," for a while now, and it is the preferred way to configure prerendering in Nuxt 3+.",[3215,10981,3339],{"id":10982},"migration-steps-27",[2877,10984,10985,10986,10988,10989,10991],{},"Replace ",[2889,10987,10938],{}," configuration with the corresponding ",[2889,10990,10978],{}," options:",[2897,10993,10995],{"className":4251,"code":10994,"language":4253,"meta":2903,"style":2903},"export default defineNuxtConfig({\n- generate: {\n-   exclude: ['\u002Fadmin', '\u002Fprivate'],\n-   routes: ['\u002Fsitemap.xml', '\u002Frobots.txt']\n- }\n+ nitro: {\n+   prerender: {\n+     ignore: ['\u002Fadmin', '\u002Fprivate'],\n+     routes: ['\u002Fsitemap.xml', '\u002Frobots.txt']\n+   }\n+ }\n})\n",[2889,10996,10997,11002,11009,11016,11023,11029,11036,11043,11050,11057,11064,11070],{"__ignoreMap":2903},[2907,10998,10999],{"class":2909,"line":2910},[2907,11000,11001],{"class":3046},"export default defineNuxtConfig({\n",[2907,11003,11004,11006],{"class":2909,"line":3054},[2907,11005,4260],{"class":3050},[2907,11007,11008],{"class":3057}," generate: {\n",[2907,11010,11011,11013],{"class":2909,"line":3067},[2907,11012,4260],{"class":3050},[2907,11014,11015],{"class":3057},"   exclude: ['\u002Fadmin', '\u002Fprivate'],\n",[2907,11017,11018,11020],{"class":2909,"line":3082},[2907,11019,4260],{"class":3050},[2907,11021,11022],{"class":3057},"   routes: ['\u002Fsitemap.xml', '\u002Frobots.txt']\n",[2907,11024,11025,11027],{"class":2909,"line":3088},[2907,11026,4260],{"class":3050},[2907,11028,10588],{"class":3057},[2907,11030,11031,11033],{"class":2909,"line":3448},[2907,11032,4268],{"class":3050},[2907,11034,11035],{"class":2917}," nitro: {\n",[2907,11037,11038,11040],{"class":2909,"line":3492},[2907,11039,4268],{"class":3050},[2907,11041,11042],{"class":2917},"   prerender: {\n",[2907,11044,11045,11047],{"class":2909,"line":3508},[2907,11046,4268],{"class":3050},[2907,11048,11049],{"class":2917},"     ignore: ['\u002Fadmin', '\u002Fprivate'],\n",[2907,11051,11052,11054],{"class":2909,"line":3536},[2907,11053,4268],{"class":3050},[2907,11055,11056],{"class":2917},"     routes: ['\u002Fsitemap.xml', '\u002Frobots.txt']\n",[2907,11058,11059,11061],{"class":2909,"line":3542},[2907,11060,4268],{"class":3050},[2907,11062,11063],{"class":2917},"   }\n",[2907,11065,11066,11068],{"class":2909,"line":3549},[2907,11067,4268],{"class":3050},[2907,11069,10588],{"class":2917},[2907,11071,11072],{"class":2909,"line":3554},[2907,11073,5831],{"class":3046},[4151,11075,11077],{"to":11076},"https:\u002F\u002Fnitro.build\u002Fconfig#prerender",[2877,11078,11079],{},"Read more about Nitro's prerender configuration options.",[2872,11081,11083],{"id":11082},"normalized-page-component-names","Normalized Page Component Names",[2877,11085,3209,11086,4167],{},[3001,11087,3212],{},[3215,11089,3218],{"id":11090},"what-changed-28",[2877,11092,8486,11093,11095,11096,11098,11099,11102,11103,11106,11107,10178,11110,3015],{},[2889,11094,3021],{}," is set to ",[2889,11097,3103],{}," (or ",[2889,11100,11101],{},"experimental.normalizePageNames"," is enabled), page component names match their route names instead of using the filename. For example, ",[2889,11104,11105],{},"pages\u002Ffoo\u002Findex.vue"," will have the component name ",[2889,11108,11109],{},"foo",[2889,11111,9407],{},[3215,11113,3318],{"id":11114},"reasons-for-change-25",[2877,11116,11117,11118,3270,11120,11123,11124,11126,11127,3822,11129,8442,11131,11134,11135,11138],{},"Previously, Vue assigned component names based on the filename. This meant multiple pages like ",[2889,11119,11105],{},[2889,11121,11122],{},"pages\u002Fbar\u002Findex.vue"," would both have the component name ",[2889,11125,9407],{},". This made ",[2889,11128,3132],{},[2889,11130,3401],{},[2889,11132,11133],{},"exclude"," filters unreliable and required manually adding ",[2889,11136,11137],{},"defineOptions({ name: '...' })"," to each page.",[3215,11140,3339],{"id":11141},"migration-steps-28",[2877,11143,11144,11145,7657,11147,8442,11149,11151],{},"If you rely on the current component names (e.g. in ",[2889,11146,3132],{},[2889,11148,3401],{},[2889,11150,11133],{}," lists), update them to use route names instead of filenames.",[2897,11153,11155],{"className":4251,"code":11154,"language":4253,"meta":2903,"style":2903},"\u003Ctemplate>\n  \u003CNuxtPage :keepalive=\"{\n-   include: ['index']\n+   include: ['foo']\n  }\" \u002F>\n\u003C\u002Ftemplate>\n",[2889,11156,11157,11162,11167,11174,11181,11186],{"__ignoreMap":2903},[2907,11158,11159],{"class":2909,"line":2910},[2907,11160,11161],{"class":3046},"\u003Ctemplate>\n",[2907,11163,11164],{"class":2909,"line":3054},[2907,11165,11166],{"class":3046},"  \u003CNuxtPage :keepalive=\"{\n",[2907,11168,11169,11171],{"class":2909,"line":3067},[2907,11170,4260],{"class":3050},[2907,11172,11173],{"class":3057},"   include: ['index']\n",[2907,11175,11176,11178],{"class":2909,"line":3082},[2907,11177,4268],{"class":3050},[2907,11179,11180],{"class":2917},"   include: ['foo']\n",[2907,11182,11183],{"class":2909,"line":3088},[2907,11184,11185],{"class":3046},"  }\" \u002F>\n",[2907,11187,11188],{"class":2909,"line":3448},[2907,11189,11190],{"class":3046},"\u003C\u002Ftemplate>\n",[2877,11192,11193],{},"To disable this behavior:",[2897,11195,11197],{"className":3025,"code":11196,"filename":233,"language":3027,"meta":3028,"style":2903},"export default defineNuxtConfig({\n  experimental: {\n    normalizePageNames: false,\n  },\n})\n",[2889,11198,11199,11211,11219,11230,11234],{"__ignoreMap":2903},[2907,11200,11201,11203,11205,11207,11209],{"class":2909,"line":2910},[2907,11202,3036],{"class":3035},[2907,11204,3039],{"class":3035},[2907,11206,3043],{"class":3042},[2907,11208,3047],{"class":3046},[2907,11210,3051],{"class":3050},[2907,11212,11213,11215,11217],{"class":2909,"line":3054},[2907,11214,4332],{"class":3057},[2907,11216,3061],{"class":3050},[2907,11218,3064],{"class":3050},[2907,11220,11221,11224,11226,11228],{"class":2909,"line":3067},[2907,11222,11223],{"class":3057},"    normalizePageNames",[2907,11225,3061],{"class":3050},[2907,11227,3435],{"class":3434},[2907,11229,3079],{"class":3050},[2907,11231,11232],{"class":2909,"line":3082},[2907,11233,3085],{"class":3050},[2907,11235,11236,11238],{"class":2909,"line":3088},[2907,11237,3091],{"class":3050},[2907,11239,3094],{"class":3046},[2867,11241,11243],{"id":11242},"nuxt-2-vs-nuxt-3","Nuxt 2 vs. Nuxt 3+",[2877,11245,11246],{},"In the table below, there is a quick comparison between 3 versions of Nuxt:",[11248,11249,11250,11269],"table",{},[11251,11252,11253],"thead",{},[11254,11255,11256,11260,11263,11266],"tr",{},[11257,11258,11259],"th",{},"Feature \u002F Version",[11257,11261,11262],{},"Nuxt 2",[11257,11264,11265],{},"Nuxt Bridge",[11257,11267,11268],{},"Nuxt 3+",[11270,11271,11272,11284,11296,11309,11322,11335,11347,11358,11369,11380,11394,11404,11416,11427,11440],"tbody",{},[11254,11273,11274,11278,11280,11282],{},[11275,11276,11277],"td",{},"Vue",[11275,11279,8094],{},[11275,11281,8094],{},[11275,11283,7961],{},[11254,11285,11286,11289,11292,11294],{},[11275,11287,11288],{},"Stability",[11275,11290,11291],{},"😊 Stable",[11275,11293,11291],{},[11275,11295,11291],{},[11254,11297,11298,11300,11303,11306],{},[11275,11299,5086],{},[11275,11301,11302],{},"🏎 Fast",[11275,11304,11305],{},"✈️ Faster",[11275,11307,11308],{},"🚀 Fastest",[11254,11310,11311,11314,11317,11320],{},[11275,11312,11313],{},"Nitro Engine",[11275,11315,11316],{},"❌",[11275,11318,11319],{},"✅",[11275,11321,11319],{},[11254,11323,11324,11327,11330,11333],{},[11275,11325,11326],{},"ESM support",[11275,11328,11329],{},"🌙 Partial",[11275,11331,11332],{},"👍 Better",[11275,11334,11319],{},[11254,11336,11337,11339,11342,11345],{},[11275,11338,280],{},[11275,11340,11341],{},"☑️ Opt-in",[11275,11343,11344],{},"🚧 Partial",[11275,11346,11319],{},[11254,11348,11349,11352,11354,11356],{},[11275,11350,11351],{},"Composition API",[11275,11353,11316],{},[11275,11355,11344],{},[11275,11357,11319],{},[11254,11359,11360,11363,11365,11367],{},[11275,11361,11362],{},"Options API",[11275,11364,11319],{},[11275,11366,11319],{},[11275,11368,11319],{},[11254,11370,11371,11374,11376,11378],{},[11275,11372,11373],{},"Components Auto Import",[11275,11375,11319],{},[11275,11377,11319],{},[11275,11379,11319],{},[11254,11381,11382,11388,11390,11392],{},[11275,11383,11384,11387],{},[2889,11385,11386],{},"\u003Cscript setup>"," syntax",[11275,11389,11316],{},[11275,11391,11344],{},[11275,11393,11319],{},[11254,11395,11396,11398,11400,11402],{},[11275,11397,922],{},[11275,11399,11316],{},[11275,11401,11319],{},[11275,11403,11319],{},[11254,11405,11406,11409,11412,11414],{},[11275,11407,11408],{},"webpack",[11275,11410,11411],{},"4",[11275,11413,11411],{},[11275,11415,3103],{},[11254,11417,11418,11420,11423,11425],{},[11275,11419,1075],{},[11275,11421,11422],{},"⚠️ Partial",[11275,11424,11344],{},[11275,11426,11319],{},[11254,11428,11429,11432,11435,11438],{},[11275,11430,11431],{},"Nuxt CLI",[11275,11433,11434],{},"❌ Old",[11275,11436,11437],{},"✅ nuxt",[11275,11439,11437],{},[11254,11441,11442,11445,11447,11449],{},[11275,11443,11444],{},"Static sites",[11275,11446,11319],{},[11275,11448,11319],{},[11275,11450,11319],{},[2867,11452,11454],{"id":11453},"nuxt-2-to-nuxt-3","Nuxt 2 to Nuxt 3+",[2877,11456,11457],{},"The migration guide provides a step-by-step comparison of Nuxt 2 features to Nuxt 3+ features and guidance to adapt your current application.",[4151,11459,11460],{"to":1916},[2877,11461,11462,11463,3015],{},"Check out the ",[3001,11464,11465],{},"guide to migrating from Nuxt 2 to Nuxt 3",[2867,11467,11469],{"id":11468},"nuxt-2-to-nuxt-bridge","Nuxt 2 to Nuxt Bridge",[2877,11471,11472],{},"If you prefer to progressively migrate your Nuxt 2 application to Nuxt 3, you can use Nuxt Bridge. Nuxt Bridge is a compatibility layer that allows you to use Nuxt 3+ features in Nuxt 2 with an opt-in mechanism.",[4151,11474,11475],{"to":1882},[2877,11476,11477],{},[3001,11478,11479],{},"Migrate from Nuxt 2 to Nuxt Bridge",[4418,11481,11482],{},"html pre.shiki code .s52Pk, html code.shiki .s52Pk{--shiki-light:#E2931D;--shiki-default:#E2931D;--shiki-dark:#FFCB6B}html pre.shiki code .sGFVr, html code.shiki .sGFVr{--shiki-light:#91B859;--shiki-default:#91B859;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sWuyu, html code.shiki .sWuyu{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .s3cPz, html code.shiki .s3cPz{--shiki-light:#6182B8;--shiki-default:#6182B8;--shiki-dark:#82AAFF}html pre.shiki code .sZSNi, html code.shiki .sZSNi{--shiki-light:#90A4AE;--shiki-default:#90A4AE;--shiki-dark:#BABED8}html pre.shiki code .sDfIl, html code.shiki .sDfIl{--shiki-light:#39ADB5;--shiki-default:#39ADB5;--shiki-dark:#89DDFF}html pre.shiki code .s1nJG, html code.shiki .s1nJG{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .smZ93, html code.shiki .smZ93{--shiki-light:#9C3EDA;--shiki-default:#9C3EDA;--shiki-dark:#C792EA}html pre.shiki code .sRlkE, html code.shiki .sRlkE{--shiki-light:#E53935;--shiki-default:#E53935;--shiki-dark:#F07178}html pre.shiki code .sbKd-, html code.shiki .sbKd-{--shiki-light:#FF5370;--shiki-default:#FF5370;--shiki-dark:#FF9CAC}html pre.shiki code .s8R28, html code.shiki .s8R28{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#39ADB5;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sYRBq, html code.shiki .sYRBq{--shiki-light:#F76D47;--shiki-default:#F76D47;--shiki-dark:#F78C6C}",{"title":2903,"searchDepth":3054,"depth":3054,"links":11484},[11485,11489,11496,11537,11538,11539],{"id":2869,"depth":3054,"text":2870,"children":11486},[11487,11488],{"id":2874,"depth":3067,"text":2875},{"id":2985,"depth":3067,"text":403},{"id":2995,"depth":3054,"text":2996,"children":11490},[11491,11492,11493,11495],{"id":3007,"depth":3067,"text":3008},{"id":3205,"depth":3067,"text":3206},{"id":4159,"depth":3067,"text":11494},"Non-Async callHook",{"id":4361,"depth":3067,"text":4362},{"id":4546,"depth":3054,"text":4547,"children":11497},[11498,11499,11500,11501,11502,11503,11504,11505,11506,11508,11509,11510,11511,11513,11515,11517,11519,11521,11523,11525,11527,11529,11530,11531,11532,11533,11534,11536],{"id":4636,"depth":3067,"text":4637},{"id":4775,"depth":3067,"text":4776},{"id":5336,"depth":3067,"text":5337},{"id":5894,"depth":3067,"text":5895},{"id":6187,"depth":3067,"text":6188},{"id":6265,"depth":3067,"text":6266},{"id":6396,"depth":3067,"text":6397},{"id":6721,"depth":3067,"text":6722},{"id":6906,"depth":3067,"text":11507},"Parsed error.data",{"id":6994,"depth":3067,"text":6995},{"id":7076,"depth":3067,"text":7077},{"id":7229,"depth":3067,"text":7230},{"id":7513,"depth":3067,"text":11512},"Default data and error values in useAsyncData and useFetch",{"id":7595,"depth":3067,"text":11514},"Removal of deprecated boolean values for dedupe option when calling refresh in useAsyncData and useFetch",{"id":8404,"depth":3067,"text":11516},"Respect defaults when clearing data in useAsyncData and useFetch",{"id":8448,"depth":3067,"text":11518},"Respect defaults when clearing useState",{"id":8685,"depth":3067,"text":11520},"Alignment of pending value in useAsyncData and useFetch",{"id":8903,"depth":3067,"text":11522},"Key Change Behavior in useAsyncData and useFetch",{"id":9068,"depth":3067,"text":11524},"Shallow Data Reactivity in useAsyncData and useFetch",{"id":9237,"depth":3067,"text":11526},"Absolute Watch Paths in builder:watch",{"id":9330,"depth":3067,"text":11528},"Removal of window.__NUXT__ object",{"id":9390,"depth":3067,"text":9391},{"id":9564,"depth":3067,"text":9565},{"id":10161,"depth":3067,"text":10162},{"id":10289,"depth":3067,"text":10290},{"id":10845,"depth":3067,"text":10846},{"id":10934,"depth":3067,"text":11535},"Removal of Top-Level generate Configuration",{"id":11082,"depth":3067,"text":11083},{"id":11242,"depth":3054,"text":11243},{"id":11453,"depth":3054,"text":11454},{"id":11468,"depth":3054,"text":11469},"Learn how to upgrade to the latest Nuxt version.","md",{},{"icon":107},{"title":104,"description":11540},"JhtNCrLWoQ56z73hMka1ojasSt0_6qU19i65FaLeJlM",[11547,11549],{"title":99,"path":1177,"stem":1178,"description":11548,"icon":102,"children":-1},"How to test your Nuxt application.",{"title":117,"path":1187,"stem":1188,"description":11550,"icon":120,"children":-1},"Nuxt uses the .nuxt\u002F directory in development to generate your Vue application.",1775777152497]