[{"data":1,"prerenderedAt":5553},["ShallowReactive",2],{"$fGCo9l1hMtNdUiA6QzdUX5X3kLqaWcC5t2kdz4LrvCvc":3,"versions":2020,"-docs-3-x-directory-structure-components":2024,"-docs-3-x-directory-structure-components-surround":5548},[4,1120,1931],{"title":5,"titleTemplate":6,"icon":7,"path":8,"stem":9,"children":10,"page":108},"Docs",null,"i-lucide-book-marked","/docs/3.x","docs/3.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","/docs/3.x/getting-started","docs/3.x/1.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","/docs/3.x/getting-started/introduction","docs/3.x/1.getting-started/01.introduction","i-lucide-info",{"title":24,"path":25,"stem":26,"titleTemplate":6,"icon":27},"Installation","/docs/3.x/getting-started/installation","docs/3.x/1.getting-started/02.installation","i-lucide-play",{"title":29,"path":30,"stem":31,"titleTemplate":6,"icon":32},"Configuration","/docs/3.x/getting-started/configuration","docs/3.x/1.getting-started/03.configuration","i-lucide-cog",{"title":34,"path":35,"stem":36,"titleTemplate":6,"icon":37},"Views","/docs/3.x/getting-started/views","docs/3.x/1.getting-started/04.views","i-lucide-panels-top-left",{"title":39,"path":40,"stem":41,"titleTemplate":6,"icon":42},"Assets","/docs/3.x/getting-started/assets","docs/3.x/1.getting-started/05.assets","i-lucide-image",{"title":44,"path":45,"stem":46,"titleTemplate":6,"icon":47},"Styling","/docs/3.x/getting-started/styling","docs/3.x/1.getting-started/06.styling","i-lucide-palette",{"title":49,"path":50,"stem":51,"titleTemplate":6,"icon":52},"Routing","/docs/3.x/getting-started/routing","docs/3.x/1.getting-started/07.routing","i-lucide-milestone",{"title":54,"path":55,"stem":56,"titleTemplate":6,"icon":57},"SEO and Meta","/docs/3.x/getting-started/seo-meta","docs/3.x/1.getting-started/08.seo-meta","i-lucide-file-search",{"title":59,"path":60,"stem":61,"titleTemplate":6,"icon":62},"Transitions","/docs/3.x/getting-started/transitions","docs/3.x/1.getting-started/09.transitions","i-lucide-toggle-right",{"title":64,"path":65,"stem":66,"titleTemplate":6,"icon":67},"Data Fetching","/docs/3.x/getting-started/data-fetching","docs/3.x/1.getting-started/10.data-fetching","i-lucide-cable",{"title":69,"path":70,"stem":71,"titleTemplate":6,"icon":72},"State Management","/docs/3.x/getting-started/state-management","docs/3.x/1.getting-started/11.state-management","i-lucide-database",{"title":74,"path":75,"stem":76,"titleTemplate":6,"icon":77},"Error Handling","/docs/3.x/getting-started/error-handling","docs/3.x/1.getting-started/12.error-handling","i-lucide-bug-off",{"title":79,"path":80,"stem":81,"titleTemplate":6,"icon":82},"Server","/docs/3.x/getting-started/server","docs/3.x/1.getting-started/13.server","i-lucide-pc-case",{"title":84,"path":85,"stem":86,"titleTemplate":6,"icon":87},"Layers","/docs/3.x/getting-started/layers","docs/3.x/1.getting-started/14.layers","i-lucide-layers",{"title":89,"path":90,"stem":91,"titleTemplate":6,"icon":92},"Prerendering","/docs/3.x/getting-started/prerendering","docs/3.x/1.getting-started/15.prerendering","i-lucide-file-code-2",{"title":94,"path":95,"stem":96,"titleTemplate":6,"icon":97},"Deployment","/docs/3.x/getting-started/deployment","docs/3.x/1.getting-started/16.deployment","i-lucide-cloud",{"title":99,"path":100,"stem":101,"titleTemplate":6,"icon":102},"Testing","/docs/3.x/getting-started/testing","docs/3.x/1.getting-started/17.testing","i-lucide-circle-check",{"title":104,"path":105,"stem":106,"titleTemplate":6,"icon":107},"Upgrade Guide","/docs/3.x/getting-started/upgrade","docs/3.x/1.getting-started/18.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","/docs/3.x/directory-structure","docs/3.x/2.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","/docs/3.x/directory-structure/nuxt","docs/3.x/2.directory-structure/0.nuxt","i-vscode-icons-folder-type-temp",{"title":122,"path":123,"stem":124,"titleTemplate":6,"icon":125},".output","/docs/3.x/directory-structure/output","docs/3.x/2.directory-structure/0.output","i-vscode-icons-folder-type-package",{"title":127,"path":128,"stem":129,"titleTemplate":6,"icon":130},"assets","/docs/3.x/directory-structure/assets","docs/3.x/2.directory-structure/1.assets","i-vscode-icons-folder-type-asset",{"title":132,"path":133,"stem":134,"titleTemplate":6,"icon":135},"components","/docs/3.x/directory-structure/components","docs/3.x/2.directory-structure/1.components","i-vscode-icons-folder-type-component",{"title":137,"path":138,"stem":139,"titleTemplate":6,"icon":140},"composables","/docs/3.x/directory-structure/composables","docs/3.x/2.directory-structure/1.composables","i-vscode-icons-folder-type-src",{"title":142,"path":143,"stem":144,"titleTemplate":6,"icon":145},"content","/docs/3.x/directory-structure/content","docs/3.x/2.directory-structure/1.content","i-vscode-icons-folder-type-log",{"title":147,"path":148,"stem":149,"titleTemplate":6,"icon":150},"layers","/docs/3.x/directory-structure/layers","docs/3.x/2.directory-structure/1.layers","i-vscode-icons-folder-type-nuxt",{"title":152,"path":153,"stem":154,"titleTemplate":6,"icon":155},"layouts","/docs/3.x/directory-structure/layouts","docs/3.x/2.directory-structure/1.layouts","i-vscode-icons-folder-type-view",{"title":157,"path":158,"stem":159,"titleTemplate":6,"icon":160},"middleware","/docs/3.x/directory-structure/middleware","docs/3.x/2.directory-structure/1.middleware","i-vscode-icons-folder-type-middleware",{"title":162,"path":163,"stem":164,"titleTemplate":6,"icon":150},"modules","/docs/3.x/directory-structure/modules","docs/3.x/2.directory-structure/1.modules",{"title":166,"path":167,"stem":168,"titleTemplate":6,"icon":169},"node_modules","/docs/3.x/directory-structure/node_modules","docs/3.x/2.directory-structure/1.node_modules","i-vscode-icons-folder-type-node",{"title":171,"path":172,"stem":173,"titleTemplate":6,"icon":155},"pages","/docs/3.x/directory-structure/pages","docs/3.x/2.directory-structure/1.pages",{"title":175,"path":176,"stem":177,"titleTemplate":6,"icon":178},"plugins","/docs/3.x/directory-structure/plugins","docs/3.x/2.directory-structure/1.plugins","i-vscode-icons-folder-type-plugin",{"title":180,"path":181,"stem":182,"titleTemplate":6,"icon":183},"public","/docs/3.x/directory-structure/public","docs/3.x/2.directory-structure/1.public","i-vscode-icons-folder-type-public",{"title":185,"path":186,"stem":187,"titleTemplate":6,"icon":188},"server","/docs/3.x/directory-structure/server","docs/3.x/2.directory-structure/1.server","i-vscode-icons-folder-type-server",{"title":190,"path":191,"stem":192,"titleTemplate":6,"icon":193},"shared","/docs/3.x/directory-structure/shared","docs/3.x/2.directory-structure/1.shared","i-vscode-icons-folder-type-shared",{"title":195,"path":196,"stem":197,"titleTemplate":6,"icon":198},"utils","/docs/3.x/directory-structure/utils","docs/3.x/2.directory-structure/1.utils","i-vscode-icons-folder-type-tools",{"title":200,"path":201,"stem":202,"titleTemplate":6,"icon":203},".env","/docs/3.x/directory-structure/env","docs/3.x/2.directory-structure/2.env","i-vscode-icons-file-type-dotenv",{"title":205,"path":206,"stem":207,"titleTemplate":6,"icon":208},".gitignore","/docs/3.x/directory-structure/gitignore","docs/3.x/2.directory-structure/2.gitignore","i-vscode-icons-file-type-git",{"title":210,"path":211,"stem":212,"titleTemplate":6,"icon":213},".nuxtignore","/docs/3.x/directory-structure/nuxtignore","docs/3.x/2.directory-structure/2.nuxtignore","i-vscode-icons-file-type-nuxt",{"title":215,"path":216,"stem":217,"titleTemplate":6,"icon":213},".nuxtrc","/docs/3.x/directory-structure/nuxtrc","docs/3.x/2.directory-structure/2.nuxtrc",{"title":219,"path":220,"stem":221,"titleTemplate":6,"icon":222},"app.vue","/docs/3.x/directory-structure/app","docs/3.x/2.directory-structure/3.app","i-vscode-icons-file-type-vue",{"title":224,"path":225,"stem":226,"titleTemplate":6,"icon":227},"app.config.ts","/docs/3.x/directory-structure/app-config","docs/3.x/2.directory-structure/3.app-config","i-vscode-icons-file-type-light-config",{"title":229,"path":230,"stem":231,"titleTemplate":6,"icon":222},"error.vue","/docs/3.x/directory-structure/error","docs/3.x/2.directory-structure/3.error",{"title":233,"path":234,"stem":235,"titleTemplate":6,"icon":213},"nuxt.config.ts","/docs/3.x/directory-structure/nuxt-config","docs/3.x/2.directory-structure/3.nuxt-config",{"title":237,"path":238,"stem":239,"titleTemplate":6,"icon":240},"package.json","/docs/3.x/directory-structure/package","docs/3.x/2.directory-structure/3.package","i-vscode-icons-file-type-npm",{"title":242,"path":243,"stem":244,"titleTemplate":6,"icon":245},"tsconfig.json","/docs/3.x/directory-structure/tsconfig","docs/3.x/2.directory-structure/3.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","/docs/3.x/guide","docs/3.x/3.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","/docs/3.x/guide/concepts","docs/3.x/3.guide/1.concepts",[259,263,267,271,275,279,283],{"title":260,"path":261,"stem":262,"titleTemplate":6},"Rendering Modes","/docs/3.x/guide/concepts/rendering","docs/3.x/3.guide/1.concepts/1.rendering",{"title":264,"path":265,"stem":266,"titleTemplate":6},"Nuxt Lifecycle","/docs/3.x/guide/concepts/nuxt-lifecycle","docs/3.x/3.guide/1.concepts/2.nuxt-lifecycle",{"title":268,"path":269,"stem":270,"titleTemplate":6},"Auto-imports","/docs/3.x/guide/concepts/auto-imports","docs/3.x/3.guide/1.concepts/3.auto-imports",{"title":272,"path":273,"stem":274,"titleTemplate":6},"Server Engine","/docs/3.x/guide/concepts/server-engine","docs/3.x/3.guide/1.concepts/4.server-engine",{"title":276,"path":277,"stem":278,"titleTemplate":6},"Modules","/docs/3.x/guide/concepts/modules","docs/3.x/3.guide/1.concepts/5.modules",{"title":280,"path":281,"stem":282,"titleTemplate":6},"TypeScript","/docs/3.x/guide/concepts/typescript","docs/3.x/3.guide/1.concepts/8.typescript",{"title":284,"path":285,"stem":286,"titleTemplate":6},"Code Style","/docs/3.x/guide/concepts/code-style","docs/3.x/3.guide/1.concepts/9.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","/docs/3.x/guide/best-practices","docs/3.x/3.guide/2.best-practices",[294,298,302],{"title":295,"path":296,"stem":297,"titleTemplate":6},"Nuxt and hydration","/docs/3.x/guide/best-practices/hydration","docs/3.x/3.guide/2.best-practices/hydration",{"title":299,"path":300,"stem":301,"titleTemplate":6},"Nuxt Performance","/docs/3.x/guide/best-practices/performance","docs/3.x/3.guide/2.best-practices/performance",{"title":303,"path":304,"stem":305,"titleTemplate":6},"Nuxt Plugins","/docs/3.x/guide/best-practices/plugins","docs/3.x/3.guide/2.best-practices/plugins",{"title":307,"titleTemplate":308,"icon":309,"path":310,"stem":311,"children":312,"page":108},"Working with AI","Working with AI: %s","i-lucide-bot","/docs/3.x/guide/ai","docs/3.x/3.guide/3.ai",[313,317],{"title":314,"path":315,"stem":316,"titleTemplate":6},"MCP Server","/docs/3.x/guide/ai/mcp","docs/3.x/3.guide/3.ai/1.mcp",{"title":318,"path":319,"stem":320,"titleTemplate":6},"LLMs.txt","/docs/3.x/guide/ai/llms-txt","docs/3.x/3.guide/3.ai/2.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","/docs/3.x/guide/modules","docs/3.x/3.guide/4.modules",[328,332,336,340,344,348,352],{"title":329,"path":330,"stem":331,"titleTemplate":6},"Create Your First Module","/docs/3.x/guide/modules/getting-started","docs/3.x/3.guide/4.modules/1.getting-started",{"title":333,"path":334,"stem":335,"titleTemplate":6},"Understand Module Structure","/docs/3.x/guide/modules/module-anatomy","docs/3.x/3.guide/4.modules/2.module-anatomy",{"title":337,"path":338,"stem":339,"titleTemplate":6},"Add Plugins, Components & More","/docs/3.x/guide/modules/recipes-basics","docs/3.x/3.guide/4.modules/3.recipes-basics",{"title":341,"path":342,"stem":343,"titleTemplate":6},"Use Hooks & Extend Types","/docs/3.x/guide/modules/recipes-advanced","docs/3.x/3.guide/4.modules/4.recipes-advanced",{"title":345,"path":346,"stem":347,"titleTemplate":6},"Test Your Module","/docs/3.x/guide/modules/testing","docs/3.x/3.guide/4.modules/5.testing",{"title":349,"path":350,"stem":351,"titleTemplate":6},"Follow Best Practices","/docs/3.x/guide/modules/best-practices","docs/3.x/3.guide/4.modules/6.best-practices",{"title":353,"path":354,"stem":355,"titleTemplate":6},"Publish & Share Your Module","/docs/3.x/guide/modules/ecosystem","docs/3.x/3.guide/4.modules/7.ecosystem",{"title":357,"titleTemplate":358,"icon":359,"path":360,"stem":361,"children":362,"page":108},"Recipes","%s · Recipes","i-lucide-cooking-pot","/docs/3.x/guide/recipes","docs/3.x/3.guide/5.recipes",[363,367,371,375],{"title":364,"path":365,"stem":366,"titleTemplate":6},"Custom Routing","/docs/3.x/guide/recipes/custom-routing","docs/3.x/3.guide/5.recipes/1.custom-routing",{"title":368,"path":369,"stem":370,"titleTemplate":6},"Vite Plugins","/docs/3.x/guide/recipes/vite-plugin","docs/3.x/3.guide/5.recipes/2.vite-plugin",{"title":372,"path":373,"stem":374,"titleTemplate":6},"Custom useFetch","/docs/3.x/guide/recipes/custom-usefetch","docs/3.x/3.guide/5.recipes/3.custom-usefetch",{"title":376,"path":377,"stem":378,"titleTemplate":6},"Sessions and Authentication","/docs/3.x/guide/recipes/sessions-and-authentication","docs/3.x/3.guide/5.recipes/4.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","/docs/3.x/guide/going-further","docs/3.x/3.guide/6.going-further",[386,390,394,398,402,406,410,414,418,422],{"title":387,"path":388,"stem":389,"titleTemplate":6},"Custom Events","/docs/3.x/guide/going-further/events","docs/3.x/3.guide/6.going-further/1.events",{"title":391,"path":392,"stem":393,"titleTemplate":6},"Experimental Features","/docs/3.x/guide/going-further/experimental-features","docs/3.x/3.guide/6.going-further/1.experimental-features",{"title":395,"path":396,"stem":397,"titleTemplate":6},"Features","/docs/3.x/guide/going-further/features","docs/3.x/3.guide/6.going-further/1.features",{"title":399,"path":400,"stem":401,"titleTemplate":6},"Runtime Config","/docs/3.x/guide/going-further/runtime-config","docs/3.x/3.guide/6.going-further/10.runtime-config",{"title":403,"path":404,"stem":405,"titleTemplate":6},"Nightly Release Channel","/docs/3.x/guide/going-further/nightly-release-channel","docs/3.x/3.guide/6.going-further/11.nightly-release-channel",{"title":407,"path":408,"stem":409,"titleTemplate":6},"Lifecycle Hooks","/docs/3.x/guide/going-further/hooks","docs/3.x/3.guide/6.going-further/2.hooks",{"title":411,"path":412,"stem":413,"titleTemplate":6},"Nuxt Kit","/docs/3.x/guide/going-further/kit","docs/3.x/3.guide/6.going-further/4.kit",{"title":415,"path":416,"stem":417,"titleTemplate":6},"NuxtApp","/docs/3.x/guide/going-further/nuxt-app","docs/3.x/3.guide/6.going-further/6.nuxt-app",{"title":419,"path":420,"stem":421,"titleTemplate":6},"Authoring Nuxt Layers","/docs/3.x/guide/going-further/layers","docs/3.x/3.guide/6.going-further/7.layers",{"title":423,"path":424,"stem":425,"titleTemplate":6},"Debugging","/docs/3.x/guide/going-further/debugging","docs/3.x/3.guide/6.going-further/9.debugging",{"title":427,"titleTemplate":428,"icon":429,"path":430,"stem":431,"children":432,"page":108},"API","%s · Nuxt API","i-lucide-code-xml","/docs/3.x/api","docs/3.x/4.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","/docs/3.x/api/components","docs/3.x/4.api/1.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>","/docs/3.x/api/components/client-only","docs/3.x/4.api/1.components/1.client-only",{"title":444,"path":445,"stem":446,"titleTemplate":6},"\u003CDevOnly>","/docs/3.x/api/components/dev-only","docs/3.x/4.api/1.components/1.dev-only",{"title":448,"path":449,"stem":450,"titleTemplate":6},"\u003CNuxtClientFallback>","/docs/3.x/api/components/nuxt-client-fallback","docs/3.x/4.api/1.components/1.nuxt-client-fallback",{"title":452,"path":453,"stem":454,"titleTemplate":6},"\u003CNuxtPicture>","/docs/3.x/api/components/nuxt-picture","docs/3.x/4.api/1.components/10.nuxt-picture",{"title":456,"path":457,"stem":458,"titleTemplate":6},"\u003CTeleport>","/docs/3.x/api/components/teleports","docs/3.x/4.api/1.components/11.teleports",{"title":460,"path":461,"stem":462,"titleTemplate":6},"\u003CNuxtRouteAnnouncer>","/docs/3.x/api/components/nuxt-route-announcer","docs/3.x/4.api/1.components/12.nuxt-route-announcer",{"title":464,"path":465,"stem":466,"titleTemplate":6},"\u003CNuxtTime>","/docs/3.x/api/components/nuxt-time","docs/3.x/4.api/1.components/13.nuxt-time",{"title":468,"path":469,"stem":470,"titleTemplate":6},"\u003CNuxtPage>","/docs/3.x/api/components/nuxt-page","docs/3.x/4.api/1.components/2.nuxt-page",{"title":472,"path":473,"stem":474,"titleTemplate":6},"\u003CNuxtLayout>","/docs/3.x/api/components/nuxt-layout","docs/3.x/4.api/1.components/3.nuxt-layout",{"title":476,"path":477,"stem":478,"titleTemplate":6},"\u003CNuxtLink>","/docs/3.x/api/components/nuxt-link","docs/3.x/4.api/1.components/4.nuxt-link",{"title":480,"path":481,"stem":482,"titleTemplate":6},"\u003CNuxtLoadingIndicator>","/docs/3.x/api/components/nuxt-loading-indicator","docs/3.x/4.api/1.components/5.nuxt-loading-indicator",{"title":484,"path":485,"stem":486,"titleTemplate":6},"\u003CNuxtErrorBoundary>","/docs/3.x/api/components/nuxt-error-boundary","docs/3.x/4.api/1.components/6.nuxt-error-boundary",{"title":488,"path":489,"stem":490,"titleTemplate":6},"\u003CNuxtWelcome>","/docs/3.x/api/components/nuxt-welcome","docs/3.x/4.api/1.components/7.nuxt-welcome",{"title":492,"path":493,"stem":494,"titleTemplate":6},"\u003CNuxtIsland>","/docs/3.x/api/components/nuxt-island","docs/3.x/4.api/1.components/8.nuxt-island",{"title":496,"path":497,"stem":498,"titleTemplate":6},"\u003CNuxtImg>","/docs/3.x/api/components/nuxt-img","docs/3.x/4.api/1.components/9.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","/docs/3.x/api/composables","docs/3.x/4.api/2.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","/docs/3.x/api/composables/on-prehydrate","docs/3.x/4.api/2.composables/on-prehydrate",{"title":511,"path":512,"stem":513,"titleTemplate":6},"useAppConfig","/docs/3.x/api/composables/use-app-config","docs/3.x/4.api/2.composables/use-app-config",{"title":515,"path":516,"stem":517,"titleTemplate":6},"useAsyncData","/docs/3.x/api/composables/use-async-data","docs/3.x/4.api/2.composables/use-async-data",{"title":519,"path":520,"stem":521,"titleTemplate":6},"useCookie","/docs/3.x/api/composables/use-cookie","docs/3.x/4.api/2.composables/use-cookie",{"title":523,"path":524,"stem":525,"titleTemplate":6},"useError","/docs/3.x/api/composables/use-error","docs/3.x/4.api/2.composables/use-error",{"title":527,"path":528,"stem":529,"titleTemplate":6},"useFetch","/docs/3.x/api/composables/use-fetch","docs/3.x/4.api/2.composables/use-fetch",{"title":531,"path":532,"stem":533,"titleTemplate":6},"useHead","/docs/3.x/api/composables/use-head","docs/3.x/4.api/2.composables/use-head",{"title":535,"path":536,"stem":537,"titleTemplate":6},"useHeadSafe","/docs/3.x/api/composables/use-head-safe","docs/3.x/4.api/2.composables/use-head-safe",{"title":539,"path":540,"stem":541,"titleTemplate":6},"useHydration","/docs/3.x/api/composables/use-hydration","docs/3.x/4.api/2.composables/use-hydration",{"title":543,"path":544,"stem":545,"titleTemplate":6},"useLazyAsyncData","/docs/3.x/api/composables/use-lazy-async-data","docs/3.x/4.api/2.composables/use-lazy-async-data",{"title":547,"path":548,"stem":549,"titleTemplate":6},"useLazyFetch","/docs/3.x/api/composables/use-lazy-fetch","docs/3.x/4.api/2.composables/use-lazy-fetch",{"title":551,"path":552,"stem":553,"titleTemplate":6},"useLoadingIndicator","/docs/3.x/api/composables/use-loading-indicator","docs/3.x/4.api/2.composables/use-loading-indicator",{"title":555,"path":556,"stem":557,"titleTemplate":6},"useNuxtApp","/docs/3.x/api/composables/use-nuxt-app","docs/3.x/4.api/2.composables/use-nuxt-app",{"title":559,"path":560,"stem":561,"titleTemplate":6},"useNuxtData","/docs/3.x/api/composables/use-nuxt-data","docs/3.x/4.api/2.composables/use-nuxt-data",{"title":563,"path":564,"stem":565,"titleTemplate":6},"usePreviewMode","/docs/3.x/api/composables/use-preview-mode","docs/3.x/4.api/2.composables/use-preview-mode",{"title":567,"path":568,"stem":569,"titleTemplate":6},"useRequestEvent","/docs/3.x/api/composables/use-request-event","docs/3.x/4.api/2.composables/use-request-event",{"title":571,"path":572,"stem":573,"titleTemplate":6},"useRequestFetch","/docs/3.x/api/composables/use-request-fetch","docs/3.x/4.api/2.composables/use-request-fetch",{"title":575,"path":576,"stem":577,"titleTemplate":6},"useRequestHeader","/docs/3.x/api/composables/use-request-header","docs/3.x/4.api/2.composables/use-request-header",{"title":579,"path":580,"stem":581,"titleTemplate":6},"useRequestHeaders","/docs/3.x/api/composables/use-request-headers","docs/3.x/4.api/2.composables/use-request-headers",{"title":583,"path":584,"stem":585,"titleTemplate":6},"useRequestURL","/docs/3.x/api/composables/use-request-url","docs/3.x/4.api/2.composables/use-request-url",{"title":587,"path":588,"stem":589,"titleTemplate":6},"useResponseHeader","/docs/3.x/api/composables/use-response-header","docs/3.x/4.api/2.composables/use-response-header",{"title":591,"path":592,"stem":593,"titleTemplate":6},"useRoute","/docs/3.x/api/composables/use-route","docs/3.x/4.api/2.composables/use-route",{"title":595,"path":596,"stem":597,"titleTemplate":6},"useRouteAnnouncer","/docs/3.x/api/composables/use-route-announcer","docs/3.x/4.api/2.composables/use-route-announcer",{"title":599,"path":600,"stem":601,"titleTemplate":6},"useRouter","/docs/3.x/api/composables/use-router","docs/3.x/4.api/2.composables/use-router",{"title":603,"path":604,"stem":605,"titleTemplate":6},"useRuntimeConfig","/docs/3.x/api/composables/use-runtime-config","docs/3.x/4.api/2.composables/use-runtime-config",{"title":607,"path":608,"stem":609,"titleTemplate":6},"useRuntimeHook","/docs/3.x/api/composables/use-runtime-hook","docs/3.x/4.api/2.composables/use-runtime-hook",{"title":611,"path":612,"stem":613,"titleTemplate":6},"useSeoMeta","/docs/3.x/api/composables/use-seo-meta","docs/3.x/4.api/2.composables/use-seo-meta",{"title":615,"path":616,"stem":617,"titleTemplate":6},"useServerSeoMeta","/docs/3.x/api/composables/use-server-seo-meta","docs/3.x/4.api/2.composables/use-server-seo-meta",{"title":619,"path":620,"stem":621,"titleTemplate":6},"useState","/docs/3.x/api/composables/use-state","docs/3.x/4.api/2.composables/use-state",{"title":623,"titleTemplate":624,"icon":625,"path":626,"stem":627,"children":628,"page":108},"Utils","%s · Nuxt Utils","i-lucide-square-function","/docs/3.x/api/utils","docs/3.x/4.api/3.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","/docs/3.x/api/utils/dollarfetch","docs/3.x/4.api/3.utils/$fetch",{"title":634,"path":635,"stem":636,"titleTemplate":6},"abortNavigation","/docs/3.x/api/utils/abort-navigation","docs/3.x/4.api/3.utils/abort-navigation",{"title":638,"path":639,"stem":640,"titleTemplate":6},"addRouteMiddleware","/docs/3.x/api/utils/add-route-middleware","docs/3.x/4.api/3.utils/add-route-middleware",{"title":642,"path":643,"stem":644,"titleTemplate":6},"callOnce","/docs/3.x/api/utils/call-once","docs/3.x/4.api/3.utils/call-once",{"title":646,"path":647,"stem":648,"titleTemplate":6},"clearError","/docs/3.x/api/utils/clear-error","docs/3.x/4.api/3.utils/clear-error",{"title":650,"path":651,"stem":652,"titleTemplate":6},"clearNuxtData","/docs/3.x/api/utils/clear-nuxt-data","docs/3.x/4.api/3.utils/clear-nuxt-data",{"title":654,"path":655,"stem":656,"titleTemplate":6},"clearNuxtState","/docs/3.x/api/utils/clear-nuxt-state","docs/3.x/4.api/3.utils/clear-nuxt-state",{"title":658,"path":659,"stem":660,"titleTemplate":6},"createError","/docs/3.x/api/utils/create-error","docs/3.x/4.api/3.utils/create-error",{"title":662,"path":663,"stem":664,"titleTemplate":6},"defineLazyHydrationComponent","/docs/3.x/api/utils/define-lazy-hydration-component","docs/3.x/4.api/3.utils/define-lazy-hydration-component",{"title":666,"path":667,"stem":668,"titleTemplate":6},"defineNuxtComponent","/docs/3.x/api/utils/define-nuxt-component","docs/3.x/4.api/3.utils/define-nuxt-component",{"title":670,"path":671,"stem":672,"titleTemplate":6},"defineNuxtPlugin","/docs/3.x/api/utils/define-nuxt-plugin","docs/3.x/4.api/3.utils/define-nuxt-plugin",{"title":674,"path":675,"stem":676,"titleTemplate":6},"defineNuxtRouteMiddleware","/docs/3.x/api/utils/define-nuxt-route-middleware","docs/3.x/4.api/3.utils/define-nuxt-route-middleware",{"title":678,"path":679,"stem":680,"titleTemplate":6},"definePageMeta","/docs/3.x/api/utils/define-page-meta","docs/3.x/4.api/3.utils/define-page-meta",{"title":682,"path":683,"stem":684,"titleTemplate":6},"defineRouteRules","/docs/3.x/api/utils/define-route-rules","docs/3.x/4.api/3.utils/define-route-rules",{"title":686,"path":687,"stem":688,"titleTemplate":6},"navigateTo","/docs/3.x/api/utils/navigate-to","docs/3.x/4.api/3.utils/navigate-to",{"title":690,"path":691,"stem":692,"titleTemplate":6},"onBeforeRouteLeave","/docs/3.x/api/utils/on-before-route-leave","docs/3.x/4.api/3.utils/on-before-route-leave",{"title":694,"path":695,"stem":696,"titleTemplate":6},"onBeforeRouteUpdate","/docs/3.x/api/utils/on-before-route-update","docs/3.x/4.api/3.utils/on-before-route-update",{"title":698,"path":699,"stem":700,"titleTemplate":6},"onNuxtReady","/docs/3.x/api/utils/on-nuxt-ready","docs/3.x/4.api/3.utils/on-nuxt-ready",{"title":702,"path":703,"stem":704,"titleTemplate":6},"prefetchComponents","/docs/3.x/api/utils/prefetch-components","docs/3.x/4.api/3.utils/prefetch-components",{"title":706,"path":707,"stem":708,"titleTemplate":6},"preloadComponents","/docs/3.x/api/utils/preload-components","docs/3.x/4.api/3.utils/preload-components",{"title":710,"path":711,"stem":712,"titleTemplate":6},"preloadRouteComponents","/docs/3.x/api/utils/preload-route-components","docs/3.x/4.api/3.utils/preload-route-components",{"title":714,"path":715,"stem":716,"titleTemplate":6},"prerenderRoutes","/docs/3.x/api/utils/prerender-routes","docs/3.x/4.api/3.utils/prerender-routes",{"title":718,"path":719,"stem":720,"titleTemplate":6},"refreshCookie","/docs/3.x/api/utils/refresh-cookie","docs/3.x/4.api/3.utils/refresh-cookie",{"title":722,"path":723,"stem":724,"titleTemplate":6},"refreshNuxtData","/docs/3.x/api/utils/refresh-nuxt-data","docs/3.x/4.api/3.utils/refresh-nuxt-data",{"title":726,"path":727,"stem":728,"titleTemplate":6},"reloadNuxtApp","/docs/3.x/api/utils/reload-nuxt-app","docs/3.x/4.api/3.utils/reload-nuxt-app",{"title":730,"path":731,"stem":732,"titleTemplate":6},"setPageLayout","/docs/3.x/api/utils/set-page-layout","docs/3.x/4.api/3.utils/set-page-layout",{"title":734,"path":735,"stem":736,"titleTemplate":6},"setResponseStatus","/docs/3.x/api/utils/set-response-status","docs/3.x/4.api/3.utils/set-response-status",{"title":738,"path":739,"stem":740,"titleTemplate":6},"showError","/docs/3.x/api/utils/show-error","docs/3.x/4.api/3.utils/show-error",{"title":742,"path":743,"stem":744,"titleTemplate":6},"updateAppConfig","/docs/3.x/api/utils/update-app-config","docs/3.x/4.api/3.utils/update-app-config",{"title":746,"titleTemplate":747,"icon":748,"path":749,"stem":750,"children":751,"page":108},"Commands","%s · Nuxt Commands","i-lucide-square-terminal","/docs/3.x/api/commands","docs/3.x/4.api/4.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","/docs/3.x/api/commands/add","docs/3.x/4.api/4.commands/add",{"title":757,"path":758,"stem":759,"titleTemplate":6},"nuxt analyze","/docs/3.x/api/commands/analyze","docs/3.x/4.api/4.commands/analyze",{"title":761,"path":762,"stem":763,"titleTemplate":6},"nuxt build","/docs/3.x/api/commands/build","docs/3.x/4.api/4.commands/build",{"title":765,"path":766,"stem":767,"titleTemplate":6},"nuxt build-module","/docs/3.x/api/commands/build-module","docs/3.x/4.api/4.commands/build-module",{"title":769,"path":770,"stem":771,"titleTemplate":6},"nuxt cleanup","/docs/3.x/api/commands/cleanup","docs/3.x/4.api/4.commands/cleanup",{"title":773,"path":774,"stem":775,"titleTemplate":6},"nuxt dev","/docs/3.x/api/commands/dev","docs/3.x/4.api/4.commands/dev",{"title":777,"path":778,"stem":779,"titleTemplate":6},"nuxt devtools","/docs/3.x/api/commands/devtools","docs/3.x/4.api/4.commands/devtools",{"title":781,"path":782,"stem":783,"titleTemplate":6},"nuxt generate","/docs/3.x/api/commands/generate","docs/3.x/4.api/4.commands/generate",{"title":785,"path":786,"stem":787,"titleTemplate":6},"nuxt info","/docs/3.x/api/commands/info","docs/3.x/4.api/4.commands/info",{"title":789,"path":790,"stem":791,"titleTemplate":6},"create nuxt","/docs/3.x/api/commands/init","docs/3.x/4.api/4.commands/init",{"title":793,"path":794,"stem":795,"titleTemplate":6},"nuxt module","/docs/3.x/api/commands/module","docs/3.x/4.api/4.commands/module",{"title":797,"path":798,"stem":799,"titleTemplate":6},"nuxt prepare","/docs/3.x/api/commands/prepare","docs/3.x/4.api/4.commands/prepare",{"title":801,"path":802,"stem":803,"titleTemplate":6},"nuxt preview","/docs/3.x/api/commands/preview","docs/3.x/4.api/4.commands/preview",{"title":805,"path":806,"stem":807,"titleTemplate":6},"nuxt test","/docs/3.x/api/commands/test","docs/3.x/4.api/4.commands/test",{"title":809,"path":810,"stem":811,"titleTemplate":6},"nuxt typecheck","/docs/3.x/api/commands/typecheck","docs/3.x/4.api/4.commands/typecheck",{"title":813,"path":814,"stem":815,"titleTemplate":6},"nuxt upgrade","/docs/3.x/api/commands/upgrade","docs/3.x/4.api/4.commands/upgrade",{"title":411,"titleTemplate":817,"icon":818,"path":819,"stem":820,"children":821,"page":108},"%s · Nuxt Kit","i-lucide-package","/docs/3.x/api/kit","docs/3.x/4.api/5.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},"/docs/3.x/api/kit/modules","docs/3.x/4.api/5.kit/1.modules",{"title":399,"path":826,"stem":827,"titleTemplate":6},"/docs/3.x/api/kit/runtime-config","docs/3.x/4.api/5.kit/10.runtime-config",{"title":829,"path":830,"stem":831,"titleTemplate":6},"Templates","/docs/3.x/api/kit/templates","docs/3.x/4.api/5.kit/10.templates",{"title":833,"path":834,"stem":835,"titleTemplate":6},"Nitro","/docs/3.x/api/kit/nitro","docs/3.x/4.api/5.kit/11.nitro",{"title":837,"path":838,"stem":839,"titleTemplate":6},"Resolving","/docs/3.x/api/kit/resolving","docs/3.x/4.api/5.kit/12.resolving",{"title":841,"path":842,"stem":843,"titleTemplate":6},"Logging","/docs/3.x/api/kit/logging","docs/3.x/4.api/5.kit/13.logging",{"title":845,"path":846,"stem":847,"titleTemplate":6},"Builder","/docs/3.x/api/kit/builder","docs/3.x/4.api/5.kit/14.builder",{"title":849,"path":850,"stem":851,"titleTemplate":6},"Examples","/docs/3.x/api/kit/examples","docs/3.x/4.api/5.kit/15.examples",{"title":84,"path":853,"stem":854,"titleTemplate":6},"/docs/3.x/api/kit/layers","docs/3.x/4.api/5.kit/16.layers",{"title":856,"path":857,"stem":858,"titleTemplate":6},"Programmatic Usage","/docs/3.x/api/kit/programmatic","docs/3.x/4.api/5.kit/2.programmatic",{"title":860,"path":861,"stem":862,"titleTemplate":6},"Compatibility","/docs/3.x/api/kit/compatibility","docs/3.x/4.api/5.kit/3.compatibility",{"title":268,"path":864,"stem":865,"titleTemplate":6},"/docs/3.x/api/kit/autoimports","docs/3.x/4.api/5.kit/4.autoimports",{"title":434,"path":867,"stem":868,"titleTemplate":6},"/docs/3.x/api/kit/components","docs/3.x/4.api/5.kit/5.components",{"title":870,"path":871,"stem":872,"titleTemplate":6},"Context","/docs/3.x/api/kit/context","docs/3.x/4.api/5.kit/6.context",{"title":874,"path":875,"stem":876,"titleTemplate":6},"Pages","/docs/3.x/api/kit/pages","docs/3.x/4.api/5.kit/7.pages",{"title":878,"path":879,"stem":880,"titleTemplate":6},"Layout","/docs/3.x/api/kit/layout","docs/3.x/4.api/5.kit/8.layout",{"title":882,"path":883,"stem":884,"titleTemplate":6},"Head","/docs/3.x/api/kit/head","docs/3.x/4.api/5.kit/9.head",{"title":886,"path":887,"stem":888,"titleTemplate":6},"Plugins","/docs/3.x/api/kit/plugins","docs/3.x/4.api/5.kit/9.plugins",{"title":890,"titleTemplate":6,"icon":891,"path":892,"stem":893,"children":894,"page":108},"Advanced","i-lucide-brain","/docs/3.x/api/advanced","docs/3.x/4.api/6.advanced",[895,898],{"title":407,"path":896,"stem":897,"titleTemplate":6},"/docs/3.x/api/advanced/hooks","docs/3.x/4.api/6.advanced/1.hooks",{"title":899,"path":900,"stem":901,"titleTemplate":6},"Import meta","/docs/3.x/api/advanced/import-meta","docs/3.x/4.api/6.advanced/2.import-meta",{"title":903,"path":904,"stem":905,"titleTemplate":906,"icon":32},"Nuxt Configuration","/docs/3.x/api/nuxt-config","docs/3.x/4.api/6.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","/docs/3.x/examples","docs/3.x/4.examples",[913,917,939,954,990],{"title":914,"path":915,"stem":916,"titleTemplate":6},"Hello World","/docs/3.x/examples/hello-world","docs/3.x/4.examples/0.hello-world",{"title":395,"path":918,"stem":919,"children":920,"page":108},"/docs/3.x/examples/features","docs/3.x/4.examples/1.features",[921,925,928,931,935],{"title":922,"path":923,"stem":924,"titleTemplate":6},"Auto Imports","/docs/3.x/examples/features/auto-imports","docs/3.x/4.examples/1.features/1.auto-imports",{"title":64,"path":926,"stem":927,"titleTemplate":6},"/docs/3.x/examples/features/data-fetching","docs/3.x/4.examples/1.features/2.data-fetching",{"title":69,"path":929,"stem":930,"titleTemplate":6},"/docs/3.x/examples/features/state-management","docs/3.x/4.examples/1.features/3.state-management",{"title":932,"path":933,"stem":934,"titleTemplate":6},"Meta Tags","/docs/3.x/examples/features/meta-tags","docs/3.x/4.examples/1.features/4.meta-tags",{"title":936,"path":937,"stem":938,"titleTemplate":6},"Layouts","/docs/3.x/examples/features/layouts","docs/3.x/4.examples/1.features/5.layouts",{"title":49,"path":940,"stem":941,"children":942,"page":108},"/docs/3.x/examples/routing","docs/3.x/4.examples/2.routing",[943,947,950],{"title":944,"path":945,"stem":946,"titleTemplate":6},"Middleware","/docs/3.x/examples/routing/middleware","docs/3.x/4.examples/2.routing/middleware",{"title":874,"path":948,"stem":949,"titleTemplate":6},"/docs/3.x/examples/routing/pages","docs/3.x/4.examples/2.routing/pages",{"title":951,"path":952,"stem":953,"titleTemplate":6},"Universal Router","/docs/3.x/examples/routing/universal-router","docs/3.x/4.examples/2.routing/universal-router",{"title":890,"path":955,"stem":956,"children":957,"page":108},"/docs/3.x/examples/advanced","docs/3.x/4.examples/4.advanced",[958,961,964,968,972,976,980,983,986],{"title":84,"path":959,"stem":960,"titleTemplate":6},"/docs/3.x/examples/advanced/config-extends","docs/3.x/4.examples/4.advanced/config-extends",{"title":74,"path":962,"stem":963,"titleTemplate":6},"/docs/3.x/examples/advanced/error-handling","docs/3.x/4.examples/4.advanced/error-handling",{"title":965,"path":966,"stem":967,"titleTemplate":6},"JSX / TSX","/docs/3.x/examples/advanced/jsx","docs/3.x/4.examples/4.advanced/jsx",{"title":969,"path":970,"stem":971,"titleTemplate":6},"Locale","/docs/3.x/examples/advanced/locale","docs/3.x/4.examples/4.advanced/locale",{"title":973,"path":974,"stem":975,"titleTemplate":6},"Module Extend Pages","/docs/3.x/examples/advanced/module-extend-pages","docs/3.x/4.examples/4.advanced/module-extend-pages",{"title":977,"path":978,"stem":979,"titleTemplate":6},"Teleport","/docs/3.x/examples/advanced/teleport","docs/3.x/4.examples/4.advanced/teleport",{"title":99,"path":981,"stem":982,"titleTemplate":6},"/docs/3.x/examples/advanced/testing","docs/3.x/4.examples/4.advanced/testing",{"title":519,"path":984,"stem":985,"titleTemplate":6},"/docs/3.x/examples/advanced/use-cookie","docs/3.x/4.examples/4.advanced/use-cookie",{"title":987,"path":988,"stem":989,"titleTemplate":6},"Use Custom Fetch Composable","/docs/3.x/examples/advanced/use-custom-fetch-composable","docs/3.x/4.examples/4.advanced/use-custom-fetch-composable",{"title":991,"path":992,"stem":993,"children":994,"page":108},"Experimental","/docs/3.x/examples/experimental","docs/3.x/4.examples/7.experimental",[995],{"title":996,"path":997,"stem":998,"titleTemplate":6},"WASM","/docs/3.x/examples/experimental/wasm","docs/3.x/4.examples/7.experimental/wasm",{"title":1000,"titleTemplate":1001,"icon":1002,"path":1003,"stem":1004,"children":1005,"page":108},"Community","%s · Nuxt Community","i-lucide-messages-square","/docs/3.x/community","docs/3.x/5.community",[1006,1011,1016,1021,1026,1031],{"title":1007,"path":1008,"stem":1009,"titleTemplate":6,"icon":1010},"Getting Help","/docs/3.x/community/getting-help","docs/3.x/5.community/2.getting-help","i-lucide-life-buoy",{"title":1012,"path":1013,"stem":1014,"titleTemplate":6,"icon":1015},"Reporting Bugs","/docs/3.x/community/reporting-bugs","docs/3.x/5.community/3.reporting-bugs","i-lucide-bug",{"title":1017,"path":1018,"stem":1019,"titleTemplate":6,"icon":1020},"Contribution","/docs/3.x/community/contribution","docs/3.x/5.community/4.contribution","i-lucide-git-pull-request",{"title":1022,"path":1023,"stem":1024,"titleTemplate":6,"icon":1025},"Framework","/docs/3.x/community/framework-contribution","docs/3.x/5.community/5.framework-contribution","i-lucide-github",{"title":1027,"path":1028,"stem":1029,"titleTemplate":6,"icon":1030},"Roadmap","/docs/3.x/community/roadmap","docs/3.x/5.community/6.roadmap","i-lucide-map",{"title":1032,"path":1033,"stem":1034,"titleTemplate":6,"icon":1035},"Releases","/docs/3.x/community/changelog","docs/3.x/5.community/7.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","/docs/3.x/bridge","docs/3.x/6.bridge",[1043,1047,1050,1053,1057,1061,1065,1068,1071,1074],{"title":1044,"path":1045,"stem":1046,"titleTemplate":6},"Overview","/docs/3.x/bridge/overview","docs/3.x/6.bridge/1.overview",{"title":29,"path":1048,"stem":1049,"titleTemplate":6},"/docs/3.x/bridge/configuration","docs/3.x/6.bridge/10.configuration",{"title":280,"path":1051,"stem":1052,"titleTemplate":6},"/docs/3.x/bridge/typescript","docs/3.x/6.bridge/2.typescript",{"title":1054,"path":1055,"stem":1056,"titleTemplate":6},"Legacy Composition API","/docs/3.x/bridge/bridge-composition-api","docs/3.x/6.bridge/3.bridge-composition-api",{"title":1058,"path":1059,"stem":1060,"titleTemplate":6},"Plugins and Middleware","/docs/3.x/bridge/plugins-and-middleware","docs/3.x/6.bridge/4.plugins-and-middleware",{"title":1062,"path":1063,"stem":1064,"titleTemplate":6},"New Composition API","/docs/3.x/bridge/nuxt3-compatible-api","docs/3.x/6.bridge/5.nuxt3-compatible-api",{"title":932,"path":1066,"stem":1067,"titleTemplate":6},"/docs/3.x/bridge/meta","docs/3.x/6.bridge/6.meta",{"title":399,"path":1069,"stem":1070,"titleTemplate":6},"/docs/3.x/bridge/runtime-config","docs/3.x/6.bridge/7.runtime-config",{"title":833,"path":1072,"stem":1073,"titleTemplate":6},"/docs/3.x/bridge/nitro","docs/3.x/6.bridge/8.nitro",{"title":1075,"path":1076,"stem":1077,"titleTemplate":6},"Vite","/docs/3.x/bridge/vite","docs/3.x/6.bridge/9.vite",{"title":1079,"titleTemplate":1080,"icon":107,"path":1081,"stem":1082,"children":1083,"page":108},"Migrate to Nuxt 3","Migrate to Nuxt 3: %s","/docs/3.x/migration","docs/3.x/7.migration",[1084,1087,1091,1094,1097,1100,1103,1106,1109,1113,1117],{"title":1044,"path":1085,"stem":1086,"titleTemplate":6},"/docs/3.x/migration/overview","docs/3.x/7.migration/1.overview",{"title":1088,"path":1089,"stem":1090,"titleTemplate":6},"Build Tooling","/docs/3.x/migration/bundling","docs/3.x/7.migration/10.bundling",{"title":79,"path":1092,"stem":1093,"titleTemplate":6},"/docs/3.x/migration/server","docs/3.x/7.migration/11.server",{"title":29,"path":1095,"stem":1096,"titleTemplate":6},"/docs/3.x/migration/configuration","docs/3.x/7.migration/2.configuration",{"title":276,"path":1098,"stem":1099,"titleTemplate":6},"/docs/3.x/migration/module-authors","docs/3.x/7.migration/20.module-authors",{"title":922,"path":1101,"stem":1102,"titleTemplate":6},"/docs/3.x/migration/auto-imports","docs/3.x/7.migration/3.auto-imports",{"title":932,"path":1104,"stem":1105,"titleTemplate":6},"/docs/3.x/migration/meta","docs/3.x/7.migration/4.meta",{"title":1058,"path":1107,"stem":1108,"titleTemplate":6},"/docs/3.x/migration/plugins-and-middleware","docs/3.x/7.migration/5.plugins-and-middleware",{"title":1110,"path":1111,"stem":1112,"titleTemplate":6},"Pages and Layouts","/docs/3.x/migration/pages-and-layouts","docs/3.x/7.migration/6.pages-and-layouts",{"title":1114,"path":1115,"stem":1116,"titleTemplate":6},"Component Options","/docs/3.x/migration/component-options","docs/3.x/7.migration/7.component-options",{"title":399,"path":1118,"stem":1119,"titleTemplate":6},"/docs/3.x/migration/runtime-config","docs/3.x/7.migration/8.runtime-config",{"title":5,"titleTemplate":6,"icon":7,"path":1121,"stem":1122,"children":1123,"page":108},"/docs/4.x","docs/4.x",[1124,1182,1276,1403,1761,1838,1860,1894],{"title":12,"titleTemplate":13,"icon":14,"path":1125,"stem":1126,"children":1127,"page":108},"/docs/4.x/getting-started","docs/4.x/1.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},"/docs/4.x/getting-started/introduction","docs/4.x/1.getting-started/01.introduction",{"title":24,"path":1132,"stem":1133,"titleTemplate":6,"icon":27},"/docs/4.x/getting-started/installation","docs/4.x/1.getting-started/02.installation",{"title":29,"path":1135,"stem":1136,"titleTemplate":6,"icon":32},"/docs/4.x/getting-started/configuration","docs/4.x/1.getting-started/03.configuration",{"title":34,"path":1138,"stem":1139,"titleTemplate":6,"icon":37},"/docs/4.x/getting-started/views","docs/4.x/1.getting-started/04.views",{"title":39,"path":1141,"stem":1142,"titleTemplate":6,"icon":42},"/docs/4.x/getting-started/assets","docs/4.x/1.getting-started/05.assets",{"title":44,"path":1144,"stem":1145,"titleTemplate":6,"icon":47},"/docs/4.x/getting-started/styling","docs/4.x/1.getting-started/06.styling",{"title":49,"path":1147,"stem":1148,"titleTemplate":6,"icon":52},"/docs/4.x/getting-started/routing","docs/4.x/1.getting-started/07.routing",{"title":54,"path":1150,"stem":1151,"titleTemplate":6,"icon":57},"/docs/4.x/getting-started/seo-meta","docs/4.x/1.getting-started/08.seo-meta",{"title":59,"path":1153,"stem":1154,"titleTemplate":6,"icon":62},"/docs/4.x/getting-started/transitions","docs/4.x/1.getting-started/09.transitions",{"title":64,"path":1156,"stem":1157,"titleTemplate":6,"icon":67},"/docs/4.x/getting-started/data-fetching","docs/4.x/1.getting-started/10.data-fetching",{"title":69,"path":1159,"stem":1160,"titleTemplate":6,"icon":72},"/docs/4.x/getting-started/state-management","docs/4.x/1.getting-started/11.state-management",{"title":74,"path":1162,"stem":1163,"titleTemplate":6,"icon":77},"/docs/4.x/getting-started/error-handling","docs/4.x/1.getting-started/12.error-handling",{"title":79,"path":1165,"stem":1166,"titleTemplate":6,"icon":82},"/docs/4.x/getting-started/server","docs/4.x/1.getting-started/13.server",{"title":84,"path":1168,"stem":1169,"titleTemplate":6,"icon":87},"/docs/4.x/getting-started/layers","docs/4.x/1.getting-started/14.layers",{"title":89,"path":1171,"stem":1172,"titleTemplate":6,"icon":92},"/docs/4.x/getting-started/prerendering","docs/4.x/1.getting-started/15.prerendering",{"title":94,"path":1174,"stem":1175,"titleTemplate":6,"icon":97},"/docs/4.x/getting-started/deployment","docs/4.x/1.getting-started/16.deployment",{"title":99,"path":1177,"stem":1178,"titleTemplate":6,"icon":102},"/docs/4.x/getting-started/testing","docs/4.x/1.getting-started/17.testing",{"title":104,"path":1180,"stem":1181,"titleTemplate":6,"icon":107},"/docs/4.x/getting-started/upgrade","docs/4.x/1.getting-started/18.upgrade",{"title":110,"titleTemplate":111,"icon":112,"path":1183,"stem":1184,"children":1185,"page":108},"/docs/4.x/directory-structure","docs/4.x/2.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},"/docs/4.x/directory-structure/nuxt","docs/4.x/2.directory-structure/0.nuxt",{"title":122,"path":1190,"stem":1191,"titleTemplate":6,"icon":125},"/docs/4.x/directory-structure/output","docs/4.x/2.directory-structure/0.output",{"title":1193,"titleTemplate":111,"head":1194,"defaultOpen":1196,"icon":1197,"path":1198,"stem":1199,"children":1200,"page":108},"app",{"title":1195},"app/",true,"i-vscode-icons-folder-type-app","/docs/4.x/directory-structure/app","docs/4.x/2.directory-structure/1.app",[1201,1204,1207,1210,1213,1216,1219,1222,1225,1228,1231],{"title":127,"path":1202,"stem":1203,"titleTemplate":6,"icon":130},"/docs/4.x/directory-structure/app/assets","docs/4.x/2.directory-structure/1.app/1.assets",{"title":132,"path":1205,"stem":1206,"titleTemplate":6,"icon":135},"/docs/4.x/directory-structure/app/components","docs/4.x/2.directory-structure/1.app/1.components",{"title":137,"path":1208,"stem":1209,"titleTemplate":6,"icon":140},"/docs/4.x/directory-structure/app/composables","docs/4.x/2.directory-structure/1.app/1.composables",{"title":152,"path":1211,"stem":1212,"titleTemplate":6,"icon":155},"/docs/4.x/directory-structure/app/layouts","docs/4.x/2.directory-structure/1.app/1.layouts",{"title":157,"path":1214,"stem":1215,"titleTemplate":6,"icon":160},"/docs/4.x/directory-structure/app/middleware","docs/4.x/2.directory-structure/1.app/1.middleware",{"title":171,"path":1217,"stem":1218,"titleTemplate":6,"icon":155},"/docs/4.x/directory-structure/app/pages","docs/4.x/2.directory-structure/1.app/1.pages",{"title":175,"path":1220,"stem":1221,"titleTemplate":6,"icon":178},"/docs/4.x/directory-structure/app/plugins","docs/4.x/2.directory-structure/1.app/1.plugins",{"title":195,"path":1223,"stem":1224,"titleTemplate":6,"icon":198},"/docs/4.x/directory-structure/app/utils","docs/4.x/2.directory-structure/1.app/1.utils",{"title":219,"path":1226,"stem":1227,"titleTemplate":6,"icon":222},"/docs/4.x/directory-structure/app/app","docs/4.x/2.directory-structure/1.app/3.app",{"title":224,"path":1229,"stem":1230,"titleTemplate":6,"icon":227},"/docs/4.x/directory-structure/app/app-config","docs/4.x/2.directory-structure/1.app/3.app-config",{"title":229,"path":1232,"stem":1233,"titleTemplate":6,"icon":222},"/docs/4.x/directory-structure/app/error","docs/4.x/2.directory-structure/1.app/3.error",{"title":142,"path":1235,"stem":1236,"titleTemplate":6,"icon":145},"/docs/4.x/directory-structure/content","docs/4.x/2.directory-structure/1.content",{"title":147,"path":1238,"stem":1239,"titleTemplate":6,"icon":150},"/docs/4.x/directory-structure/layers","docs/4.x/2.directory-structure/1.layers",{"title":162,"path":1241,"stem":1242,"titleTemplate":6,"icon":150},"/docs/4.x/directory-structure/modules","docs/4.x/2.directory-structure/1.modules",{"title":166,"path":1244,"stem":1245,"titleTemplate":6,"icon":169},"/docs/4.x/directory-structure/node_modules","docs/4.x/2.directory-structure/1.node_modules",{"title":180,"path":1247,"stem":1248,"titleTemplate":6,"icon":183},"/docs/4.x/directory-structure/public","docs/4.x/2.directory-structure/1.public",{"title":185,"path":1250,"stem":1251,"titleTemplate":6,"icon":188},"/docs/4.x/directory-structure/server","docs/4.x/2.directory-structure/1.server",{"title":190,"path":1253,"stem":1254,"titleTemplate":6,"icon":193},"/docs/4.x/directory-structure/shared","docs/4.x/2.directory-structure/1.shared",{"title":200,"path":1256,"stem":1257,"titleTemplate":6,"icon":203},"/docs/4.x/directory-structure/env","docs/4.x/2.directory-structure/2.env",{"title":205,"path":1259,"stem":1260,"titleTemplate":6,"icon":208},"/docs/4.x/directory-structure/gitignore","docs/4.x/2.directory-structure/2.gitignore",{"title":210,"path":1262,"stem":1263,"titleTemplate":6,"icon":213},"/docs/4.x/directory-structure/nuxtignore","docs/4.x/2.directory-structure/2.nuxtignore",{"title":215,"path":1265,"stem":1266,"titleTemplate":6,"icon":213},"/docs/4.x/directory-structure/nuxtrc","docs/4.x/2.directory-structure/2.nuxtrc",{"title":233,"path":1268,"stem":1269,"titleTemplate":6,"icon":213},"/docs/4.x/directory-structure/nuxt-config","docs/4.x/2.directory-structure/3.nuxt-config",{"title":237,"path":1271,"stem":1272,"titleTemplate":6,"icon":240},"/docs/4.x/directory-structure/package","docs/4.x/2.directory-structure/3.package",{"title":242,"path":1274,"stem":1275,"titleTemplate":6,"icon":245},"/docs/4.x/directory-structure/tsconfig","docs/4.x/2.directory-structure/3.tsconfig",{"title":247,"titleTemplate":6,"icon":248,"path":1277,"stem":1278,"children":1279,"page":108},"/docs/4.x/guide","docs/4.x/3.guide",[1280,1305,1318,1328,1353,1369],{"title":253,"titleTemplate":254,"icon":255,"path":1281,"stem":1282,"children":1283,"page":108},"/docs/4.x/guide/concepts","docs/4.x/3.guide/1.concepts",[1284,1287,1290,1293,1296,1299,1302],{"title":260,"path":1285,"stem":1286,"titleTemplate":6},"/docs/4.x/guide/concepts/rendering","docs/4.x/3.guide/1.concepts/1.rendering",{"title":264,"path":1288,"stem":1289,"titleTemplate":6},"/docs/4.x/guide/concepts/nuxt-lifecycle","docs/4.x/3.guide/1.concepts/2.nuxt-lifecycle",{"title":268,"path":1291,"stem":1292,"titleTemplate":6},"/docs/4.x/guide/concepts/auto-imports","docs/4.x/3.guide/1.concepts/3.auto-imports",{"title":272,"path":1294,"stem":1295,"titleTemplate":6},"/docs/4.x/guide/concepts/server-engine","docs/4.x/3.guide/1.concepts/4.server-engine",{"title":276,"path":1297,"stem":1298,"titleTemplate":6},"/docs/4.x/guide/concepts/modules","docs/4.x/3.guide/1.concepts/5.modules",{"title":280,"path":1300,"stem":1301,"titleTemplate":6},"/docs/4.x/guide/concepts/typescript","docs/4.x/3.guide/1.concepts/8.typescript",{"title":284,"path":1303,"stem":1304,"titleTemplate":6},"/docs/4.x/guide/concepts/code-style","docs/4.x/3.guide/1.concepts/9.code-style",{"title":288,"titleTemplate":289,"icon":290,"path":1306,"stem":1307,"children":1308,"page":108},"/docs/4.x/guide/best-practices","docs/4.x/3.guide/2.best-practices",[1309,1312,1315],{"title":295,"path":1310,"stem":1311,"titleTemplate":6},"/docs/4.x/guide/best-practices/hydration","docs/4.x/3.guide/2.best-practices/hydration",{"title":299,"path":1313,"stem":1314,"titleTemplate":6},"/docs/4.x/guide/best-practices/performance","docs/4.x/3.guide/2.best-practices/performance",{"title":303,"path":1316,"stem":1317,"titleTemplate":6},"/docs/4.x/guide/best-practices/plugins","docs/4.x/3.guide/2.best-practices/plugins",{"title":307,"titleTemplate":308,"icon":309,"path":1319,"stem":1320,"children":1321,"page":108},"/docs/4.x/guide/ai","docs/4.x/3.guide/3.ai",[1322,1325],{"title":314,"path":1323,"stem":1324,"titleTemplate":6},"/docs/4.x/guide/ai/mcp","docs/4.x/3.guide/3.ai/1.mcp",{"title":318,"path":1326,"stem":1327,"titleTemplate":6},"/docs/4.x/guide/ai/llms-txt","docs/4.x/3.guide/3.ai/2.llms-txt",{"title":322,"titleTemplate":323,"icon":324,"path":1329,"stem":1330,"children":1331,"page":108},"/docs/4.x/guide/modules","docs/4.x/3.guide/4.modules",[1332,1335,1338,1341,1344,1347,1350],{"title":329,"path":1333,"stem":1334,"titleTemplate":6},"/docs/4.x/guide/modules/getting-started","docs/4.x/3.guide/4.modules/1.getting-started",{"title":333,"path":1336,"stem":1337,"titleTemplate":6},"/docs/4.x/guide/modules/module-anatomy","docs/4.x/3.guide/4.modules/2.module-anatomy",{"title":337,"path":1339,"stem":1340,"titleTemplate":6},"/docs/4.x/guide/modules/recipes-basics","docs/4.x/3.guide/4.modules/3.recipes-basics",{"title":341,"path":1342,"stem":1343,"titleTemplate":6},"/docs/4.x/guide/modules/recipes-advanced","docs/4.x/3.guide/4.modules/4.recipes-advanced",{"title":345,"path":1345,"stem":1346,"titleTemplate":6},"/docs/4.x/guide/modules/testing","docs/4.x/3.guide/4.modules/5.testing",{"title":349,"path":1348,"stem":1349,"titleTemplate":6},"/docs/4.x/guide/modules/best-practices","docs/4.x/3.guide/4.modules/6.best-practices",{"title":353,"path":1351,"stem":1352,"titleTemplate":6},"/docs/4.x/guide/modules/ecosystem","docs/4.x/3.guide/4.modules/7.ecosystem",{"title":357,"titleTemplate":358,"icon":359,"path":1354,"stem":1355,"children":1356,"page":108},"/docs/4.x/guide/recipes","docs/4.x/3.guide/5.recipes",[1357,1360,1363,1366],{"title":364,"path":1358,"stem":1359,"titleTemplate":6},"/docs/4.x/guide/recipes/custom-routing","docs/4.x/3.guide/5.recipes/1.custom-routing",{"title":368,"path":1361,"stem":1362,"titleTemplate":6},"/docs/4.x/guide/recipes/vite-plugin","docs/4.x/3.guide/5.recipes/2.vite-plugin",{"title":372,"path":1364,"stem":1365,"titleTemplate":6},"/docs/4.x/guide/recipes/custom-usefetch","docs/4.x/3.guide/5.recipes/3.custom-usefetch",{"title":376,"path":1367,"stem":1368,"titleTemplate":6},"/docs/4.x/guide/recipes/sessions-and-authentication","docs/4.x/3.guide/5.recipes/4.sessions-and-authentication",{"title":380,"titleTemplate":381,"icon":382,"path":1370,"stem":1371,"children":1372,"page":108},"/docs/4.x/guide/going-further","docs/4.x/3.guide/6.going-further",[1373,1376,1379,1382,1385,1388,1391,1394,1397,1400],{"title":387,"path":1374,"stem":1375,"titleTemplate":6},"/docs/4.x/guide/going-further/events","docs/4.x/3.guide/6.going-further/1.events",{"title":391,"path":1377,"stem":1378,"titleTemplate":6},"/docs/4.x/guide/going-further/experimental-features","docs/4.x/3.guide/6.going-further/1.experimental-features",{"title":395,"path":1380,"stem":1381,"titleTemplate":6},"/docs/4.x/guide/going-further/features","docs/4.x/3.guide/6.going-further/1.features",{"title":399,"path":1383,"stem":1384,"titleTemplate":6},"/docs/4.x/guide/going-further/runtime-config","docs/4.x/3.guide/6.going-further/10.runtime-config",{"title":403,"path":1386,"stem":1387,"titleTemplate":6},"/docs/4.x/guide/going-further/nightly-release-channel","docs/4.x/3.guide/6.going-further/11.nightly-release-channel",{"title":407,"path":1389,"stem":1390,"titleTemplate":6},"/docs/4.x/guide/going-further/hooks","docs/4.x/3.guide/6.going-further/2.hooks",{"title":411,"path":1392,"stem":1393,"titleTemplate":6},"/docs/4.x/guide/going-further/kit","docs/4.x/3.guide/6.going-further/4.kit",{"title":415,"path":1395,"stem":1396,"titleTemplate":6},"/docs/4.x/guide/going-further/nuxt-app","docs/4.x/3.guide/6.going-further/6.nuxt-app",{"title":419,"path":1398,"stem":1399,"titleTemplate":6},"/docs/4.x/guide/going-further/layers","docs/4.x/3.guide/6.going-further/7.layers",{"title":423,"path":1401,"stem":1402,"titleTemplate":6},"/docs/4.x/guide/going-further/debugging","docs/4.x/3.guide/6.going-further/9.debugging",{"title":427,"titleTemplate":428,"icon":429,"path":1404,"stem":1405,"children":1406,"page":108},"/docs/4.x/api","docs/4.x/4.api",[1407,1456,1547,1638,1690,1748,1758],{"title":434,"titleTemplate":435,"icon":324,"path":1408,"stem":1409,"children":1410,"page":108},"/docs/4.x/api/components","docs/4.x/4.api/1.components",[1411,1414,1417,1420,1423,1426,1429,1432,1435,1438,1441,1444,1447,1450,1453],{"title":440,"path":1412,"stem":1413,"titleTemplate":6},"/docs/4.x/api/components/client-only","docs/4.x/4.api/1.components/1.client-only",{"title":444,"path":1415,"stem":1416,"titleTemplate":6},"/docs/4.x/api/components/dev-only","docs/4.x/4.api/1.components/1.dev-only",{"title":448,"path":1418,"stem":1419,"titleTemplate":6},"/docs/4.x/api/components/nuxt-client-fallback","docs/4.x/4.api/1.components/1.nuxt-client-fallback",{"title":452,"path":1421,"stem":1422,"titleTemplate":6},"/docs/4.x/api/components/nuxt-picture","docs/4.x/4.api/1.components/10.nuxt-picture",{"title":456,"path":1424,"stem":1425,"titleTemplate":6},"/docs/4.x/api/components/teleports","docs/4.x/4.api/1.components/11.teleports",{"title":460,"path":1427,"stem":1428,"titleTemplate":6},"/docs/4.x/api/components/nuxt-route-announcer","docs/4.x/4.api/1.components/12.nuxt-route-announcer",{"title":464,"path":1430,"stem":1431,"titleTemplate":6},"/docs/4.x/api/components/nuxt-time","docs/4.x/4.api/1.components/13.nuxt-time",{"title":468,"path":1433,"stem":1434,"titleTemplate":6},"/docs/4.x/api/components/nuxt-page","docs/4.x/4.api/1.components/2.nuxt-page",{"title":472,"path":1436,"stem":1437,"titleTemplate":6},"/docs/4.x/api/components/nuxt-layout","docs/4.x/4.api/1.components/3.nuxt-layout",{"title":476,"path":1439,"stem":1440,"titleTemplate":6},"/docs/4.x/api/components/nuxt-link","docs/4.x/4.api/1.components/4.nuxt-link",{"title":480,"path":1442,"stem":1443,"titleTemplate":6},"/docs/4.x/api/components/nuxt-loading-indicator","docs/4.x/4.api/1.components/5.nuxt-loading-indicator",{"title":484,"path":1445,"stem":1446,"titleTemplate":6},"/docs/4.x/api/components/nuxt-error-boundary","docs/4.x/4.api/1.components/6.nuxt-error-boundary",{"title":488,"path":1448,"stem":1449,"titleTemplate":6},"/docs/4.x/api/components/nuxt-welcome","docs/4.x/4.api/1.components/7.nuxt-welcome",{"title":492,"path":1451,"stem":1452,"titleTemplate":6},"/docs/4.x/api/components/nuxt-island","docs/4.x/4.api/1.components/8.nuxt-island",{"title":496,"path":1454,"stem":1455,"titleTemplate":6},"/docs/4.x/api/components/nuxt-img","docs/4.x/4.api/1.components/9.nuxt-img",{"title":500,"titleTemplate":501,"icon":502,"path":1457,"stem":1458,"children":1459,"page":108},"/docs/4.x/api/composables","docs/4.x/4.api/2.composables",[1460,1463,1466,1469,1472,1475,1478,1481,1484,1487,1490,1493,1496,1499,1502,1505,1508,1511,1514,1517,1520,1523,1526,1529,1532,1535,1538,1541,1544],{"title":507,"path":1461,"stem":1462,"titleTemplate":6},"/docs/4.x/api/composables/on-prehydrate","docs/4.x/4.api/2.composables/on-prehydrate",{"title":511,"path":1464,"stem":1465,"titleTemplate":6},"/docs/4.x/api/composables/use-app-config","docs/4.x/4.api/2.composables/use-app-config",{"title":515,"path":1467,"stem":1468,"titleTemplate":6},"/docs/4.x/api/composables/use-async-data","docs/4.x/4.api/2.composables/use-async-data",{"title":519,"path":1470,"stem":1471,"titleTemplate":6},"/docs/4.x/api/composables/use-cookie","docs/4.x/4.api/2.composables/use-cookie",{"title":523,"path":1473,"stem":1474,"titleTemplate":6},"/docs/4.x/api/composables/use-error","docs/4.x/4.api/2.composables/use-error",{"title":527,"path":1476,"stem":1477,"titleTemplate":6},"/docs/4.x/api/composables/use-fetch","docs/4.x/4.api/2.composables/use-fetch",{"title":531,"path":1479,"stem":1480,"titleTemplate":6},"/docs/4.x/api/composables/use-head","docs/4.x/4.api/2.composables/use-head",{"title":535,"path":1482,"stem":1483,"titleTemplate":6},"/docs/4.x/api/composables/use-head-safe","docs/4.x/4.api/2.composables/use-head-safe",{"title":539,"path":1485,"stem":1486,"titleTemplate":6},"/docs/4.x/api/composables/use-hydration","docs/4.x/4.api/2.composables/use-hydration",{"title":543,"path":1488,"stem":1489,"titleTemplate":6},"/docs/4.x/api/composables/use-lazy-async-data","docs/4.x/4.api/2.composables/use-lazy-async-data",{"title":547,"path":1491,"stem":1492,"titleTemplate":6},"/docs/4.x/api/composables/use-lazy-fetch","docs/4.x/4.api/2.composables/use-lazy-fetch",{"title":551,"path":1494,"stem":1495,"titleTemplate":6},"/docs/4.x/api/composables/use-loading-indicator","docs/4.x/4.api/2.composables/use-loading-indicator",{"title":555,"path":1497,"stem":1498,"titleTemplate":6},"/docs/4.x/api/composables/use-nuxt-app","docs/4.x/4.api/2.composables/use-nuxt-app",{"title":559,"path":1500,"stem":1501,"titleTemplate":6},"/docs/4.x/api/composables/use-nuxt-data","docs/4.x/4.api/2.composables/use-nuxt-data",{"title":563,"path":1503,"stem":1504,"titleTemplate":6},"/docs/4.x/api/composables/use-preview-mode","docs/4.x/4.api/2.composables/use-preview-mode",{"title":567,"path":1506,"stem":1507,"titleTemplate":6},"/docs/4.x/api/composables/use-request-event","docs/4.x/4.api/2.composables/use-request-event",{"title":571,"path":1509,"stem":1510,"titleTemplate":6},"/docs/4.x/api/composables/use-request-fetch","docs/4.x/4.api/2.composables/use-request-fetch",{"title":575,"path":1512,"stem":1513,"titleTemplate":6},"/docs/4.x/api/composables/use-request-header","docs/4.x/4.api/2.composables/use-request-header",{"title":579,"path":1515,"stem":1516,"titleTemplate":6},"/docs/4.x/api/composables/use-request-headers","docs/4.x/4.api/2.composables/use-request-headers",{"title":583,"path":1518,"stem":1519,"titleTemplate":6},"/docs/4.x/api/composables/use-request-url","docs/4.x/4.api/2.composables/use-request-url",{"title":587,"path":1521,"stem":1522,"titleTemplate":6},"/docs/4.x/api/composables/use-response-header","docs/4.x/4.api/2.composables/use-response-header",{"title":591,"path":1524,"stem":1525,"titleTemplate":6},"/docs/4.x/api/composables/use-route","docs/4.x/4.api/2.composables/use-route",{"title":595,"path":1527,"stem":1528,"titleTemplate":6},"/docs/4.x/api/composables/use-route-announcer","docs/4.x/4.api/2.composables/use-route-announcer",{"title":599,"path":1530,"stem":1531,"titleTemplate":6},"/docs/4.x/api/composables/use-router","docs/4.x/4.api/2.composables/use-router",{"title":603,"path":1533,"stem":1534,"titleTemplate":6},"/docs/4.x/api/composables/use-runtime-config","docs/4.x/4.api/2.composables/use-runtime-config",{"title":607,"path":1536,"stem":1537,"titleTemplate":6},"/docs/4.x/api/composables/use-runtime-hook","docs/4.x/4.api/2.composables/use-runtime-hook",{"title":611,"path":1539,"stem":1540,"titleTemplate":6},"/docs/4.x/api/composables/use-seo-meta","docs/4.x/4.api/2.composables/use-seo-meta",{"title":615,"path":1542,"stem":1543,"titleTemplate":6},"/docs/4.x/api/composables/use-server-seo-meta","docs/4.x/4.api/2.composables/use-server-seo-meta",{"title":619,"path":1545,"stem":1546,"titleTemplate":6},"/docs/4.x/api/composables/use-state","docs/4.x/4.api/2.composables/use-state",{"title":623,"titleTemplate":624,"icon":625,"path":1548,"stem":1549,"children":1550,"page":108},"/docs/4.x/api/utils","docs/4.x/4.api/3.utils",[1551,1554,1557,1560,1563,1566,1569,1572,1575,1578,1581,1584,1587,1590,1593,1596,1599,1602,1605,1608,1611,1614,1617,1620,1623,1626,1629,1632,1635],{"title":630,"path":1552,"stem":1553,"titleTemplate":6},"/docs/4.x/api/utils/dollarfetch","docs/4.x/4.api/3.utils/$fetch",{"title":634,"path":1555,"stem":1556,"titleTemplate":6},"/docs/4.x/api/utils/abort-navigation","docs/4.x/4.api/3.utils/abort-navigation",{"title":638,"path":1558,"stem":1559,"titleTemplate":6},"/docs/4.x/api/utils/add-route-middleware","docs/4.x/4.api/3.utils/add-route-middleware",{"title":642,"path":1561,"stem":1562,"titleTemplate":6},"/docs/4.x/api/utils/call-once","docs/4.x/4.api/3.utils/call-once",{"title":646,"path":1564,"stem":1565,"titleTemplate":6},"/docs/4.x/api/utils/clear-error","docs/4.x/4.api/3.utils/clear-error",{"title":650,"path":1567,"stem":1568,"titleTemplate":6},"/docs/4.x/api/utils/clear-nuxt-data","docs/4.x/4.api/3.utils/clear-nuxt-data",{"title":654,"path":1570,"stem":1571,"titleTemplate":6},"/docs/4.x/api/utils/clear-nuxt-state","docs/4.x/4.api/3.utils/clear-nuxt-state",{"title":658,"path":1573,"stem":1574,"titleTemplate":6},"/docs/4.x/api/utils/create-error","docs/4.x/4.api/3.utils/create-error",{"title":662,"path":1576,"stem":1577,"titleTemplate":6},"/docs/4.x/api/utils/define-lazy-hydration-component","docs/4.x/4.api/3.utils/define-lazy-hydration-component",{"title":666,"path":1579,"stem":1580,"titleTemplate":6},"/docs/4.x/api/utils/define-nuxt-component","docs/4.x/4.api/3.utils/define-nuxt-component",{"title":670,"path":1582,"stem":1583,"titleTemplate":6},"/docs/4.x/api/utils/define-nuxt-plugin","docs/4.x/4.api/3.utils/define-nuxt-plugin",{"title":674,"path":1585,"stem":1586,"titleTemplate":6},"/docs/4.x/api/utils/define-nuxt-route-middleware","docs/4.x/4.api/3.utils/define-nuxt-route-middleware",{"title":678,"path":1588,"stem":1589,"titleTemplate":6},"/docs/4.x/api/utils/define-page-meta","docs/4.x/4.api/3.utils/define-page-meta",{"title":682,"path":1591,"stem":1592,"titleTemplate":6},"/docs/4.x/api/utils/define-route-rules","docs/4.x/4.api/3.utils/define-route-rules",{"title":686,"path":1594,"stem":1595,"titleTemplate":6},"/docs/4.x/api/utils/navigate-to","docs/4.x/4.api/3.utils/navigate-to",{"title":690,"path":1597,"stem":1598,"titleTemplate":6},"/docs/4.x/api/utils/on-before-route-leave","docs/4.x/4.api/3.utils/on-before-route-leave",{"title":694,"path":1600,"stem":1601,"titleTemplate":6},"/docs/4.x/api/utils/on-before-route-update","docs/4.x/4.api/3.utils/on-before-route-update",{"title":698,"path":1603,"stem":1604,"titleTemplate":6},"/docs/4.x/api/utils/on-nuxt-ready","docs/4.x/4.api/3.utils/on-nuxt-ready",{"title":702,"path":1606,"stem":1607,"titleTemplate":6},"/docs/4.x/api/utils/prefetch-components","docs/4.x/4.api/3.utils/prefetch-components",{"title":706,"path":1609,"stem":1610,"titleTemplate":6},"/docs/4.x/api/utils/preload-components","docs/4.x/4.api/3.utils/preload-components",{"title":710,"path":1612,"stem":1613,"titleTemplate":6},"/docs/4.x/api/utils/preload-route-components","docs/4.x/4.api/3.utils/preload-route-components",{"title":714,"path":1615,"stem":1616,"titleTemplate":6},"/docs/4.x/api/utils/prerender-routes","docs/4.x/4.api/3.utils/prerender-routes",{"title":718,"path":1618,"stem":1619,"titleTemplate":6},"/docs/4.x/api/utils/refresh-cookie","docs/4.x/4.api/3.utils/refresh-cookie",{"title":722,"path":1621,"stem":1622,"titleTemplate":6},"/docs/4.x/api/utils/refresh-nuxt-data","docs/4.x/4.api/3.utils/refresh-nuxt-data",{"title":726,"path":1624,"stem":1625,"titleTemplate":6},"/docs/4.x/api/utils/reload-nuxt-app","docs/4.x/4.api/3.utils/reload-nuxt-app",{"title":730,"path":1627,"stem":1628,"titleTemplate":6},"/docs/4.x/api/utils/set-page-layout","docs/4.x/4.api/3.utils/set-page-layout",{"title":734,"path":1630,"stem":1631,"titleTemplate":6},"/docs/4.x/api/utils/set-response-status","docs/4.x/4.api/3.utils/set-response-status",{"title":738,"path":1633,"stem":1634,"titleTemplate":6},"/docs/4.x/api/utils/show-error","docs/4.x/4.api/3.utils/show-error",{"title":742,"path":1636,"stem":1637,"titleTemplate":6},"/docs/4.x/api/utils/update-app-config","docs/4.x/4.api/3.utils/update-app-config",{"title":746,"titleTemplate":747,"icon":748,"path":1639,"stem":1640,"children":1641,"page":108},"/docs/4.x/api/commands","docs/4.x/4.api/4.commands",[1642,1645,1648,1651,1654,1657,1660,1663,1666,1669,1672,1675,1678,1681,1684,1687],{"title":753,"path":1643,"stem":1644,"titleTemplate":6},"/docs/4.x/api/commands/add","docs/4.x/4.api/4.commands/add",{"title":757,"path":1646,"stem":1647,"titleTemplate":6},"/docs/4.x/api/commands/analyze","docs/4.x/4.api/4.commands/analyze",{"title":761,"path":1649,"stem":1650,"titleTemplate":6},"/docs/4.x/api/commands/build","docs/4.x/4.api/4.commands/build",{"title":765,"path":1652,"stem":1653,"titleTemplate":6},"/docs/4.x/api/commands/build-module","docs/4.x/4.api/4.commands/build-module",{"title":769,"path":1655,"stem":1656,"titleTemplate":6},"/docs/4.x/api/commands/cleanup","docs/4.x/4.api/4.commands/cleanup",{"title":773,"path":1658,"stem":1659,"titleTemplate":6},"/docs/4.x/api/commands/dev","docs/4.x/4.api/4.commands/dev",{"title":777,"path":1661,"stem":1662,"titleTemplate":6},"/docs/4.x/api/commands/devtools","docs/4.x/4.api/4.commands/devtools",{"title":781,"path":1664,"stem":1665,"titleTemplate":6},"/docs/4.x/api/commands/generate","docs/4.x/4.api/4.commands/generate",{"title":785,"path":1667,"stem":1668,"titleTemplate":6},"/docs/4.x/api/commands/info","docs/4.x/4.api/4.commands/info",{"title":789,"path":1670,"stem":1671,"titleTemplate":6},"/docs/4.x/api/commands/init","docs/4.x/4.api/4.commands/init",{"title":793,"path":1673,"stem":1674,"titleTemplate":6},"/docs/4.x/api/commands/module","docs/4.x/4.api/4.commands/module",{"title":797,"path":1676,"stem":1677,"titleTemplate":6},"/docs/4.x/api/commands/prepare","docs/4.x/4.api/4.commands/prepare",{"title":801,"path":1679,"stem":1680,"titleTemplate":6},"/docs/4.x/api/commands/preview","docs/4.x/4.api/4.commands/preview",{"title":805,"path":1682,"stem":1683,"titleTemplate":6},"/docs/4.x/api/commands/test","docs/4.x/4.api/4.commands/test",{"title":809,"path":1685,"stem":1686,"titleTemplate":6},"/docs/4.x/api/commands/typecheck","docs/4.x/4.api/4.commands/typecheck",{"title":813,"path":1688,"stem":1689,"titleTemplate":6},"/docs/4.x/api/commands/upgrade","docs/4.x/4.api/4.commands/upgrade",{"title":411,"titleTemplate":817,"icon":818,"path":1691,"stem":1692,"children":1693,"page":108},"/docs/4.x/api/kit","docs/4.x/4.api/5.kit",[1694,1697,1700,1703,1706,1709,1712,1715,1718,1721,1724,1727,1730,1733,1736,1739,1742,1745],{"title":276,"path":1695,"stem":1696,"titleTemplate":6},"/docs/4.x/api/kit/modules","docs/4.x/4.api/5.kit/1.modules",{"title":399,"path":1698,"stem":1699,"titleTemplate":6},"/docs/4.x/api/kit/runtime-config","docs/4.x/4.api/5.kit/10.runtime-config",{"title":829,"path":1701,"stem":1702,"titleTemplate":6},"/docs/4.x/api/kit/templates","docs/4.x/4.api/5.kit/10.templates",{"title":833,"path":1704,"stem":1705,"titleTemplate":6},"/docs/4.x/api/kit/nitro","docs/4.x/4.api/5.kit/11.nitro",{"title":837,"path":1707,"stem":1708,"titleTemplate":6},"/docs/4.x/api/kit/resolving","docs/4.x/4.api/5.kit/12.resolving",{"title":841,"path":1710,"stem":1711,"titleTemplate":6},"/docs/4.x/api/kit/logging","docs/4.x/4.api/5.kit/13.logging",{"title":845,"path":1713,"stem":1714,"titleTemplate":6},"/docs/4.x/api/kit/builder","docs/4.x/4.api/5.kit/14.builder",{"title":849,"path":1716,"stem":1717,"titleTemplate":6},"/docs/4.x/api/kit/examples","docs/4.x/4.api/5.kit/15.examples",{"title":84,"path":1719,"stem":1720,"titleTemplate":6},"/docs/4.x/api/kit/layers","docs/4.x/4.api/5.kit/16.layers",{"title":856,"path":1722,"stem":1723,"titleTemplate":6},"/docs/4.x/api/kit/programmatic","docs/4.x/4.api/5.kit/2.programmatic",{"title":860,"path":1725,"stem":1726,"titleTemplate":6},"/docs/4.x/api/kit/compatibility","docs/4.x/4.api/5.kit/3.compatibility",{"title":268,"path":1728,"stem":1729,"titleTemplate":6},"/docs/4.x/api/kit/autoimports","docs/4.x/4.api/5.kit/4.autoimports",{"title":434,"path":1731,"stem":1732,"titleTemplate":6},"/docs/4.x/api/kit/components","docs/4.x/4.api/5.kit/5.components",{"title":870,"path":1734,"stem":1735,"titleTemplate":6},"/docs/4.x/api/kit/context","docs/4.x/4.api/5.kit/6.context",{"title":874,"path":1737,"stem":1738,"titleTemplate":6},"/docs/4.x/api/kit/pages","docs/4.x/4.api/5.kit/7.pages",{"title":878,"path":1740,"stem":1741,"titleTemplate":6},"/docs/4.x/api/kit/layout","docs/4.x/4.api/5.kit/8.layout",{"title":882,"path":1743,"stem":1744,"titleTemplate":6},"/docs/4.x/api/kit/head","docs/4.x/4.api/5.kit/9.head",{"title":886,"path":1746,"stem":1747,"titleTemplate":6},"/docs/4.x/api/kit/plugins","docs/4.x/4.api/5.kit/9.plugins",{"title":890,"titleTemplate":6,"icon":891,"path":1749,"stem":1750,"children":1751,"page":108},"/docs/4.x/api/advanced","docs/4.x/4.api/6.advanced",[1752,1755],{"title":407,"path":1753,"stem":1754,"titleTemplate":6},"/docs/4.x/api/advanced/hooks","docs/4.x/4.api/6.advanced/1.hooks",{"title":899,"path":1756,"stem":1757,"titleTemplate":6},"/docs/4.x/api/advanced/import-meta","docs/4.x/4.api/6.advanced/2.import-meta",{"title":903,"path":1759,"stem":1760,"titleTemplate":906,"icon":32},"/docs/4.x/api/nuxt-config","docs/4.x/4.api/6.nuxt-config",{"title":849,"titleTemplate":908,"icon":909,"path":1762,"stem":1763,"children":1764,"page":108},"/docs/4.x/examples","docs/4.x/4.examples",[1765,1768,1787,1800,1831],{"title":914,"path":1766,"stem":1767,"titleTemplate":6},"/docs/4.x/examples/hello-world","docs/4.x/4.examples/0.hello-world",{"title":395,"path":1769,"stem":1770,"children":1771,"page":108},"/docs/4.x/examples/features","docs/4.x/4.examples/1.features",[1772,1775,1778,1781,1784],{"title":922,"path":1773,"stem":1774,"titleTemplate":6},"/docs/4.x/examples/features/auto-imports","docs/4.x/4.examples/1.features/1.auto-imports",{"title":64,"path":1776,"stem":1777,"titleTemplate":6},"/docs/4.x/examples/features/data-fetching","docs/4.x/4.examples/1.features/2.data-fetching",{"title":69,"path":1779,"stem":1780,"titleTemplate":6},"/docs/4.x/examples/features/state-management","docs/4.x/4.examples/1.features/3.state-management",{"title":932,"path":1782,"stem":1783,"titleTemplate":6},"/docs/4.x/examples/features/meta-tags","docs/4.x/4.examples/1.features/4.meta-tags",{"title":936,"path":1785,"stem":1786,"titleTemplate":6},"/docs/4.x/examples/features/layouts","docs/4.x/4.examples/1.features/5.layouts",{"title":49,"path":1788,"stem":1789,"children":1790,"page":108},"/docs/4.x/examples/routing","docs/4.x/4.examples/2.routing",[1791,1794,1797],{"title":944,"path":1792,"stem":1793,"titleTemplate":6},"/docs/4.x/examples/routing/middleware","docs/4.x/4.examples/2.routing/middleware",{"title":874,"path":1795,"stem":1796,"titleTemplate":6},"/docs/4.x/examples/routing/pages","docs/4.x/4.examples/2.routing/pages",{"title":951,"path":1798,"stem":1799,"titleTemplate":6},"/docs/4.x/examples/routing/universal-router","docs/4.x/4.examples/2.routing/universal-router",{"title":890,"path":1801,"stem":1802,"children":1803,"page":108},"/docs/4.x/examples/advanced","docs/4.x/4.examples/4.advanced",[1804,1807,1810,1813,1816,1819,1822,1825,1828],{"title":84,"path":1805,"stem":1806,"titleTemplate":6},"/docs/4.x/examples/advanced/config-extends","docs/4.x/4.examples/4.advanced/config-extends",{"title":74,"path":1808,"stem":1809,"titleTemplate":6},"/docs/4.x/examples/advanced/error-handling","docs/4.x/4.examples/4.advanced/error-handling",{"title":965,"path":1811,"stem":1812,"titleTemplate":6},"/docs/4.x/examples/advanced/jsx","docs/4.x/4.examples/4.advanced/jsx",{"title":969,"path":1814,"stem":1815,"titleTemplate":6},"/docs/4.x/examples/advanced/locale","docs/4.x/4.examples/4.advanced/locale",{"title":973,"path":1817,"stem":1818,"titleTemplate":6},"/docs/4.x/examples/advanced/module-extend-pages","docs/4.x/4.examples/4.advanced/module-extend-pages",{"title":977,"path":1820,"stem":1821,"titleTemplate":6},"/docs/4.x/examples/advanced/teleport","docs/4.x/4.examples/4.advanced/teleport",{"title":99,"path":1823,"stem":1824,"titleTemplate":6},"/docs/4.x/examples/advanced/testing","docs/4.x/4.examples/4.advanced/testing",{"title":519,"path":1826,"stem":1827,"titleTemplate":6},"/docs/4.x/examples/advanced/use-cookie","docs/4.x/4.examples/4.advanced/use-cookie",{"title":987,"path":1829,"stem":1830,"titleTemplate":6},"/docs/4.x/examples/advanced/use-custom-fetch-composable","docs/4.x/4.examples/4.advanced/use-custom-fetch-composable",{"title":991,"path":1832,"stem":1833,"children":1834,"page":108},"/docs/4.x/examples/experimental","docs/4.x/4.examples/7.experimental",[1835],{"title":996,"path":1836,"stem":1837,"titleTemplate":6},"/docs/4.x/examples/experimental/wasm","docs/4.x/4.examples/7.experimental/wasm",{"title":1000,"titleTemplate":1001,"icon":1002,"path":1839,"stem":1840,"children":1841,"page":108},"/docs/4.x/community","docs/4.x/5.community",[1842,1845,1848,1851,1854,1857],{"title":1007,"path":1843,"stem":1844,"titleTemplate":6,"icon":1010},"/docs/4.x/community/getting-help","docs/4.x/5.community/2.getting-help",{"title":1012,"path":1846,"stem":1847,"titleTemplate":6,"icon":1015},"/docs/4.x/community/reporting-bugs","docs/4.x/5.community/3.reporting-bugs",{"title":1017,"path":1849,"stem":1850,"titleTemplate":6,"icon":1020},"/docs/4.x/community/contribution","docs/4.x/5.community/4.contribution",{"title":1022,"path":1852,"stem":1853,"titleTemplate":6,"icon":1025},"/docs/4.x/community/framework-contribution","docs/4.x/5.community/5.framework-contribution",{"title":1027,"path":1855,"stem":1856,"titleTemplate":6,"icon":1030},"/docs/4.x/community/roadmap","docs/4.x/5.community/6.roadmap",{"title":1032,"path":1858,"stem":1859,"titleTemplate":6,"icon":1035},"/docs/4.x/community/changelog","docs/4.x/5.community/7.changelog",{"title":1037,"titleTemplate":1038,"icon":1039,"path":1861,"stem":1862,"children":1863,"page":108},"/docs/4.x/bridge","docs/4.x/6.bridge",[1864,1867,1870,1873,1876,1879,1882,1885,1888,1891],{"title":1044,"path":1865,"stem":1866,"titleTemplate":6},"/docs/4.x/bridge/overview","docs/4.x/6.bridge/1.overview",{"title":29,"path":1868,"stem":1869,"titleTemplate":6},"/docs/4.x/bridge/configuration","docs/4.x/6.bridge/10.configuration",{"title":280,"path":1871,"stem":1872,"titleTemplate":6},"/docs/4.x/bridge/typescript","docs/4.x/6.bridge/2.typescript",{"title":1054,"path":1874,"stem":1875,"titleTemplate":6},"/docs/4.x/bridge/bridge-composition-api","docs/4.x/6.bridge/3.bridge-composition-api",{"title":1058,"path":1877,"stem":1878,"titleTemplate":6},"/docs/4.x/bridge/plugins-and-middleware","docs/4.x/6.bridge/4.plugins-and-middleware",{"title":1062,"path":1880,"stem":1881,"titleTemplate":6},"/docs/4.x/bridge/nuxt3-compatible-api","docs/4.x/6.bridge/5.nuxt3-compatible-api",{"title":932,"path":1883,"stem":1884,"titleTemplate":6},"/docs/4.x/bridge/meta","docs/4.x/6.bridge/6.meta",{"title":399,"path":1886,"stem":1887,"titleTemplate":6},"/docs/4.x/bridge/runtime-config","docs/4.x/6.bridge/7.runtime-config",{"title":833,"path":1889,"stem":1890,"titleTemplate":6},"/docs/4.x/bridge/nitro","docs/4.x/6.bridge/8.nitro",{"title":1075,"path":1892,"stem":1893,"titleTemplate":6},"/docs/4.x/bridge/vite","docs/4.x/6.bridge/9.vite",{"title":1079,"titleTemplate":1080,"icon":107,"path":1895,"stem":1896,"children":1897,"page":108},"/docs/4.x/migration","docs/4.x/7.migration",[1898,1901,1904,1907,1910,1913,1916,1919,1922,1925,1928],{"title":1044,"path":1899,"stem":1900,"titleTemplate":6},"/docs/4.x/migration/overview","docs/4.x/7.migration/1.overview",{"title":1088,"path":1902,"stem":1903,"titleTemplate":6},"/docs/4.x/migration/bundling","docs/4.x/7.migration/10.bundling",{"title":79,"path":1905,"stem":1906,"titleTemplate":6},"/docs/4.x/migration/server","docs/4.x/7.migration/11.server",{"title":29,"path":1908,"stem":1909,"titleTemplate":6},"/docs/4.x/migration/configuration","docs/4.x/7.migration/2.configuration",{"title":276,"path":1911,"stem":1912,"titleTemplate":6},"/docs/4.x/migration/module-authors","docs/4.x/7.migration/20.module-authors",{"title":922,"path":1914,"stem":1915,"titleTemplate":6},"/docs/4.x/migration/auto-imports","docs/4.x/7.migration/3.auto-imports",{"title":932,"path":1917,"stem":1918,"titleTemplate":6},"/docs/4.x/migration/meta","docs/4.x/7.migration/4.meta",{"title":1058,"path":1920,"stem":1921,"titleTemplate":6},"/docs/4.x/migration/plugins-and-middleware","docs/4.x/7.migration/5.plugins-and-middleware",{"title":1110,"path":1923,"stem":1924,"titleTemplate":6},"/docs/4.x/migration/pages-and-layouts","docs/4.x/7.migration/6.pages-and-layouts",{"title":1114,"path":1926,"stem":1927,"titleTemplate":6},"/docs/4.x/migration/component-options","docs/4.x/7.migration/7.component-options",{"title":399,"path":1929,"stem":1930,"titleTemplate":6},"/docs/4.x/migration/runtime-config","docs/4.x/7.migration/8.runtime-config",{"title":1932,"path":1933,"stem":1934,"children":1935,"page":108},"Blog","/blog","blog",[1936,1940,1944,1948,1952,1956,1960,1964,1968,1972,1976,1980,1984,1988,1992,1996,2000,2004,2008,2012,2016],{"title":1937,"path":1938,"stem":1939},"Announcing 3.0","/blog/v3","blog/1.v3",{"title":1941,"path":1942,"stem":1943},"Nuxt 3.3","/blog/v3-3","blog/10.v3-3",{"title":1945,"path":1946,"stem":1947},"Nuxt 3.4","/blog/v3-4","blog/11.v3-4",{"title":1949,"path":1950,"stem":1951},"Nuxt 3.5","/blog/v3-5","blog/12.v3-5",{"title":1953,"path":1954,"stem":1955},"Nuxt 3.6","/blog/v3-6","blog/13.v3-6",{"title":1957,"path":1958,"stem":1959},"Nuxt on the Edge","/blog/nuxt-on-the-edge","blog/14.nuxt-on-the-edge",{"title":1961,"path":1962,"stem":1963},"Nuxt DevTools v1.0","/blog/nuxt-devtools-v1-0","blog/18.nuxt-devtools-v1-0",{"title":1965,"path":1966,"stem":1967},"Nuxt: A vision for 2023","/blog/vision-2023","blog/2.vision-2023",{"title":1969,"path":1970,"stem":1971},"The Evolution of Shiki v1.0","/blog/shiki-v1","blog/21.shiki-v1",{"title":1973,"path":1974,"stem":1975},"Refreshed Nuxt ESLint Integrations","/blog/eslint-module","blog/24.eslint-module",{"title":1977,"path":1978,"stem":1979},"Introducing Nuxt Scripts","/blog/nuxt-scripts","blog/26.nuxt-scripts",{"title":1981,"path":1982,"stem":1983},"Introducing Nuxt Icon v1","/blog/nuxt-icon-v1-0","blog/29.nuxt-icon-v1-0",{"title":1985,"path":1986,"stem":1987},"Introducing Nuxt DevTools","/blog/introducing-nuxt-devtools","blog/3.introducing-nuxt-devtools",{"title":1989,"path":1990,"stem":1991},"Announcing Nuxt 3 Release Candidate","/blog/nuxt3-rc","blog/3.nuxt3-rc",{"title":1993,"path":1994,"stem":1995},"Nuxt 2 End-of-Life (EOL)","/blog/nuxt2-eol","blog/4.nuxt2-eol",{"title":1997,"path":1998,"stem":1999},"Introducing Nuxt 3 Beta","/blog/nuxt3-beta","blog/4.nuxt3-beta",{"title":2001,"path":2002,"stem":2003},"Going Full Static","/blog/going-full-static","blog/5.going-full-static",{"title":2005,"path":2006,"stem":2007},"Introducing Smart Prefetching","/blog/introducing-smart-prefetching","blog/6.introducing-smart-prefetching",{"title":2009,"path":2010,"stem":2011},"Understanding how fetch works in Nuxt 2.12","/blog/understanding-how-fetch-works-in-nuxt-2-12","blog/7.understanding-how-fetch-works-in-nuxt-2-12",{"title":2013,"path":2014,"stem":2015},"Nuxt 2 Static Improvements","/blog/nuxt-static-improvements","blog/8.nuxt-static-improvements",{"title":2017,"path":2018,"stem":2019},"Nuxt 2: From Terminal to Browser","/blog/nuxtjs-from-terminal-to-browser","blog/9.nuxtjs-from-terminal-to-browser",{"v3":2021,"v4":2022,"v2":2023},"3.21.1","4.3.1","2.18.1",{"id":2025,"title":132,"body":2026,"description":5540,"extension":5541,"links":6,"meta":5542,"navigation":5545,"path":133,"seo":5546,"stem":134,"titleTemplate":6,"__hash__":5547},"docsv3/docs/3.x/2.directory-structure/1.components.md",{"type":2027,"value":2028,"toc":5519},"minimark",[2029,2033,2080,2160,2165,2168,2210,2213,2227,2241,2252,2354,2368,2372,2417,2420,2571,2580,2585,2588,2628,2639,2648,2652,2659,2665,2853,2857,2860,2863,2866,2871,2874,2883,2895,2901,2904,2953,2963,2978,2983,2986,2989,3037,3048,3053,3056,3113,3127,3138,3143,3146,3203,3214,3219,3222,3279,3284,3287,3434,3438,3441,3489,3493,3500,3636,3640,3643,3707,3711,3717,3943,3947,3953,4131,4136,4140,4154,4343,4347,4361,4443,4447,4454,4475,4527,4535,4553,4561,4565,4568,4575,4579,4588,4592,4595,4598,4601,4649,4656,4678,4756,4772,4777,4782,4787,4792,4796,4805,4812,4903,4916,4920,4930,4933,4958,4963,4970,4982,4986,4995,5025,5075,5079,5087,5089,5093,5096,5109,5112,5196,5206,5368,5375,5418,5427,5506,5512,5515],[2030,2031,2032],"p",{},"Nuxt automatically imports any components in this directory (along with components that are registered by any modules you may be using).",[2034,2035,2040],"pre",{"className":2036,"code":2037,"filename":110,"language":2038,"meta":2039,"style":2039},"language-bash shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","-| components/\n---| AppHeader.vue\n---| AppFooter.vue\n","bash","",[2041,2042,2043,2059,2070],"code",{"__ignoreMap":2039},[2044,2045,2048,2052,2056],"span",{"class":2046,"line":2047},"line",1,[2044,2049,2051],{"class":2050},"s52Pk","-",[2044,2053,2055],{"class":2054},"sDfIl","|",[2044,2057,2058],{"class":2050}," components/\n",[2044,2060,2062,2065,2067],{"class":2046,"line":2061},2,[2044,2063,2064],{"class":2050},"---",[2044,2066,2055],{"class":2054},[2044,2068,2069],{"class":2050}," AppHeader.vue\n",[2044,2071,2073,2075,2077],{"class":2046,"line":2072},3,[2044,2074,2064],{"class":2050},[2044,2076,2055],{"class":2054},[2044,2078,2079],{"class":2050}," AppFooter.vue\n",[2034,2081,2085],{"className":2082,"code":2083,"filename":219,"language":2084,"meta":2039,"style":2039},"language-html shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","\u003Ctemplate>\n  \u003Cdiv>\n    \u003CAppHeader />\n    \u003CNuxtPage />\n    \u003CAppFooter />\n  \u003C/div>\n\u003C/template>\n","html",[2041,2086,2087,2099,2109,2120,2130,2140,2150],{"__ignoreMap":2039},[2044,2088,2089,2092,2096],{"class":2046,"line":2047},[2044,2090,2091],{"class":2054},"\u003C",[2044,2093,2095],{"class":2094},"sRlkE","template",[2044,2097,2098],{"class":2054},">\n",[2044,2100,2101,2104,2107],{"class":2046,"line":2061},[2044,2102,2103],{"class":2054},"  \u003C",[2044,2105,2106],{"class":2094},"div",[2044,2108,2098],{"class":2054},[2044,2110,2111,2114,2117],{"class":2046,"line":2072},[2044,2112,2113],{"class":2054},"    \u003C",[2044,2115,2116],{"class":2094},"AppHeader",[2044,2118,2119],{"class":2054}," />\n",[2044,2121,2123,2125,2128],{"class":2046,"line":2122},4,[2044,2124,2113],{"class":2054},[2044,2126,2127],{"class":2094},"NuxtPage",[2044,2129,2119],{"class":2054},[2044,2131,2133,2135,2138],{"class":2046,"line":2132},5,[2044,2134,2113],{"class":2054},[2044,2136,2137],{"class":2094},"AppFooter",[2044,2139,2119],{"class":2054},[2044,2141,2143,2146,2148],{"class":2046,"line":2142},6,[2044,2144,2145],{"class":2054},"  \u003C/",[2044,2147,2106],{"class":2094},[2044,2149,2098],{"class":2054},[2044,2151,2153,2156,2158],{"class":2046,"line":2152},7,[2044,2154,2155],{"class":2054},"\u003C/",[2044,2157,2095],{"class":2094},[2044,2159,2098],{"class":2054},[2161,2162,2164],"h2",{"id":2163},"component-names","Component Names",[2030,2166,2167],{},"If you have a component in nested directories such as:",[2034,2169,2171],{"className":2036,"code":2170,"filename":110,"language":2038,"meta":2039,"style":2039},"-| components/\n---| base/\n-----| foo/\n-------| Button.vue\n",[2041,2172,2173,2181,2190,2200],{"__ignoreMap":2039},[2044,2174,2175,2177,2179],{"class":2046,"line":2047},[2044,2176,2051],{"class":2050},[2044,2178,2055],{"class":2054},[2044,2180,2058],{"class":2050},[2044,2182,2183,2185,2187],{"class":2046,"line":2061},[2044,2184,2064],{"class":2050},[2044,2186,2055],{"class":2054},[2044,2188,2189],{"class":2050}," base/\n",[2044,2191,2192,2195,2197],{"class":2046,"line":2072},[2044,2193,2194],{"class":2050},"-----",[2044,2196,2055],{"class":2054},[2044,2198,2199],{"class":2050}," foo/\n",[2044,2201,2202,2205,2207],{"class":2046,"line":2122},[2044,2203,2204],{"class":2050},"-------",[2044,2206,2055],{"class":2054},[2044,2208,2209],{"class":2050}," Button.vue\n",[2030,2211,2212],{},"... then the component's name will be based on its own path directory and filename, with duplicate segments being removed. Therefore, the component's name will be:",[2034,2214,2216],{"className":2082,"code":2215,"language":2084,"meta":2039,"style":2039},"\u003CBaseFooButton />\n",[2041,2217,2218],{"__ignoreMap":2039},[2044,2219,2220,2222,2225],{"class":2046,"line":2047},[2044,2221,2091],{"class":2054},[2044,2223,2224],{"class":2094},"BaseFooButton",[2044,2226,2119],{"class":2054},[2228,2229,2230],"note",{},[2030,2231,2232,2233,2236,2237,2240],{},"For clarity, we recommend that the component's filename matches its name. So, in the example above, you could rename ",[2041,2234,2235],{},"Button.vue"," to be ",[2041,2238,2239],{},"BaseFooButton.vue",".",[2030,2242,2243,2244,2247,2248,2251],{},"If you want to auto-import components based only on its name, not path, then you need to set ",[2041,2245,2246],{},"pathPrefix"," option to ",[2041,2249,2250],{},"false"," using extended form of the configuration object:",[2034,2253,2258],{"className":2254,"code":2255,"filename":233,"language":2256,"meta":2257,"style":2039},"language-ts shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight has-diff","export default defineNuxtConfig({\n  components: [\n    {\n      path: '~/components',\n      pathPrefix: false, // [!code ++]\n    },\n  ],\n})\n","ts","twoslash",[2041,2259,2260,2280,2291,2296,2316,2333,2338,2345],{"__ignoreMap":2039},[2044,2261,2262,2266,2269,2273,2277],{"class":2046,"line":2047},[2044,2263,2265],{"class":2264},"s8R28","export",[2044,2267,2268],{"class":2264}," default",[2044,2270,2272],{"class":2271},"s3cPz"," defineNuxtConfig",[2044,2274,2276],{"class":2275},"sZSNi","(",[2044,2278,2279],{"class":2054},"{\n",[2044,2281,2282,2285,2288],{"class":2046,"line":2061},[2044,2283,2284],{"class":2094},"  components",[2044,2286,2287],{"class":2054},":",[2044,2289,2290],{"class":2275}," [\n",[2044,2292,2293],{"class":2046,"line":2072},[2044,2294,2295],{"class":2054},"    {\n",[2044,2297,2298,2301,2303,2306,2310,2313],{"class":2046,"line":2122},[2044,2299,2300],{"class":2094},"      path",[2044,2302,2287],{"class":2054},[2044,2304,2305],{"class":2054}," '",[2044,2307,2309],{"class":2308},"sGFVr","~/components",[2044,2311,2312],{"class":2054},"'",[2044,2314,2315],{"class":2054},",\n",[2044,2317,2321,2324,2326,2330],{"class":2318,"line":2132},[2046,2319,2320],"diff","add",[2044,2322,2323],{"class":2094},"      pathPrefix",[2044,2325,2287],{"class":2054},[2044,2327,2329],{"class":2328},"sbKd-"," false",[2044,2331,2332],{"class":2054},",",[2044,2334,2335],{"class":2046,"line":2142},[2044,2336,2337],{"class":2054},"    },\n",[2044,2339,2340,2343],{"class":2046,"line":2152},[2044,2341,2342],{"class":2275},"  ]",[2044,2344,2315],{"class":2054},[2044,2346,2348,2351],{"class":2046,"line":2347},8,[2044,2349,2350],{"class":2054},"}",[2044,2352,2353],{"class":2275},")\n",[2030,2355,2356,2357,2360,2361,2364,2365,2240],{},"This registers the components using the same strategy as used in Nuxt 2. For example, ",[2041,2358,2359],{},"~/components/Some/MyComponent.vue"," will be usable as ",[2041,2362,2363],{},"\u003CMyComponent>"," and not ",[2041,2366,2367],{},"\u003CSomeMyComponent>",[2161,2369,2371],{"id":2370},"dynamic-components","Dynamic Components",[2030,2373,2374,2375,2405,2406,2409,2410,2413,2414,2416],{},"If you want to use the Vue ",[2041,2376,2379,2381,2384,2387,2391,2394,2397,2400,2402],{"className":2377,"language":2378,"style":2039},"language-vue shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","vue",[2044,2380,2091],{"class":2054},[2044,2382,2383],{"class":2094},"component",[2044,2385,2386],{"class":2054}," :",[2044,2388,2390],{"class":2389},"smZ93","is",[2044,2392,2393],{"class":2054},"=",[2044,2395,2396],{"class":2054},"\"",[2044,2398,2399],{"class":2275},"someComputedComponent",[2044,2401,2396],{"class":2054},[2044,2403,2404],{"class":2054},">"," syntax, you need to use the ",[2041,2407,2408],{},"resolveComponent"," helper provided by Vue or import the component directly from ",[2041,2411,2412],{},"#components"," and pass it into ",[2041,2415,2390],{}," prop.",[2030,2418,2419],{},"For example:",[2034,2421,2424],{"className":2377,"code":2422,"filename":2423,"language":2378,"meta":2039,"style":2039},"\u003Cscript setup lang=\"ts\">\nimport { SomeComponent } from '#components'\n\nconst MyButton = resolveComponent('MyButton')\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Ccomponent :is=\"clickable ? MyButton : 'div'\" />\n  \u003Ccomponent :is=\"SomeComponent\" />\n\u003C/template>\n","pages/index.vue",[2041,2425,2426,2449,2473,2478,2502,2510,2514,2522,2542,2562],{"__ignoreMap":2039},[2044,2427,2428,2430,2433,2436,2439,2441,2443,2445,2447],{"class":2046,"line":2047},[2044,2429,2091],{"class":2054},[2044,2431,2432],{"class":2094},"script",[2044,2434,2435],{"class":2389}," setup",[2044,2437,2438],{"class":2389}," lang",[2044,2440,2393],{"class":2054},[2044,2442,2396],{"class":2054},[2044,2444,2256],{"class":2308},[2044,2446,2396],{"class":2054},[2044,2448,2098],{"class":2054},[2044,2450,2451,2454,2457,2460,2463,2466,2468,2470],{"class":2046,"line":2061},[2044,2452,2453],{"class":2264},"import",[2044,2455,2456],{"class":2054}," {",[2044,2458,2459],{"class":2275}," SomeComponent",[2044,2461,2462],{"class":2054}," }",[2044,2464,2465],{"class":2264}," from",[2044,2467,2305],{"class":2054},[2044,2469,2412],{"class":2308},[2044,2471,2472],{"class":2054},"'\n",[2044,2474,2475],{"class":2046,"line":2072},[2044,2476,2477],{"emptyLinePlaceholder":1196},"\n",[2044,2479,2480,2483,2486,2488,2491,2493,2495,2498,2500],{"class":2046,"line":2122},[2044,2481,2482],{"class":2389},"const",[2044,2484,2485],{"class":2275}," MyButton ",[2044,2487,2393],{"class":2054},[2044,2489,2490],{"class":2271}," resolveComponent",[2044,2492,2276],{"class":2275},[2044,2494,2312],{"class":2054},[2044,2496,2497],{"class":2308},"MyButton",[2044,2499,2312],{"class":2054},[2044,2501,2353],{"class":2275},[2044,2503,2504,2506,2508],{"class":2046,"line":2132},[2044,2505,2155],{"class":2054},[2044,2507,2432],{"class":2094},[2044,2509,2098],{"class":2054},[2044,2511,2512],{"class":2046,"line":2142},[2044,2513,2477],{"emptyLinePlaceholder":1196},[2044,2515,2516,2518,2520],{"class":2046,"line":2152},[2044,2517,2091],{"class":2054},[2044,2519,2095],{"class":2094},[2044,2521,2098],{"class":2054},[2044,2523,2524,2526,2528,2531,2533,2535,2538,2540],{"class":2046,"line":2347},[2044,2525,2103],{"class":2054},[2044,2527,2383],{"class":2094},[2044,2529,2530],{"class":2389}," :is",[2044,2532,2393],{"class":2054},[2044,2534,2396],{"class":2054},[2044,2536,2537],{"class":2308},"clickable ? MyButton : 'div'",[2044,2539,2396],{"class":2054},[2044,2541,2119],{"class":2054},[2044,2543,2545,2547,2549,2551,2553,2555,2558,2560],{"class":2046,"line":2544},9,[2044,2546,2103],{"class":2054},[2044,2548,2383],{"class":2094},[2044,2550,2530],{"class":2389},[2044,2552,2393],{"class":2054},[2044,2554,2396],{"class":2054},[2044,2556,2557],{"class":2308},"SomeComponent",[2044,2559,2396],{"class":2054},[2044,2561,2119],{"class":2054},[2044,2563,2565,2567,2569],{"class":2046,"line":2564},10,[2044,2566,2155],{"class":2054},[2044,2568,2095],{"class":2094},[2044,2570,2098],{"class":2054},[2572,2573,2574],"important",{},[2030,2575,2576,2577,2579],{},"If you are using ",[2041,2578,2408],{}," to handle dynamic components, make sure not to insert anything but the name of the component, which must be a literal string and not be or contain a variable. The string is statically analyzed at the compilation step.",[2581,2582],"video-accordion",{"title":2583,"video-id":2584},"Watch Daniel Roe's short video about resolveComponent()","4kq8E5IUM2U",[2030,2586,2587],{},"Alternatively, though not recommended, you can register all your components globally, which will create async chunks for all your components and make them available throughout your application.",[2034,2589,2592],{"className":2590,"code":2591,"language":2319,"meta":2039,"style":2039},"language-diff shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","  export default defineNuxtConfig({\n    components: {\n+     global: true,\n+     dirs: ['~/components']\n    },\n  })\n",[2041,2593,2594,2599,2604,2612,2619,2623],{"__ignoreMap":2039},[2044,2595,2596],{"class":2046,"line":2047},[2044,2597,2598],{"class":2275},"  export default defineNuxtConfig({\n",[2044,2600,2601],{"class":2046,"line":2061},[2044,2602,2603],{"class":2275},"    components: {\n",[2044,2605,2606,2609],{"class":2046,"line":2072},[2044,2607,2608],{"class":2054},"+",[2044,2610,2611],{"class":2308},"     global: true,\n",[2044,2613,2614,2616],{"class":2046,"line":2122},[2044,2615,2608],{"class":2054},[2044,2617,2618],{"class":2308},"     dirs: ['~/components']\n",[2044,2620,2621],{"class":2046,"line":2132},[2044,2622,2337],{"class":2275},[2044,2624,2625],{"class":2046,"line":2142},[2044,2626,2627],{"class":2275},"  })\n",[2030,2629,2630,2631,2634,2635,2638],{},"You can also selectively register some components globally by placing them in a ",[2041,2632,2633],{},"~/components/global"," directory, or by using a ",[2041,2636,2637],{},".global.vue"," suffix in the filename. As noted above, each global component is rendered in a separate chunk, so be careful not to overuse this feature.",[2228,2640,2641],{},[2030,2642,2643,2644,2647],{},"The ",[2041,2645,2646],{},"global"," option can also be set per component directory.",[2161,2649,2651],{"id":2650},"dynamic-imports","Dynamic Imports",[2030,2653,2654,2655,2658],{},"To dynamically import a component (also known as lazy-loading a component) all you need to do is add the ",[2041,2656,2657],{},"Lazy"," prefix to the component's name. This is particularly useful if the component is not always needed.",[2030,2660,2661,2662,2664],{},"By using the ",[2041,2663,2657],{}," prefix you can delay loading the component code until the right moment, which can be helpful for optimizing your JavaScript bundle size.",[2034,2666,2668],{"className":2377,"code":2667,"filename":2423,"language":2378,"meta":2039,"style":2039},"\u003Cscript setup lang=\"ts\">\nconst show = ref(false)\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cdiv>\n    \u003Ch1>Mountains\u003C/h1>\n    \u003CLazyMountainsList v-if=\"show\" />\n    \u003Cbutton\n      v-if=\"!show\"\n      @click=\"show = true\"\n    >\n      Show List\n    \u003C/button>\n  \u003C/div>\n\u003C/template>\n",[2041,2669,2670,2690,2708,2716,2720,2728,2736,2754,2775,2782,2797,2812,2818,2824,2835,2844],{"__ignoreMap":2039},[2044,2671,2672,2674,2676,2678,2680,2682,2684,2686,2688],{"class":2046,"line":2047},[2044,2673,2091],{"class":2054},[2044,2675,2432],{"class":2094},[2044,2677,2435],{"class":2389},[2044,2679,2438],{"class":2389},[2044,2681,2393],{"class":2054},[2044,2683,2396],{"class":2054},[2044,2685,2256],{"class":2308},[2044,2687,2396],{"class":2054},[2044,2689,2098],{"class":2054},[2044,2691,2692,2694,2697,2699,2702,2704,2706],{"class":2046,"line":2061},[2044,2693,2482],{"class":2389},[2044,2695,2696],{"class":2275}," show ",[2044,2698,2393],{"class":2054},[2044,2700,2701],{"class":2271}," ref",[2044,2703,2276],{"class":2275},[2044,2705,2250],{"class":2328},[2044,2707,2353],{"class":2275},[2044,2709,2710,2712,2714],{"class":2046,"line":2072},[2044,2711,2155],{"class":2054},[2044,2713,2432],{"class":2094},[2044,2715,2098],{"class":2054},[2044,2717,2718],{"class":2046,"line":2122},[2044,2719,2477],{"emptyLinePlaceholder":1196},[2044,2721,2722,2724,2726],{"class":2046,"line":2132},[2044,2723,2091],{"class":2054},[2044,2725,2095],{"class":2094},[2044,2727,2098],{"class":2054},[2044,2729,2730,2732,2734],{"class":2046,"line":2142},[2044,2731,2103],{"class":2054},[2044,2733,2106],{"class":2094},[2044,2735,2098],{"class":2054},[2044,2737,2738,2740,2743,2745,2748,2750,2752],{"class":2046,"line":2152},[2044,2739,2113],{"class":2054},[2044,2741,2742],{"class":2094},"h1",[2044,2744,2404],{"class":2054},[2044,2746,2747],{"class":2275},"Mountains",[2044,2749,2155],{"class":2054},[2044,2751,2742],{"class":2094},[2044,2753,2098],{"class":2054},[2044,2755,2756,2758,2761,2764,2766,2768,2771,2773],{"class":2046,"line":2347},[2044,2757,2113],{"class":2054},[2044,2759,2760],{"class":2094},"LazyMountainsList",[2044,2762,2763],{"class":2389}," v-if",[2044,2765,2393],{"class":2054},[2044,2767,2396],{"class":2054},[2044,2769,2770],{"class":2308},"show",[2044,2772,2396],{"class":2054},[2044,2774,2119],{"class":2054},[2044,2776,2777,2779],{"class":2046,"line":2544},[2044,2778,2113],{"class":2054},[2044,2780,2781],{"class":2094},"button\n",[2044,2783,2784,2787,2789,2791,2794],{"class":2046,"line":2564},[2044,2785,2786],{"class":2389},"      v-if",[2044,2788,2393],{"class":2054},[2044,2790,2396],{"class":2054},[2044,2792,2793],{"class":2308},"!show",[2044,2795,2796],{"class":2054},"\"\n",[2044,2798,2800,2803,2805,2807,2810],{"class":2046,"line":2799},11,[2044,2801,2802],{"class":2389},"      @click",[2044,2804,2393],{"class":2054},[2044,2806,2396],{"class":2054},[2044,2808,2809],{"class":2308},"show = true",[2044,2811,2796],{"class":2054},[2044,2813,2815],{"class":2046,"line":2814},12,[2044,2816,2817],{"class":2054},"    >\n",[2044,2819,2821],{"class":2046,"line":2820},13,[2044,2822,2823],{"class":2275},"      Show List\n",[2044,2825,2827,2830,2833],{"class":2046,"line":2826},14,[2044,2828,2829],{"class":2054},"    \u003C/",[2044,2831,2832],{"class":2094},"button",[2044,2834,2098],{"class":2054},[2044,2836,2838,2840,2842],{"class":2046,"line":2837},15,[2044,2839,2145],{"class":2054},[2044,2841,2106],{"class":2094},[2044,2843,2098],{"class":2054},[2044,2845,2847,2849,2851],{"class":2046,"line":2846},16,[2044,2848,2155],{"class":2054},[2044,2850,2095],{"class":2094},[2044,2852,2098],{"class":2054},[2161,2854,2856],{"id":2855},"delayed-or-lazy-hydration","Delayed (or Lazy) Hydration",[2030,2858,2859],{},"Lazy components are great for controlling the chunk sizes in your app, but they don't always enhance runtime performance, as they still load eagerly unless conditionally rendered. In real-world applications, some pages may include a lot of content and a lot of components, and most of the time not all of them need to be interactive as soon as the page is loaded. Having them all load eagerly can negatively impact performance.",[2030,2861,2862],{},"In order to optimize your app, you may want to delay the hydration of some components until they're visible, or until the browser is done with more important tasks.",[2030,2864,2865],{},"Nuxt supports this using lazy (or delayed) hydration, allowing you to control when components become interactive.",[2867,2868,2870],"h3",{"id":2869},"hydration-strategies","Hydration Strategies",[2030,2872,2873],{},"Nuxt provides a range of built-in hydration strategies. Only one strategy can be used per lazy component.",[2228,2875,2876],{},[2030,2877,2878,2879,2882],{},"Any prop change on a lazily hydrated component will trigger hydration immediately. (e.g., changing a prop on a component with ",[2041,2880,2881],{},"hydrate-never"," will cause it to hydrate)",[2884,2885,2886],"warning",{},[2030,2887,2888,2889,2892,2893,2240],{},"Currently Nuxt's built-in lazy hydration only works in single-file components (SFCs), and requires you to define the prop in the template (rather than spreading an object of props via ",[2041,2890,2891],{},"v-bind","). It also does not work with direct imports from ",[2041,2894,2412],{},[2896,2897,2899],"h4",{"id":2898},"hydrate-on-visible",[2041,2900,2898],{},[2030,2902,2903],{},"Hydrates the component when it becomes visible in the viewport.",[2034,2905,2907],{"className":2377,"code":2906,"filename":2423,"language":2378,"meta":2039,"style":2039},"\u003Ctemplate>\n  \u003Cdiv>\n    \u003CLazyMyComponent hydrate-on-visible />\n  \u003C/div>\n\u003C/template>\n",[2041,2908,2909,2917,2925,2937,2945],{"__ignoreMap":2039},[2044,2910,2911,2913,2915],{"class":2046,"line":2047},[2044,2912,2091],{"class":2054},[2044,2914,2095],{"class":2094},[2044,2916,2098],{"class":2054},[2044,2918,2919,2921,2923],{"class":2046,"line":2061},[2044,2920,2103],{"class":2054},[2044,2922,2106],{"class":2094},[2044,2924,2098],{"class":2054},[2044,2926,2927,2929,2932,2935],{"class":2046,"line":2072},[2044,2928,2113],{"class":2054},[2044,2930,2931],{"class":2094},"LazyMyComponent",[2044,2933,2934],{"class":2389}," hydrate-on-visible",[2044,2936,2119],{"class":2054},[2044,2938,2939,2941,2943],{"class":2046,"line":2122},[2044,2940,2145],{"class":2054},[2044,2942,2106],{"class":2094},[2044,2944,2098],{"class":2054},[2044,2946,2947,2949,2951],{"class":2046,"line":2132},[2044,2948,2155],{"class":2054},[2044,2950,2095],{"class":2094},[2044,2952,2098],{"class":2054},[2954,2955,2958],"read-more",{"to":2956,"title":2957},"https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver/IntersectionObserver","IntersectionObserver options",[2030,2959,2960,2961,2240],{},"Read more about the options for ",[2041,2962,2898],{},[2228,2964,2965],{},[2030,2966,2967,2968,2240],{},"Under the hood, this uses Vue's built-in ",[2969,2970,2974,2977],"a",{"href":2971,"rel":2972},"https://vuejs.org/guide/components/async#hydrate-on-visible",[2973],"nofollow",[2041,2975,2976],{},"hydrateOnVisible"," strategy",[2896,2979,2981],{"id":2980},"hydrate-on-idle",[2041,2982,2980],{},[2030,2984,2985],{},"Hydrates the component when the browser is idle. This is suitable if you need the component to load as soon as possible, but not block the critical rendering path.",[2030,2987,2988],{},"You can also pass a number which serves as a max timeout.",[2034,2990,2992],{"className":2377,"code":2991,"filename":2423,"language":2378,"meta":2039,"style":2039},"\u003Ctemplate>\n  \u003Cdiv>\n    \u003CLazyMyComponent hydrate-on-idle />\n  \u003C/div>\n\u003C/template>\n",[2041,2993,2994,3002,3010,3021,3029],{"__ignoreMap":2039},[2044,2995,2996,2998,3000],{"class":2046,"line":2047},[2044,2997,2091],{"class":2054},[2044,2999,2095],{"class":2094},[2044,3001,2098],{"class":2054},[2044,3003,3004,3006,3008],{"class":2046,"line":2061},[2044,3005,2103],{"class":2054},[2044,3007,2106],{"class":2094},[2044,3009,2098],{"class":2054},[2044,3011,3012,3014,3016,3019],{"class":2046,"line":2072},[2044,3013,2113],{"class":2054},[2044,3015,2931],{"class":2094},[2044,3017,3018],{"class":2389}," hydrate-on-idle",[2044,3020,2119],{"class":2054},[2044,3022,3023,3025,3027],{"class":2046,"line":2122},[2044,3024,2145],{"class":2054},[2044,3026,2106],{"class":2094},[2044,3028,2098],{"class":2054},[2044,3030,3031,3033,3035],{"class":2046,"line":2132},[2044,3032,2155],{"class":2054},[2044,3034,2095],{"class":2094},[2044,3036,2098],{"class":2054},[2228,3038,3039],{},[2030,3040,2967,3041,2240],{},[2969,3042,3045,2977],{"href":3043,"rel":3044},"https://vuejs.org/guide/components/async#hydrate-on-idle",[2973],[2041,3046,3047],{},"hydrateOnIdle",[2896,3049,3051],{"id":3050},"hydrate-on-interaction",[2041,3052,3050],{},[2030,3054,3055],{},"Hydrates the component after a specified interaction (e.g., click, mouseover).",[2034,3057,3059],{"className":2377,"code":3058,"filename":2423,"language":2378,"meta":2039,"style":2039},"\u003Ctemplate>\n  \u003Cdiv>\n    \u003CLazyMyComponent hydrate-on-interaction=\"mouseover\" />\n  \u003C/div>\n\u003C/template>\n",[2041,3060,3061,3069,3077,3097,3105],{"__ignoreMap":2039},[2044,3062,3063,3065,3067],{"class":2046,"line":2047},[2044,3064,2091],{"class":2054},[2044,3066,2095],{"class":2094},[2044,3068,2098],{"class":2054},[2044,3070,3071,3073,3075],{"class":2046,"line":2061},[2044,3072,2103],{"class":2054},[2044,3074,2106],{"class":2094},[2044,3076,2098],{"class":2054},[2044,3078,3079,3081,3083,3086,3088,3090,3093,3095],{"class":2046,"line":2072},[2044,3080,2113],{"class":2054},[2044,3082,2931],{"class":2094},[2044,3084,3085],{"class":2389}," hydrate-on-interaction",[2044,3087,2393],{"class":2054},[2044,3089,2396],{"class":2054},[2044,3091,3092],{"class":2308},"mouseover",[2044,3094,2396],{"class":2054},[2044,3096,2119],{"class":2054},[2044,3098,3099,3101,3103],{"class":2046,"line":2122},[2044,3100,2145],{"class":2054},[2044,3102,2106],{"class":2094},[2044,3104,2098],{"class":2054},[2044,3106,3107,3109,3111],{"class":2046,"line":2132},[2044,3108,2155],{"class":2054},[2044,3110,2095],{"class":2094},[2044,3112,2098],{"class":2054},[2030,3114,3115,3116,3119,3120,3123,3124,2240],{},"If you do not pass an event or list of events, it defaults to hydrating on ",[2041,3117,3118],{},"pointerenter",", ",[2041,3121,3122],{},"click"," and ",[2041,3125,3126],{},"focus",[2228,3128,3129],{},[2030,3130,2967,3131,2240],{},[2969,3132,3135,2977],{"href":3133,"rel":3134},"https://vuejs.org/guide/components/async#hydrate-on-interaction",[2973],[2041,3136,3137],{},"hydrateOnInteraction",[2896,3139,3141],{"id":3140},"hydrate-on-media-query",[2041,3142,3140],{},[2030,3144,3145],{},"Hydrates the component when the window matches a media query.",[2034,3147,3149],{"className":2377,"code":3148,"filename":2423,"language":2378,"meta":2039,"style":2039},"\u003Ctemplate>\n  \u003Cdiv>\n    \u003CLazyMyComponent hydrate-on-media-query=\"(max-width: 768px)\" />\n  \u003C/div>\n\u003C/template>\n",[2041,3150,3151,3159,3167,3187,3195],{"__ignoreMap":2039},[2044,3152,3153,3155,3157],{"class":2046,"line":2047},[2044,3154,2091],{"class":2054},[2044,3156,2095],{"class":2094},[2044,3158,2098],{"class":2054},[2044,3160,3161,3163,3165],{"class":2046,"line":2061},[2044,3162,2103],{"class":2054},[2044,3164,2106],{"class":2094},[2044,3166,2098],{"class":2054},[2044,3168,3169,3171,3173,3176,3178,3180,3183,3185],{"class":2046,"line":2072},[2044,3170,2113],{"class":2054},[2044,3172,2931],{"class":2094},[2044,3174,3175],{"class":2389}," hydrate-on-media-query",[2044,3177,2393],{"class":2054},[2044,3179,2396],{"class":2054},[2044,3181,3182],{"class":2308},"(max-width: 768px)",[2044,3184,2396],{"class":2054},[2044,3186,2119],{"class":2054},[2044,3188,3189,3191,3193],{"class":2046,"line":2122},[2044,3190,2145],{"class":2054},[2044,3192,2106],{"class":2094},[2044,3194,2098],{"class":2054},[2044,3196,3197,3199,3201],{"class":2046,"line":2132},[2044,3198,2155],{"class":2054},[2044,3200,2095],{"class":2094},[2044,3202,2098],{"class":2054},[2228,3204,3205],{},[2030,3206,2967,3207,2240],{},[2969,3208,3211,2977],{"href":3209,"rel":3210},"https://vuejs.org/guide/components/async#hydrate-on-media-query",[2973],[2041,3212,3213],{},"hydrateOnMediaQuery",[2896,3215,3217],{"id":3216},"hydrate-after",[2041,3218,3216],{},[2030,3220,3221],{},"Hydrates the component after a specified delay (in milliseconds).",[2034,3223,3225],{"className":2377,"code":3224,"filename":2423,"language":2378,"meta":2039,"style":2039},"\u003Ctemplate>\n  \u003Cdiv>\n    \u003CLazyMyComponent :hydrate-after=\"2000\" />\n  \u003C/div>\n\u003C/template>\n",[2041,3226,3227,3235,3243,3263,3271],{"__ignoreMap":2039},[2044,3228,3229,3231,3233],{"class":2046,"line":2047},[2044,3230,2091],{"class":2054},[2044,3232,2095],{"class":2094},[2044,3234,2098],{"class":2054},[2044,3236,3237,3239,3241],{"class":2046,"line":2061},[2044,3238,2103],{"class":2054},[2044,3240,2106],{"class":2094},[2044,3242,2098],{"class":2054},[2044,3244,3245,3247,3249,3252,3254,3256,3259,3261],{"class":2046,"line":2072},[2044,3246,2113],{"class":2054},[2044,3248,2931],{"class":2094},[2044,3250,3251],{"class":2389}," :hydrate-after",[2044,3253,2393],{"class":2054},[2044,3255,2396],{"class":2054},[2044,3257,3258],{"class":2308},"2000",[2044,3260,2396],{"class":2054},[2044,3262,2119],{"class":2054},[2044,3264,3265,3267,3269],{"class":2046,"line":2122},[2044,3266,2145],{"class":2054},[2044,3268,2106],{"class":2094},[2044,3270,2098],{"class":2054},[2044,3272,3273,3275,3277],{"class":2046,"line":2132},[2044,3274,2155],{"class":2054},[2044,3276,2095],{"class":2094},[2044,3278,2098],{"class":2054},[2896,3280,3282],{"id":3281},"hydrate-when",[2041,3283,3281],{},[2030,3285,3286],{},"Hydrates the component based on a boolean condition.",[2034,3288,3290],{"className":2377,"code":3289,"filename":2423,"language":2378,"meta":2039,"style":2039},"\u003Ctemplate>\n  \u003Cdiv>\n    \u003CLazyMyComponent :hydrate-when=\"isReady\" />\n  \u003C/div>\n\u003C/template>\n\n\u003Cscript setup lang=\"ts\">\nconst isReady = ref(false)\nfunction myFunction () {\n  // trigger custom hydration strategy...\n  isReady.value = true\n}\n\u003C/script>\n",[2041,3291,3292,3300,3308,3328,3336,3344,3348,3368,3385,3399,3405,3421,3426],{"__ignoreMap":2039},[2044,3293,3294,3296,3298],{"class":2046,"line":2047},[2044,3295,2091],{"class":2054},[2044,3297,2095],{"class":2094},[2044,3299,2098],{"class":2054},[2044,3301,3302,3304,3306],{"class":2046,"line":2061},[2044,3303,2103],{"class":2054},[2044,3305,2106],{"class":2094},[2044,3307,2098],{"class":2054},[2044,3309,3310,3312,3314,3317,3319,3321,3324,3326],{"class":2046,"line":2072},[2044,3311,2113],{"class":2054},[2044,3313,2931],{"class":2094},[2044,3315,3316],{"class":2389}," :hydrate-when",[2044,3318,2393],{"class":2054},[2044,3320,2396],{"class":2054},[2044,3322,3323],{"class":2308},"isReady",[2044,3325,2396],{"class":2054},[2044,3327,2119],{"class":2054},[2044,3329,3330,3332,3334],{"class":2046,"line":2122},[2044,3331,2145],{"class":2054},[2044,3333,2106],{"class":2094},[2044,3335,2098],{"class":2054},[2044,3337,3338,3340,3342],{"class":2046,"line":2132},[2044,3339,2155],{"class":2054},[2044,3341,2095],{"class":2094},[2044,3343,2098],{"class":2054},[2044,3345,3346],{"class":2046,"line":2142},[2044,3347,2477],{"emptyLinePlaceholder":1196},[2044,3349,3350,3352,3354,3356,3358,3360,3362,3364,3366],{"class":2046,"line":2152},[2044,3351,2091],{"class":2054},[2044,3353,2432],{"class":2094},[2044,3355,2435],{"class":2389},[2044,3357,2438],{"class":2389},[2044,3359,2393],{"class":2054},[2044,3361,2396],{"class":2054},[2044,3363,2256],{"class":2308},[2044,3365,2396],{"class":2054},[2044,3367,2098],{"class":2054},[2044,3369,3370,3372,3375,3377,3379,3381,3383],{"class":2046,"line":2347},[2044,3371,2482],{"class":2389},[2044,3373,3374],{"class":2275}," isReady ",[2044,3376,2393],{"class":2054},[2044,3378,2701],{"class":2271},[2044,3380,2276],{"class":2275},[2044,3382,2250],{"class":2328},[2044,3384,2353],{"class":2275},[2044,3386,3387,3390,3393,3396],{"class":2046,"line":2544},[2044,3388,3389],{"class":2389},"function",[2044,3391,3392],{"class":2271}," myFunction",[2044,3394,3395],{"class":2054}," ()",[2044,3397,3398],{"class":2054}," {\n",[2044,3400,3401],{"class":2046,"line":2564},[2044,3402,3404],{"class":3403},"sWuyu","  // trigger custom hydration strategy...\n",[2044,3406,3407,3410,3412,3415,3418],{"class":2046,"line":2799},[2044,3408,3409],{"class":2275},"  isReady",[2044,3411,2240],{"class":2054},[2044,3413,3414],{"class":2275},"value",[2044,3416,3417],{"class":2054}," =",[2044,3419,3420],{"class":2328}," true\n",[2044,3422,3423],{"class":2046,"line":2814},[2044,3424,3425],{"class":2054},"}\n",[2044,3427,3428,3430,3432],{"class":2046,"line":2820},[2044,3429,2155],{"class":2054},[2044,3431,2432],{"class":2094},[2044,3433,2098],{"class":2054},[2896,3435,3436],{"id":2881},[2041,3437,2881],{},[2030,3439,3440],{},"Never hydrates the component.",[2034,3442,3444],{"className":2377,"code":3443,"filename":2423,"language":2378,"meta":2039,"style":2039},"\u003Ctemplate>\n  \u003Cdiv>\n    \u003CLazyMyComponent hydrate-never />\n  \u003C/div>\n\u003C/template>\n",[2041,3445,3446,3454,3462,3473,3481],{"__ignoreMap":2039},[2044,3447,3448,3450,3452],{"class":2046,"line":2047},[2044,3449,2091],{"class":2054},[2044,3451,2095],{"class":2094},[2044,3453,2098],{"class":2054},[2044,3455,3456,3458,3460],{"class":2046,"line":2061},[2044,3457,2103],{"class":2054},[2044,3459,2106],{"class":2094},[2044,3461,2098],{"class":2054},[2044,3463,3464,3466,3468,3471],{"class":2046,"line":2072},[2044,3465,2113],{"class":2054},[2044,3467,2931],{"class":2094},[2044,3469,3470],{"class":2389}," hydrate-never",[2044,3472,2119],{"class":2054},[2044,3474,3475,3477,3479],{"class":2046,"line":2122},[2044,3476,2145],{"class":2054},[2044,3478,2106],{"class":2094},[2044,3480,2098],{"class":2054},[2044,3482,3483,3485,3487],{"class":2046,"line":2132},[2044,3484,2155],{"class":2054},[2044,3486,2095],{"class":2094},[2044,3488,2098],{"class":2054},[2867,3490,3492],{"id":3491},"listening-to-hydration-events","Listening to Hydration Events",[2030,3494,3495,3496,3499],{},"All delayed hydration components emit a ",[2041,3497,3498],{},"@hydrated"," event when they are hydrated.",[2034,3501,3503],{"className":2377,"code":3502,"filename":2423,"language":2378,"meta":2039,"style":2039},"\u003Ctemplate>\n  \u003Cdiv>\n    \u003CLazyMyComponent\n      hydrate-on-visible\n      @hydrated=\"onHydrate\"\n    />\n  \u003C/div>\n\u003C/template>\n\n\u003Cscript setup lang=\"ts\">\nfunction onHydrate () {\n  console.log('Component has been hydrated!')\n}\n\u003C/script>\n",[2041,3504,3505,3513,3521,3528,3533,3547,3552,3560,3568,3572,3592,3603,3624,3628],{"__ignoreMap":2039},[2044,3506,3507,3509,3511],{"class":2046,"line":2047},[2044,3508,2091],{"class":2054},[2044,3510,2095],{"class":2094},[2044,3512,2098],{"class":2054},[2044,3514,3515,3517,3519],{"class":2046,"line":2061},[2044,3516,2103],{"class":2054},[2044,3518,2106],{"class":2094},[2044,3520,2098],{"class":2054},[2044,3522,3523,3525],{"class":2046,"line":2072},[2044,3524,2113],{"class":2054},[2044,3526,3527],{"class":2094},"LazyMyComponent\n",[2044,3529,3530],{"class":2046,"line":2122},[2044,3531,3532],{"class":2389},"      hydrate-on-visible\n",[2044,3534,3535,3538,3540,3542,3545],{"class":2046,"line":2132},[2044,3536,3537],{"class":2389},"      @hydrated",[2044,3539,2393],{"class":2054},[2044,3541,2396],{"class":2054},[2044,3543,3544],{"class":2308},"onHydrate",[2044,3546,2796],{"class":2054},[2044,3548,3549],{"class":2046,"line":2142},[2044,3550,3551],{"class":2054},"    />\n",[2044,3553,3554,3556,3558],{"class":2046,"line":2152},[2044,3555,2145],{"class":2054},[2044,3557,2106],{"class":2094},[2044,3559,2098],{"class":2054},[2044,3561,3562,3564,3566],{"class":2046,"line":2347},[2044,3563,2155],{"class":2054},[2044,3565,2095],{"class":2094},[2044,3567,2098],{"class":2054},[2044,3569,3570],{"class":2046,"line":2544},[2044,3571,2477],{"emptyLinePlaceholder":1196},[2044,3573,3574,3576,3578,3580,3582,3584,3586,3588,3590],{"class":2046,"line":2564},[2044,3575,2091],{"class":2054},[2044,3577,2432],{"class":2094},[2044,3579,2435],{"class":2389},[2044,3581,2438],{"class":2389},[2044,3583,2393],{"class":2054},[2044,3585,2396],{"class":2054},[2044,3587,2256],{"class":2308},[2044,3589,2396],{"class":2054},[2044,3591,2098],{"class":2054},[2044,3593,3594,3596,3599,3601],{"class":2046,"line":2799},[2044,3595,3389],{"class":2389},[2044,3597,3598],{"class":2271}," onHydrate",[2044,3600,3395],{"class":2054},[2044,3602,3398],{"class":2054},[2044,3604,3605,3608,3610,3613,3615,3617,3620,3622],{"class":2046,"line":2814},[2044,3606,3607],{"class":2275},"  console",[2044,3609,2240],{"class":2054},[2044,3611,3612],{"class":2271},"log",[2044,3614,2276],{"class":2094},[2044,3616,2312],{"class":2054},[2044,3618,3619],{"class":2308},"Component has been hydrated!",[2044,3621,2312],{"class":2054},[2044,3623,2353],{"class":2094},[2044,3625,3626],{"class":2046,"line":2820},[2044,3627,3425],{"class":2054},[2044,3629,3630,3632,3634],{"class":2046,"line":2826},[2044,3631,2155],{"class":2054},[2044,3633,2432],{"class":2094},[2044,3635,2098],{"class":2054},[2867,3637,3639],{"id":3638},"caveats-and-best-practices","Caveats and Best Practices",[2030,3641,3642],{},"Delayed hydration can offer performance benefits, but it's essential to use it correctly:",[3644,3645,3646,3654,3664,3674,3698],"ol",{},[3647,3648,3649,3653],"li",{},[3650,3651,3652],"strong",{},"Prioritize In-Viewport Content:"," Avoid delayed hydration for critical, above-the-fold content. It's best suited for content that isn't immediately needed.",[3647,3655,3656,3659,3660,3663],{},[3650,3657,3658],{},"Conditional Rendering:"," When using ",[2041,3661,3662],{},"v-if=\"false\""," on a lazy component, you might not need delayed hydration. You can just use a normal lazy component.",[3647,3665,3666,3669,3670,3673],{},[3650,3667,3668],{},"Shared State:"," Be mindful of shared state (",[2041,3671,3672],{},"v-model",") across multiple components. Updating the model in one component can trigger hydration in all components bound to that model.",[3647,3675,3676,3679,3680],{},[3650,3677,3678],{},"Use Each Strategy's Intended Use Case:"," Each strategy is optimized for a specific purpose.",[3681,3682,3683,3688,3693],"ul",{},[3647,3684,3685,3687],{},[2041,3686,3281],{}," is best for components that might not always need to be hydrated.",[3647,3689,3690,3692],{},[2041,3691,3216],{}," is for components that can wait a specific amount of time.",[3647,3694,3695,3697],{},[2041,3696,2980],{}," is for components that can be hydrated when the browser is idle.",[3647,3699,3700,3706],{},[3650,3701,3702,3703,3705],{},"Avoid ",[2041,3704,2881],{}," on interactive components:"," If a component requires user interaction, it should not be set to never hydrate.",[2161,3708,3710],{"id":3709},"direct-imports","Direct Imports",[2030,3712,3713,3714,3716],{},"You can also explicitly import components from ",[2041,3715,2412],{}," if you want or need to bypass Nuxt's auto-importing functionality.",[2034,3718,3720],{"className":2377,"code":3719,"filename":2423,"language":2378,"meta":2039,"style":2039},"\u003Cscript setup lang=\"ts\">\nimport { LazyMountainsList, NuxtLink } from '#components'\n\nconst show = ref(false)\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cdiv>\n    \u003Ch1>Mountains\u003C/h1>\n    \u003CLazyMountainsList v-if=\"show\" />\n    \u003Cbutton\n      v-if=\"!show\"\n      @click=\"show = true\"\n    >\n      Show List\n    \u003C/button>\n    \u003CNuxtLink to=\"/\">Home\u003C/NuxtLink>\n  \u003C/div>\n\u003C/template>\n",[2041,3721,3722,3742,3766,3770,3786,3794,3798,3806,3814,3830,3848,3854,3866,3878,3882,3886,3894,3925,3934],{"__ignoreMap":2039},[2044,3723,3724,3726,3728,3730,3732,3734,3736,3738,3740],{"class":2046,"line":2047},[2044,3725,2091],{"class":2054},[2044,3727,2432],{"class":2094},[2044,3729,2435],{"class":2389},[2044,3731,2438],{"class":2389},[2044,3733,2393],{"class":2054},[2044,3735,2396],{"class":2054},[2044,3737,2256],{"class":2308},[2044,3739,2396],{"class":2054},[2044,3741,2098],{"class":2054},[2044,3743,3744,3746,3748,3751,3753,3756,3758,3760,3762,3764],{"class":2046,"line":2061},[2044,3745,2453],{"class":2264},[2044,3747,2456],{"class":2054},[2044,3749,3750],{"class":2275}," LazyMountainsList",[2044,3752,2332],{"class":2054},[2044,3754,3755],{"class":2275}," NuxtLink",[2044,3757,2462],{"class":2054},[2044,3759,2465],{"class":2264},[2044,3761,2305],{"class":2054},[2044,3763,2412],{"class":2308},[2044,3765,2472],{"class":2054},[2044,3767,3768],{"class":2046,"line":2072},[2044,3769,2477],{"emptyLinePlaceholder":1196},[2044,3771,3772,3774,3776,3778,3780,3782,3784],{"class":2046,"line":2122},[2044,3773,2482],{"class":2389},[2044,3775,2696],{"class":2275},[2044,3777,2393],{"class":2054},[2044,3779,2701],{"class":2271},[2044,3781,2276],{"class":2275},[2044,3783,2250],{"class":2328},[2044,3785,2353],{"class":2275},[2044,3787,3788,3790,3792],{"class":2046,"line":2132},[2044,3789,2155],{"class":2054},[2044,3791,2432],{"class":2094},[2044,3793,2098],{"class":2054},[2044,3795,3796],{"class":2046,"line":2142},[2044,3797,2477],{"emptyLinePlaceholder":1196},[2044,3799,3800,3802,3804],{"class":2046,"line":2152},[2044,3801,2091],{"class":2054},[2044,3803,2095],{"class":2094},[2044,3805,2098],{"class":2054},[2044,3807,3808,3810,3812],{"class":2046,"line":2347},[2044,3809,2103],{"class":2054},[2044,3811,2106],{"class":2094},[2044,3813,2098],{"class":2054},[2044,3815,3816,3818,3820,3822,3824,3826,3828],{"class":2046,"line":2544},[2044,3817,2113],{"class":2054},[2044,3819,2742],{"class":2094},[2044,3821,2404],{"class":2054},[2044,3823,2747],{"class":2275},[2044,3825,2155],{"class":2054},[2044,3827,2742],{"class":2094},[2044,3829,2098],{"class":2054},[2044,3831,3832,3834,3836,3838,3840,3842,3844,3846],{"class":2046,"line":2564},[2044,3833,2113],{"class":2054},[2044,3835,2760],{"class":2094},[2044,3837,2763],{"class":2389},[2044,3839,2393],{"class":2054},[2044,3841,2396],{"class":2054},[2044,3843,2770],{"class":2308},[2044,3845,2396],{"class":2054},[2044,3847,2119],{"class":2054},[2044,3849,3850,3852],{"class":2046,"line":2799},[2044,3851,2113],{"class":2054},[2044,3853,2781],{"class":2094},[2044,3855,3856,3858,3860,3862,3864],{"class":2046,"line":2814},[2044,3857,2786],{"class":2389},[2044,3859,2393],{"class":2054},[2044,3861,2396],{"class":2054},[2044,3863,2793],{"class":2308},[2044,3865,2796],{"class":2054},[2044,3867,3868,3870,3872,3874,3876],{"class":2046,"line":2820},[2044,3869,2802],{"class":2389},[2044,3871,2393],{"class":2054},[2044,3873,2396],{"class":2054},[2044,3875,2809],{"class":2308},[2044,3877,2796],{"class":2054},[2044,3879,3880],{"class":2046,"line":2826},[2044,3881,2817],{"class":2054},[2044,3883,3884],{"class":2046,"line":2837},[2044,3885,2823],{"class":2275},[2044,3887,3888,3890,3892],{"class":2046,"line":2846},[2044,3889,2829],{"class":2054},[2044,3891,2832],{"class":2094},[2044,3893,2098],{"class":2054},[2044,3895,3897,3899,3902,3905,3907,3909,3912,3914,3916,3919,3921,3923],{"class":2046,"line":3896},17,[2044,3898,2113],{"class":2054},[2044,3900,3901],{"class":2094},"NuxtLink",[2044,3903,3904],{"class":2389}," to",[2044,3906,2393],{"class":2054},[2044,3908,2396],{"class":2054},[2044,3910,3911],{"class":2308},"/",[2044,3913,2396],{"class":2054},[2044,3915,2404],{"class":2054},[2044,3917,3918],{"class":2275},"Home",[2044,3920,2155],{"class":2054},[2044,3922,3901],{"class":2094},[2044,3924,2098],{"class":2054},[2044,3926,3928,3930,3932],{"class":2046,"line":3927},18,[2044,3929,2145],{"class":2054},[2044,3931,2106],{"class":2094},[2044,3933,2098],{"class":2054},[2044,3935,3937,3939,3941],{"class":2046,"line":3936},19,[2044,3938,2155],{"class":2054},[2044,3940,2095],{"class":2094},[2044,3942,2098],{"class":2054},[2161,3944,3946],{"id":3945},"custom-directories","Custom Directories",[2030,3948,3949,3950,3952],{},"By default, only the ",[2041,3951,2309],{}," directory is scanned. If you want to add other directories, or change how the components are scanned within a subfolder of this directory, you can add additional directories to the configuration:",[2034,3954,3957],{"className":3955,"code":3956,"filename":233,"language":2256,"meta":2257,"style":2039},"language-ts shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","export default defineNuxtConfig({\n  components: [\n    // ~/calendar-module/components/event/Update.vue => \u003CEventUpdate />\n    { path: '~/calendar-module/components' },\n\n    // ~/user-module/components/account/UserDeleteDialog.vue => \u003CUserDeleteDialog />\n    { path: '~/user-module/components', pathPrefix: false },\n\n    // ~/components/special-components/Btn.vue => \u003CSpecialBtn />\n    { path: '~/components/special-components', prefix: 'Special' },\n\n    // It's important that this comes last if you have overrides you wish to apply\n    // to sub-directories of `~/components`.\n    //\n    // ~/components/Btn.vue => \u003CBtn />\n    // ~/components/base/Btn.vue => \u003CBaseBtn />\n    '~/components',\n  ],\n})\n",[2041,3958,3959,3971,3979,3984,4004,4008,4013,4039,4043,4048,4079,4083,4088,4093,4098,4103,4108,4119,4125],{"__ignoreMap":2039},[2044,3960,3961,3963,3965,3967,3969],{"class":2046,"line":2047},[2044,3962,2265],{"class":2264},[2044,3964,2268],{"class":2264},[2044,3966,2272],{"class":2271},[2044,3968,2276],{"class":2275},[2044,3970,2279],{"class":2054},[2044,3972,3973,3975,3977],{"class":2046,"line":2061},[2044,3974,2284],{"class":2094},[2044,3976,2287],{"class":2054},[2044,3978,2290],{"class":2275},[2044,3980,3981],{"class":2046,"line":2072},[2044,3982,3983],{"class":3403},"    // ~/calendar-module/components/event/Update.vue => \u003CEventUpdate />\n",[2044,3985,3986,3989,3992,3994,3996,3999,4001],{"class":2046,"line":2122},[2044,3987,3988],{"class":2054},"    {",[2044,3990,3991],{"class":2094}," path",[2044,3993,2287],{"class":2054},[2044,3995,2305],{"class":2054},[2044,3997,3998],{"class":2308},"~/calendar-module/components",[2044,4000,2312],{"class":2054},[2044,4002,4003],{"class":2054}," },\n",[2044,4005,4006],{"class":2046,"line":2132},[2044,4007,2477],{"emptyLinePlaceholder":1196},[2044,4009,4010],{"class":2046,"line":2142},[2044,4011,4012],{"class":3403},"    // ~/user-module/components/account/UserDeleteDialog.vue => \u003CUserDeleteDialog />\n",[2044,4014,4015,4017,4019,4021,4023,4026,4028,4030,4033,4035,4037],{"class":2046,"line":2152},[2044,4016,3988],{"class":2054},[2044,4018,3991],{"class":2094},[2044,4020,2287],{"class":2054},[2044,4022,2305],{"class":2054},[2044,4024,4025],{"class":2308},"~/user-module/components",[2044,4027,2312],{"class":2054},[2044,4029,2332],{"class":2054},[2044,4031,4032],{"class":2094}," pathPrefix",[2044,4034,2287],{"class":2054},[2044,4036,2329],{"class":2328},[2044,4038,4003],{"class":2054},[2044,4040,4041],{"class":2046,"line":2347},[2044,4042,2477],{"emptyLinePlaceholder":1196},[2044,4044,4045],{"class":2046,"line":2544},[2044,4046,4047],{"class":3403},"    // ~/components/special-components/Btn.vue => \u003CSpecialBtn />\n",[2044,4049,4050,4052,4054,4056,4058,4061,4063,4065,4068,4070,4072,4075,4077],{"class":2046,"line":2564},[2044,4051,3988],{"class":2054},[2044,4053,3991],{"class":2094},[2044,4055,2287],{"class":2054},[2044,4057,2305],{"class":2054},[2044,4059,4060],{"class":2308},"~/components/special-components",[2044,4062,2312],{"class":2054},[2044,4064,2332],{"class":2054},[2044,4066,4067],{"class":2094}," prefix",[2044,4069,2287],{"class":2054},[2044,4071,2305],{"class":2054},[2044,4073,4074],{"class":2308},"Special",[2044,4076,2312],{"class":2054},[2044,4078,4003],{"class":2054},[2044,4080,4081],{"class":2046,"line":2799},[2044,4082,2477],{"emptyLinePlaceholder":1196},[2044,4084,4085],{"class":2046,"line":2814},[2044,4086,4087],{"class":3403},"    // It's important that this comes last if you have overrides you wish to apply\n",[2044,4089,4090],{"class":2046,"line":2820},[2044,4091,4092],{"class":3403},"    // to sub-directories of `~/components`.\n",[2044,4094,4095],{"class":2046,"line":2826},[2044,4096,4097],{"class":3403},"    //\n",[2044,4099,4100],{"class":2046,"line":2837},[2044,4101,4102],{"class":3403},"    // ~/components/Btn.vue => \u003CBtn />\n",[2044,4104,4105],{"class":2046,"line":2846},[2044,4106,4107],{"class":3403},"    // ~/components/base/Btn.vue => \u003CBaseBtn />\n",[2044,4109,4110,4113,4115,4117],{"class":2046,"line":3896},[2044,4111,4112],{"class":2054},"    '",[2044,4114,2309],{"class":2308},[2044,4116,2312],{"class":2054},[2044,4118,2315],{"class":2054},[2044,4120,4121,4123],{"class":2046,"line":3927},[2044,4122,2342],{"class":2275},[2044,4124,2315],{"class":2054},[2044,4126,4127,4129],{"class":2046,"line":3936},[2044,4128,2350],{"class":2054},[2044,4130,2353],{"class":2275},[2228,4132,4133],{},[2030,4134,4135],{},"Any nested directories need to be added first as they are scanned in order.",[2161,4137,4139],{"id":4138},"npm-packages","npm Packages",[2030,4141,4142,4143,4149,4150,4153],{},"If you want to auto-import components from an npm package, you can use ",[2969,4144,4146],{"href":4145},"/docs/3.x/api/kit/components#addcomponent",[2041,4147,4148],{},"addComponent"," in a ",[2969,4151,4152],{"href":163},"local module"," to register them.",[4155,4156,4157,4293],"code-group",{},[2034,4158,4161],{"className":3955,"code":4159,"filename":4160,"language":2256,"meta":2257,"style":2039},"import { addComponent, defineNuxtModule } from '@nuxt/kit'\n\nexport default defineNuxtModule({\n  setup () {\n    // import { MyComponent as MyAutoImportedComponent } from 'my-npm-package'\n    addComponent({\n      name: 'MyAutoImportedComponent',\n      export: 'MyComponent',\n      filePath: 'my-npm-package',\n    })\n  },\n})\n","~/modules/register-component.ts",[2041,4162,4163,4188,4192,4204,4213,4218,4227,4243,4259,4275,4282,4287],{"__ignoreMap":2039},[2044,4164,4165,4167,4169,4172,4174,4177,4179,4181,4183,4186],{"class":2046,"line":2047},[2044,4166,2453],{"class":2264},[2044,4168,2456],{"class":2054},[2044,4170,4171],{"class":2275}," addComponent",[2044,4173,2332],{"class":2054},[2044,4175,4176],{"class":2275}," defineNuxtModule",[2044,4178,2462],{"class":2054},[2044,4180,2465],{"class":2264},[2044,4182,2305],{"class":2054},[2044,4184,4185],{"class":2308},"@nuxt/kit",[2044,4187,2472],{"class":2054},[2044,4189,4190],{"class":2046,"line":2061},[2044,4191,2477],{"emptyLinePlaceholder":1196},[2044,4193,4194,4196,4198,4200,4202],{"class":2046,"line":2072},[2044,4195,2265],{"class":2264},[2044,4197,2268],{"class":2264},[2044,4199,4176],{"class":2271},[2044,4201,2276],{"class":2275},[2044,4203,2279],{"class":2054},[2044,4205,4206,4209,4211],{"class":2046,"line":2122},[2044,4207,4208],{"class":2094},"  setup",[2044,4210,3395],{"class":2054},[2044,4212,3398],{"class":2054},[2044,4214,4215],{"class":2046,"line":2132},[2044,4216,4217],{"class":3403},"    // import { MyComponent as MyAutoImportedComponent } from 'my-npm-package'\n",[2044,4219,4220,4223,4225],{"class":2046,"line":2142},[2044,4221,4222],{"class":2271},"    addComponent",[2044,4224,2276],{"class":2094},[2044,4226,2279],{"class":2054},[2044,4228,4229,4232,4234,4236,4239,4241],{"class":2046,"line":2152},[2044,4230,4231],{"class":2094},"      name",[2044,4233,2287],{"class":2054},[2044,4235,2305],{"class":2054},[2044,4237,4238],{"class":2308},"MyAutoImportedComponent",[2044,4240,2312],{"class":2054},[2044,4242,2315],{"class":2054},[2044,4244,4245,4248,4250,4252,4255,4257],{"class":2046,"line":2347},[2044,4246,4247],{"class":2094},"      export",[2044,4249,2287],{"class":2054},[2044,4251,2305],{"class":2054},[2044,4253,4254],{"class":2308},"MyComponent",[2044,4256,2312],{"class":2054},[2044,4258,2315],{"class":2054},[2044,4260,4261,4264,4266,4268,4271,4273],{"class":2046,"line":2544},[2044,4262,4263],{"class":2094},"      filePath",[2044,4265,2287],{"class":2054},[2044,4267,2305],{"class":2054},[2044,4269,4270],{"class":2308},"my-npm-package",[2044,4272,2312],{"class":2054},[2044,4274,2315],{"class":2054},[2044,4276,4277,4280],{"class":2046,"line":2564},[2044,4278,4279],{"class":2054},"    }",[2044,4281,2353],{"class":2094},[2044,4283,4284],{"class":2046,"line":2799},[2044,4285,4286],{"class":2054},"  },\n",[2044,4288,4289,4291],{"class":2046,"line":2814},[2044,4290,2350],{"class":2054},[2044,4292,2353],{"class":2275},[2034,4294,4296],{"className":2377,"code":4295,"filename":219,"language":2378,"meta":2039,"style":2039},"\u003Ctemplate>\n  \u003Cdiv>\n    \u003C!--  the component uses the name we specified and is auto-imported  -->\n    \u003CMyAutoImportedComponent />\n  \u003C/div>\n\u003C/template>\n",[2041,4297,4298,4306,4314,4319,4327,4335],{"__ignoreMap":2039},[2044,4299,4300,4302,4304],{"class":2046,"line":2047},[2044,4301,2091],{"class":2054},[2044,4303,2095],{"class":2094},[2044,4305,2098],{"class":2054},[2044,4307,4308,4310,4312],{"class":2046,"line":2061},[2044,4309,2103],{"class":2054},[2044,4311,2106],{"class":2094},[2044,4313,2098],{"class":2054},[2044,4315,4316],{"class":2046,"line":2072},[2044,4317,4318],{"class":3403},"    \u003C!--  the component uses the name we specified and is auto-imported  -->\n",[2044,4320,4321,4323,4325],{"class":2046,"line":2122},[2044,4322,2113],{"class":2054},[2044,4324,4238],{"class":2094},[2044,4326,2119],{"class":2054},[2044,4328,4329,4331,4333],{"class":2046,"line":2132},[2044,4330,2145],{"class":2054},[2044,4332,2106],{"class":2094},[2044,4334,2098],{"class":2054},[2044,4336,4337,4339,4341],{"class":2046,"line":2142},[2044,4338,2155],{"class":2054},[2044,4340,2095],{"class":2094},[2044,4342,2098],{"class":2054},[2161,4344,4346],{"id":4345},"component-extensions","Component Extensions",[2030,4348,4349,4350,4356,4357,4360],{},"By default, any file with an extension specified in the ",[2969,4351,4353,4354],{"href":4352},"/docs/3.x/api/nuxt-config#extensions","extensions key of ",[2041,4355,233],{}," is treated as a component.\nIf you need to restrict the file extensions that should be registered as components, you can use the extended form of the components directory declaration and its ",[2041,4358,4359],{},"extensions"," key:",[2034,4362,4364],{"className":2254,"code":4363,"filename":233,"language":2256,"meta":2257,"style":2039},"export default defineNuxtConfig({\n  components: [\n    {\n      path: '~/components',\n      extensions: ['.vue'], // [!code ++]\n    },\n  ],\n})\n",[2041,4365,4366,4378,4386,4390,4404,4427,4431,4437],{"__ignoreMap":2039},[2044,4367,4368,4370,4372,4374,4376],{"class":2046,"line":2047},[2044,4369,2265],{"class":2264},[2044,4371,2268],{"class":2264},[2044,4373,2272],{"class":2271},[2044,4375,2276],{"class":2275},[2044,4377,2279],{"class":2054},[2044,4379,4380,4382,4384],{"class":2046,"line":2061},[2044,4381,2284],{"class":2094},[2044,4383,2287],{"class":2054},[2044,4385,2290],{"class":2275},[2044,4387,4388],{"class":2046,"line":2072},[2044,4389,2295],{"class":2054},[2044,4391,4392,4394,4396,4398,4400,4402],{"class":2046,"line":2122},[2044,4393,2300],{"class":2094},[2044,4395,2287],{"class":2054},[2044,4397,2305],{"class":2054},[2044,4399,2309],{"class":2308},[2044,4401,2312],{"class":2054},[2044,4403,2315],{"class":2054},[2044,4405,4407,4410,4412,4415,4417,4420,4422,4425],{"class":4406,"line":2132},[2046,2319,2320],[2044,4408,4409],{"class":2094},"      extensions",[2044,4411,2287],{"class":2054},[2044,4413,4414],{"class":2275}," [",[2044,4416,2312],{"class":2054},[2044,4418,4419],{"class":2308},".vue",[2044,4421,2312],{"class":2054},[2044,4423,4424],{"class":2275},"]",[2044,4426,2332],{"class":2054},[2044,4428,4429],{"class":2046,"line":2142},[2044,4430,2337],{"class":2054},[2044,4432,4433,4435],{"class":2046,"line":2152},[2044,4434,2342],{"class":2275},[2044,4436,2315],{"class":2054},[2044,4438,4439,4441],{"class":2046,"line":2347},[2044,4440,2350],{"class":2054},[2044,4442,2353],{"class":2275},[2161,4444,4446],{"id":4445},"client-components","Client Components",[2030,4448,4449,4450,4453],{},"If a component is meant to be rendered only client-side, you can add the ",[2041,4451,4452],{},".client"," suffix to your component.",[2034,4455,4457],{"className":2036,"code":4456,"filename":110,"language":2038,"meta":2039,"style":2039},"| components/\n--| Comments.client.vue\n",[2041,4458,4459,4465],{"__ignoreMap":2039},[2044,4460,4461,4463],{"class":2046,"line":2047},[2044,4462,2055],{"class":2054},[2044,4464,2058],{"class":2050},[2044,4466,4467,4470,4472],{"class":2046,"line":2061},[2044,4468,4469],{"class":2050},"--",[2044,4471,2055],{"class":2054},[2044,4473,4474],{"class":2050}," Comments.client.vue\n",[2034,4476,4479],{"className":2377,"code":4477,"filename":4478,"language":2378,"meta":2039,"style":2039},"\u003Ctemplate>\n  \u003Cdiv>\n    \u003C!-- this component will only be rendered on client side -->\n    \u003CComments />\n  \u003C/div>\n\u003C/template>\n","pages/example.vue",[2041,4480,4481,4489,4497,4502,4511,4519],{"__ignoreMap":2039},[2044,4482,4483,4485,4487],{"class":2046,"line":2047},[2044,4484,2091],{"class":2054},[2044,4486,2095],{"class":2094},[2044,4488,2098],{"class":2054},[2044,4490,4491,4493,4495],{"class":2046,"line":2061},[2044,4492,2103],{"class":2054},[2044,4494,2106],{"class":2094},[2044,4496,2098],{"class":2054},[2044,4498,4499],{"class":2046,"line":2072},[2044,4500,4501],{"class":3403},"    \u003C!-- this component will only be rendered on client side -->\n",[2044,4503,4504,4506,4509],{"class":2046,"line":2122},[2044,4505,2113],{"class":2054},[2044,4507,4508],{"class":2094},"Comments",[2044,4510,2119],{"class":2054},[2044,4512,4513,4515,4517],{"class":2046,"line":2132},[2044,4514,2145],{"class":2054},[2044,4516,2106],{"class":2094},[2044,4518,2098],{"class":2054},[2044,4520,4521,4523,4525],{"class":2046,"line":2142},[2044,4522,2155],{"class":2054},[2044,4524,2095],{"class":2094},[2044,4526,2098],{"class":2054},[2228,4528,4529],{},[2030,4530,4531,4532,4534],{},"This feature only works with Nuxt auto-imports and ",[2041,4533,2412],{}," imports. Explicitly importing these components from their real paths does not convert them into client-only components.",[2572,4536,4537],{},[2030,4538,4539,4541,4542,4545,4546,4549,4550,4552],{},[2041,4540,4452],{}," components are rendered only after being mounted. To access the rendered template using ",[2041,4543,4544],{},"onMounted()",", add ",[2041,4547,4548],{},"await nextTick()"," in the callback of the ",[2041,4551,4544],{}," hook.",[2954,4554,4555],{"to":441},[2030,4556,4557,4558,4560],{},"You can also achieve a similar result with the ",[2041,4559,440],{}," component.",[2161,4562,4564],{"id":4563},"server-components","Server Components",[2030,4566,4567],{},"Server components allow server-rendering individual components within your client-side apps. It's possible to use server components within Nuxt, even if you are generating a static site. That makes it possible to build complex sites that mix dynamic components, server-rendered HTML and even static chunks of markup.",[2030,4569,4570,4571,2240],{},"Server components can either be used on their own or paired with a ",[2969,4572,4574],{"href":4573},"/docs/3.x/directory-structure/components#paired-with-a-client-component","client component",[2581,4576],{"title":4577,"video-id":4578},"Watch Learn Vue video about Nuxt Server Components","u1yyXe86xJM",[4580,4581,4585],"tip",{"icon":4582,"target":4583,"to":4584},"i-lucide-newspaper","_blank","https://roe.dev/blog/nuxt-server-components",[2030,4586,4587],{},"Read Daniel Roe's guide to Nuxt Server Components.",[2867,4589,4591],{"id":4590},"standalone-server-components","Standalone server components",[2030,4593,4594],{},"Standalone server components will always be rendered on the server, also known as Islands components.",[2030,4596,4597],{},"When their props update, this will result in a network request that will update the rendered HTML in-place.",[2030,4599,4600],{},"Server components are currently experimental and in order to use them, you need to enable the 'component islands' feature in your nuxt.config:",[2034,4602,4604],{"className":3955,"code":4603,"filename":233,"language":2256,"meta":2257,"style":2039},"export default defineNuxtConfig({\n  experimental: {\n    componentIslands: true,\n  },\n})\n",[2041,4605,4606,4618,4627,4639,4643],{"__ignoreMap":2039},[2044,4607,4608,4610,4612,4614,4616],{"class":2046,"line":2047},[2044,4609,2265],{"class":2264},[2044,4611,2268],{"class":2264},[2044,4613,2272],{"class":2271},[2044,4615,2276],{"class":2275},[2044,4617,2279],{"class":2054},[2044,4619,4620,4623,4625],{"class":2046,"line":2061},[2044,4621,4622],{"class":2094},"  experimental",[2044,4624,2287],{"class":2054},[2044,4626,3398],{"class":2054},[2044,4628,4629,4632,4634,4637],{"class":2046,"line":2072},[2044,4630,4631],{"class":2094},"    componentIslands",[2044,4633,2287],{"class":2054},[2044,4635,4636],{"class":2328}," true",[2044,4638,2315],{"class":2054},[2044,4640,4641],{"class":2046,"line":2122},[2044,4642,4286],{"class":2054},[2044,4644,4645,4647],{"class":2046,"line":2132},[2044,4646,2350],{"class":2054},[2044,4648,2353],{"class":2275},[2030,4650,4651,4652,4655],{},"Now you can register server-only components with the ",[2041,4653,4654],{},".server"," suffix and use them anywhere in your application automatically.",[2034,4657,4659],{"className":2036,"code":4658,"filename":110,"language":2038,"meta":2039,"style":2039},"-| components/\n---| HighlightedMarkdown.server.vue\n",[2041,4660,4661,4669],{"__ignoreMap":2039},[2044,4662,4663,4665,4667],{"class":2046,"line":2047},[2044,4664,2051],{"class":2050},[2044,4666,2055],{"class":2054},[2044,4668,2058],{"class":2050},[2044,4670,4671,4673,4675],{"class":2046,"line":2061},[2044,4672,2064],{"class":2050},[2044,4674,2055],{"class":2054},[2044,4676,4677],{"class":2050}," HighlightedMarkdown.server.vue\n",[2034,4679,4681],{"className":2377,"code":4680,"filename":4478,"language":2378,"meta":2039,"style":2039},"\u003Ctemplate>\n  \u003Cdiv>\n    \u003C!--\n      this will automatically be rendered on the server, meaning your markdown parsing + highlighting\n      libraries are not included in your client bundle.\n     -->\n    \u003CHighlightedMarkdown markdown=\"# Headline\" />\n  \u003C/div>\n\u003C/template>\n",[2041,4682,4683,4691,4699,4704,4709,4714,4719,4740,4748],{"__ignoreMap":2039},[2044,4684,4685,4687,4689],{"class":2046,"line":2047},[2044,4686,2091],{"class":2054},[2044,4688,2095],{"class":2094},[2044,4690,2098],{"class":2054},[2044,4692,4693,4695,4697],{"class":2046,"line":2061},[2044,4694,2103],{"class":2054},[2044,4696,2106],{"class":2094},[2044,4698,2098],{"class":2054},[2044,4700,4701],{"class":2046,"line":2072},[2044,4702,4703],{"class":3403},"    \u003C!--\n",[2044,4705,4706],{"class":2046,"line":2122},[2044,4707,4708],{"class":3403},"      this will automatically be rendered on the server, meaning your markdown parsing + highlighting\n",[2044,4710,4711],{"class":2046,"line":2132},[2044,4712,4713],{"class":3403},"      libraries are not included in your client bundle.\n",[2044,4715,4716],{"class":2046,"line":2142},[2044,4717,4718],{"class":3403},"     -->\n",[2044,4720,4721,4723,4726,4729,4731,4733,4736,4738],{"class":2046,"line":2152},[2044,4722,2113],{"class":2054},[2044,4724,4725],{"class":2094},"HighlightedMarkdown",[2044,4727,4728],{"class":2389}," markdown",[2044,4730,2393],{"class":2054},[2044,4732,2396],{"class":2054},[2044,4734,4735],{"class":2308},"# Headline",[2044,4737,2396],{"class":2054},[2044,4739,2119],{"class":2054},[2044,4741,4742,4744,4746],{"class":2046,"line":2347},[2044,4743,2145],{"class":2054},[2044,4745,2106],{"class":2094},[2044,4747,2098],{"class":2054},[2044,4749,4750,4752,4754],{"class":2046,"line":2544},[2044,4751,2155],{"class":2054},[2044,4753,2095],{"class":2094},[2044,4755,2098],{"class":2054},[2030,4757,4758,4759,4763,4764,4767,4768,4771],{},"Server-only components use ",[2969,4760,4761],{"href":493},[2041,4762,492],{}," under the hood, meaning that ",[2041,4765,4766],{},"lazy"," prop and ",[2041,4769,4770],{},"#fallback"," slot are both passed down to it.",[2884,4773,4774],{},[2030,4775,4776],{},"Server components (and islands) must have a single root element. (HTML comments are considered elements as well.)",[2884,4778,4779],{},[2030,4780,4781],{},"Props are passed to server components via URL query parameters, and are therefore limited by the possible length of a URL, so be careful not to pass enormous amounts of data to server components via props.",[2884,4783,4784],{},[2030,4785,4786],{},"Be careful when nesting islands within other islands as each island adds some extra overhead.",[2884,4788,4789],{},[2030,4790,4791],{},"Most features for server-only components and island components, such as slots and client components, are only available for single file components.",[2896,4793,4795],{"id":4794},"client-components-within-server-components","Client components within server components",[2228,4797,4798],{},[2030,4799,4800,4801,4804],{},"This feature needs ",[2041,4802,4803],{},"experimental.componentIslands.selectiveClient"," within your configuration to be true.",[2030,4806,4807,4808,4811],{},"You can partially hydrate a component by setting a ",[2041,4809,4810],{},"nuxt-client"," attribute on the component you wish to be loaded client-side.",[2034,4813,4816],{"className":2377,"code":4814,"filename":4815,"language":2378,"meta":2039,"style":2039},"\u003Ctemplate>\n  \u003Cdiv>\n    \u003CHighlightedMarkdown markdown=\"# Headline\" />\n    \u003C!-- Counter will be loaded and hydrated client-side -->\n    \u003CCounter\n      nuxt-client\n      :count=\"5\"\n    />\n  \u003C/div>\n\u003C/template>\n","components/ServerWithClient.vue",[2041,4817,4818,4826,4834,4852,4857,4864,4869,4883,4887,4895],{"__ignoreMap":2039},[2044,4819,4820,4822,4824],{"class":2046,"line":2047},[2044,4821,2091],{"class":2054},[2044,4823,2095],{"class":2094},[2044,4825,2098],{"class":2054},[2044,4827,4828,4830,4832],{"class":2046,"line":2061},[2044,4829,2103],{"class":2054},[2044,4831,2106],{"class":2094},[2044,4833,2098],{"class":2054},[2044,4835,4836,4838,4840,4842,4844,4846,4848,4850],{"class":2046,"line":2072},[2044,4837,2113],{"class":2054},[2044,4839,4725],{"class":2094},[2044,4841,4728],{"class":2389},[2044,4843,2393],{"class":2054},[2044,4845,2396],{"class":2054},[2044,4847,4735],{"class":2308},[2044,4849,2396],{"class":2054},[2044,4851,2119],{"class":2054},[2044,4853,4854],{"class":2046,"line":2122},[2044,4855,4856],{"class":3403},"    \u003C!-- Counter will be loaded and hydrated client-side -->\n",[2044,4858,4859,4861],{"class":2046,"line":2132},[2044,4860,2113],{"class":2054},[2044,4862,4863],{"class":2094},"Counter\n",[2044,4865,4866],{"class":2046,"line":2142},[2044,4867,4868],{"class":2389},"      nuxt-client\n",[2044,4870,4871,4874,4876,4878,4881],{"class":2046,"line":2152},[2044,4872,4873],{"class":2389},"      :count",[2044,4875,2393],{"class":2054},[2044,4877,2396],{"class":2054},[2044,4879,4880],{"class":2308},"5",[2044,4882,2796],{"class":2054},[2044,4884,4885],{"class":2046,"line":2347},[2044,4886,3551],{"class":2054},[2044,4888,4889,4891,4893],{"class":2046,"line":2544},[2044,4890,2145],{"class":2054},[2044,4892,2106],{"class":2094},[2044,4894,2098],{"class":2054},[2044,4896,4897,4899,4901],{"class":2046,"line":2564},[2044,4898,2155],{"class":2054},[2044,4900,2095],{"class":2094},[2044,4902,2098],{"class":2054},[2228,4904,4905],{},[2030,4906,4907,4908,4911,4912,4915],{},"This only works within a server component. Slots for client components are working only with ",[2041,4909,4910],{},"experimental.componentIsland.selectiveClient"," set to ",[2041,4913,4914],{},"'deep'"," and since they are rendered server-side, they are not interactive once client-side.",[2896,4917,4919],{"id":4918},"server-component-context","Server Component Context",[2030,4921,4922,4923,4925,4926,4929],{},"When rendering a server-only or island component, ",[2041,4924,492],{}," makes a fetch request which comes back with a ",[2041,4927,4928],{},"NuxtIslandResponse",". (This is an internal request if rendered on the server, or a request that you can see in the network tab if it's rendering on client-side navigation.)",[2030,4931,4932],{},"This means:",[3681,4934,4935,4940,4943,4951],{},[3647,4936,4937,4938,2240],{},"A new Vue app will be created server-side to create the ",[2041,4939,4928],{},[3647,4941,4942],{},"A new 'island context' will be created while rendering the component.",[3647,4944,4945,4946,4950],{},"You can't access the 'island context' from the rest of your app and you can't access the context of the rest of your app from the island component. In other words, the server component or island is ",[4947,4948,4949],"em",{},"isolated"," from the rest of your app.",[3647,4952,4953,4954,4957],{},"Your plugins will run again when rendering the island, unless they have ",[2041,4955,4956],{},"env: { islands: false }"," set (which you can do in an object-syntax plugin).",[2572,4959,4960],{},[2030,4961,4962],{},"Route middleware does not run when rendering island components. Middleware is a routing concept that applies to pages, not components, and is not designed to control component rendering.",[2030,4964,4965,4966,4969],{},"Within an island component, you can access its island context through ",[2041,4967,4968],{},"nuxtApp.ssrContext.islandContext",". Note that while island components are still marked as experimental, the format of this context may change.",[2228,4971,4972],{},[2030,4973,4974,4975,4978,4979],{},"Slots can be interactive and are wrapped within a ",[2041,4976,4977],{},"\u003Cdiv>"," with ",[2041,4980,4981],{},"display: contents;",[2867,4983,4985],{"id":4984},"paired-with-a-client-component","Paired with a Client component",[2030,4987,4988,4989,4991,4992,4994],{},"In this case, the ",[2041,4990,4654],{}," + ",[2041,4993,4452],{}," components are two 'halves' of a component and can be used in advanced use cases for separate implementations of a component on server and client side.",[2034,4996,4998],{"className":2036,"code":4997,"filename":110,"language":2038,"meta":2039,"style":2039},"-| components/\n---| Comments.client.vue\n---| Comments.server.vue\n",[2041,4999,5000,5008,5016],{"__ignoreMap":2039},[2044,5001,5002,5004,5006],{"class":2046,"line":2047},[2044,5003,2051],{"class":2050},[2044,5005,2055],{"class":2054},[2044,5007,2058],{"class":2050},[2044,5009,5010,5012,5014],{"class":2046,"line":2061},[2044,5011,2064],{"class":2050},[2044,5013,2055],{"class":2054},[2044,5015,4474],{"class":2050},[2044,5017,5018,5020,5022],{"class":2046,"line":2072},[2044,5019,2064],{"class":2050},[2044,5021,2055],{"class":2054},[2044,5023,5024],{"class":2050}," Comments.server.vue\n",[2034,5026,5028],{"className":2377,"code":5027,"filename":4478,"language":2378,"meta":2039,"style":2039},"\u003Ctemplate>\n  \u003Cdiv>\n    \u003C!-- this component will render Comments.server on the server then Comments.client once mounted in the browser -->\n    \u003CComments />\n  \u003C/div>\n\u003C/template>\n",[2041,5029,5030,5038,5046,5051,5059,5067],{"__ignoreMap":2039},[2044,5031,5032,5034,5036],{"class":2046,"line":2047},[2044,5033,2091],{"class":2054},[2044,5035,2095],{"class":2094},[2044,5037,2098],{"class":2054},[2044,5039,5040,5042,5044],{"class":2046,"line":2061},[2044,5041,2103],{"class":2054},[2044,5043,2106],{"class":2094},[2044,5045,2098],{"class":2054},[2044,5047,5048],{"class":2046,"line":2072},[2044,5049,5050],{"class":3403},"    \u003C!-- this component will render Comments.server on the server then Comments.client once mounted in the browser -->\n",[2044,5052,5053,5055,5057],{"class":2046,"line":2122},[2044,5054,2113],{"class":2054},[2044,5056,4508],{"class":2094},[2044,5058,2119],{"class":2054},[2044,5060,5061,5063,5065],{"class":2046,"line":2132},[2044,5062,2145],{"class":2054},[2044,5064,2106],{"class":2094},[2044,5066,2098],{"class":2054},[2044,5068,5069,5071,5073],{"class":2046,"line":2142},[2044,5070,2155],{"class":2054},[2044,5072,2095],{"class":2094},[2044,5074,2098],{"class":2054},[2161,5076,5078],{"id":5077},"built-in-nuxt-components","Built-In Nuxt Components",[2030,5080,5081,5082,3123,5084,5086],{},"There are a number of components that Nuxt provides, including ",[2041,5083,440],{},[2041,5085,444],{},". You can read more about them in the API documentation.",[2954,5088],{"to":430},[2161,5090,5092],{"id":5091},"library-authors","Library Authors",[2030,5094,5095],{},"Making Vue component libraries with automatic tree-shaking and component registration is super easy. ✨",[2030,5097,5098,5099,5105,5106,5108],{},"You can use the ",[2969,5100,5102],{"href":5101},"/docs/3.x/api/kit/components#addcomponentsdir",[2041,5103,5104],{},"addComponentsDir"," method provided from the ",[2041,5107,4185],{}," to register your components directory in your Nuxt module.",[2030,5110,5111],{},"Imagine a directory structure like this:",[2034,5113,5115],{"className":2036,"code":5114,"filename":110,"language":2038,"meta":2039,"style":2039},"-| node_modules/\n---| awesome-ui/\n-----| components/\n-------| Alert.vue\n-------| Button.vue\n-----| nuxt.ts\n-| pages/\n---| index.vue\n-| nuxt.config.ts\n",[2041,5116,5117,5126,5135,5143,5152,5160,5169,5178,5187],{"__ignoreMap":2039},[2044,5118,5119,5121,5123],{"class":2046,"line":2047},[2044,5120,2051],{"class":2050},[2044,5122,2055],{"class":2054},[2044,5124,5125],{"class":2050}," node_modules/\n",[2044,5127,5128,5130,5132],{"class":2046,"line":2061},[2044,5129,2064],{"class":2050},[2044,5131,2055],{"class":2054},[2044,5133,5134],{"class":2050}," awesome-ui/\n",[2044,5136,5137,5139,5141],{"class":2046,"line":2072},[2044,5138,2194],{"class":2050},[2044,5140,2055],{"class":2054},[2044,5142,2058],{"class":2050},[2044,5144,5145,5147,5149],{"class":2046,"line":2122},[2044,5146,2204],{"class":2050},[2044,5148,2055],{"class":2054},[2044,5150,5151],{"class":2050}," Alert.vue\n",[2044,5153,5154,5156,5158],{"class":2046,"line":2132},[2044,5155,2204],{"class":2050},[2044,5157,2055],{"class":2054},[2044,5159,2209],{"class":2050},[2044,5161,5162,5164,5166],{"class":2046,"line":2142},[2044,5163,2194],{"class":2050},[2044,5165,2055],{"class":2054},[2044,5167,5168],{"class":2050}," nuxt.ts\n",[2044,5170,5171,5173,5175],{"class":2046,"line":2152},[2044,5172,2051],{"class":2050},[2044,5174,2055],{"class":2054},[2044,5176,5177],{"class":2050}," pages/\n",[2044,5179,5180,5182,5184],{"class":2046,"line":2347},[2044,5181,2064],{"class":2050},[2044,5183,2055],{"class":2054},[2044,5185,5186],{"class":2050}," index.vue\n",[2044,5188,5189,5191,5193],{"class":2046,"line":2544},[2044,5190,2051],{"class":2050},[2044,5192,2055],{"class":2054},[2044,5194,5195],{"class":2050}," nuxt.config.ts\n",[2030,5197,5198,5199,5202,5203,5205],{},"Then in ",[2041,5200,5201],{},"awesome-ui/nuxt.ts"," you can use the ",[2041,5204,5104],{}," hook:",[2034,5207,5209],{"className":3955,"code":5208,"language":2256,"meta":2257,"style":2039},"import { addComponentsDir, createResolver, defineNuxtModule } from '@nuxt/kit'\n\nexport default defineNuxtModule({\n  setup () {\n    const resolver = createResolver(import.meta.url)\n\n    // Add ./components dir to the list\n    addComponentsDir({\n      path: resolver.resolve('./components'),\n      prefix: 'awesome',\n    })\n  },\n})\n",[2041,5210,5211,5239,5243,5255,5263,5291,5295,5300,5309,5336,5352,5358,5362],{"__ignoreMap":2039},[2044,5212,5213,5215,5217,5220,5222,5225,5227,5229,5231,5233,5235,5237],{"class":2046,"line":2047},[2044,5214,2453],{"class":2264},[2044,5216,2456],{"class":2054},[2044,5218,5219],{"class":2275}," addComponentsDir",[2044,5221,2332],{"class":2054},[2044,5223,5224],{"class":2275}," createResolver",[2044,5226,2332],{"class":2054},[2044,5228,4176],{"class":2275},[2044,5230,2462],{"class":2054},[2044,5232,2465],{"class":2264},[2044,5234,2305],{"class":2054},[2044,5236,4185],{"class":2308},[2044,5238,2472],{"class":2054},[2044,5240,5241],{"class":2046,"line":2061},[2044,5242,2477],{"emptyLinePlaceholder":1196},[2044,5244,5245,5247,5249,5251,5253],{"class":2046,"line":2072},[2044,5246,2265],{"class":2264},[2044,5248,2268],{"class":2264},[2044,5250,4176],{"class":2271},[2044,5252,2276],{"class":2275},[2044,5254,2279],{"class":2054},[2044,5256,5257,5259,5261],{"class":2046,"line":2122},[2044,5258,4208],{"class":2094},[2044,5260,3395],{"class":2054},[2044,5262,3398],{"class":2054},[2044,5264,5265,5268,5271,5273,5275,5277,5279,5281,5284,5286,5289],{"class":2046,"line":2132},[2044,5266,5267],{"class":2389},"    const",[2044,5269,5270],{"class":2275}," resolver",[2044,5272,3417],{"class":2054},[2044,5274,5224],{"class":2271},[2044,5276,2276],{"class":2094},[2044,5278,2453],{"class":2264},[2044,5280,2240],{"class":2054},[2044,5282,5283],{"class":2275},"meta",[2044,5285,2240],{"class":2054},[2044,5287,5288],{"class":2275},"url",[2044,5290,2353],{"class":2094},[2044,5292,5293],{"class":2046,"line":2142},[2044,5294,2477],{"emptyLinePlaceholder":1196},[2044,5296,5297],{"class":2046,"line":2152},[2044,5298,5299],{"class":3403},"    // Add ./components dir to the list\n",[2044,5301,5302,5305,5307],{"class":2046,"line":2347},[2044,5303,5304],{"class":2271},"    addComponentsDir",[2044,5306,2276],{"class":2094},[2044,5308,2279],{"class":2054},[2044,5310,5311,5313,5315,5317,5319,5322,5324,5326,5329,5331,5334],{"class":2046,"line":2544},[2044,5312,2300],{"class":2094},[2044,5314,2287],{"class":2054},[2044,5316,5270],{"class":2275},[2044,5318,2240],{"class":2054},[2044,5320,5321],{"class":2271},"resolve",[2044,5323,2276],{"class":2094},[2044,5325,2312],{"class":2054},[2044,5327,5328],{"class":2308},"./components",[2044,5330,2312],{"class":2054},[2044,5332,5333],{"class":2094},")",[2044,5335,2315],{"class":2054},[2044,5337,5338,5341,5343,5345,5348,5350],{"class":2046,"line":2564},[2044,5339,5340],{"class":2094},"      prefix",[2044,5342,2287],{"class":2054},[2044,5344,2305],{"class":2054},[2044,5346,5347],{"class":2308},"awesome",[2044,5349,2312],{"class":2054},[2044,5351,2315],{"class":2054},[2044,5353,5354,5356],{"class":2046,"line":2799},[2044,5355,4279],{"class":2054},[2044,5357,2353],{"class":2094},[2044,5359,5360],{"class":2046,"line":2814},[2044,5361,4286],{"class":2054},[2044,5363,5364,5366],{"class":2046,"line":2820},[2044,5365,2350],{"class":2054},[2044,5367,2353],{"class":2275},[2030,5369,5370,5371,5374],{},"That's it! Now in your project, you can import your UI library as a Nuxt module in your ",[2041,5372,5373],{},"nuxt.config"," file:",[2034,5376,5378],{"className":3955,"code":5377,"filename":233,"language":2256,"meta":2257,"style":2039},"export default defineNuxtConfig({\n  modules: ['awesome-ui/nuxt'],\n})\n",[2041,5379,5380,5392,5412],{"__ignoreMap":2039},[2044,5381,5382,5384,5386,5388,5390],{"class":2046,"line":2047},[2044,5383,2265],{"class":2264},[2044,5385,2268],{"class":2264},[2044,5387,2272],{"class":2271},[2044,5389,2276],{"class":2275},[2044,5391,2279],{"class":2054},[2044,5393,5394,5397,5399,5401,5403,5406,5408,5410],{"class":2046,"line":2061},[2044,5395,5396],{"class":2094},"  modules",[2044,5398,2287],{"class":2054},[2044,5400,4414],{"class":2275},[2044,5402,2312],{"class":2054},[2044,5404,5405],{"class":2308},"awesome-ui/nuxt",[2044,5407,2312],{"class":2054},[2044,5409,4424],{"class":2275},[2044,5411,2315],{"class":2054},[2044,5413,5414,5416],{"class":2046,"line":2072},[2044,5415,2350],{"class":2054},[2044,5417,2353],{"class":2275},[2030,5419,5420,5421,5424,5425,2287],{},"... and directly use the module components (prefixed with ",[2041,5422,5423],{},"awesome-",") in our ",[2041,5426,2423],{},[2034,5428,5430],{"className":2377,"code":5429,"language":2378,"meta":2039,"style":2039},"\u003Ctemplate>\n  \u003Cdiv>\n    My \u003CAwesomeButton>UI button\u003C/AwesomeButton>!\n    \u003Cawesome-alert>Here's an alert!\u003C/awesome-alert>\n  \u003C/div>\n\u003C/template>\n",[2041,5431,5432,5440,5448,5472,5490,5498],{"__ignoreMap":2039},[2044,5433,5434,5436,5438],{"class":2046,"line":2047},[2044,5435,2091],{"class":2054},[2044,5437,2095],{"class":2094},[2044,5439,2098],{"class":2054},[2044,5441,5442,5444,5446],{"class":2046,"line":2061},[2044,5443,2103],{"class":2054},[2044,5445,2106],{"class":2094},[2044,5447,2098],{"class":2054},[2044,5449,5450,5453,5455,5458,5460,5463,5465,5467,5469],{"class":2046,"line":2072},[2044,5451,5452],{"class":2275},"    My ",[2044,5454,2091],{"class":2054},[2044,5456,5457],{"class":2094},"AwesomeButton",[2044,5459,2404],{"class":2054},[2044,5461,5462],{"class":2275},"UI button",[2044,5464,2155],{"class":2054},[2044,5466,5457],{"class":2094},[2044,5468,2404],{"class":2054},[2044,5470,5471],{"class":2275},"!\n",[2044,5473,5474,5476,5479,5481,5484,5486,5488],{"class":2046,"line":2122},[2044,5475,2113],{"class":2054},[2044,5477,5478],{"class":2094},"awesome-alert",[2044,5480,2404],{"class":2054},[2044,5482,5483],{"class":2275},"Here's an alert!",[2044,5485,2155],{"class":2054},[2044,5487,5478],{"class":2094},[2044,5489,2098],{"class":2054},[2044,5491,5492,5494,5496],{"class":2046,"line":2132},[2044,5493,2145],{"class":2054},[2044,5495,2106],{"class":2094},[2044,5497,2098],{"class":2054},[2044,5499,5500,5502,5504],{"class":2046,"line":2142},[2044,5501,2155],{"class":2054},[2044,5503,2095],{"class":2094},[2044,5505,2098],{"class":2054},[2030,5507,5508,5509,2240],{},"It will automatically import the components only if used and also support HMR when updating your components in ",[2041,5510,5511],{},"node_modules/awesome-ui/components/",[5513,5514],"link-example",{"to":923},[5516,5517,5518],"style",{},"html pre.shiki code .s52Pk, html code.shiki .s52Pk{--shiki-light:#E2931D;--shiki-default:#E2931D;--shiki-dark:#FFCB6B}html pre.shiki code .sDfIl, html code.shiki .sDfIl{--shiki-light:#39ADB5;--shiki-default:#39ADB5;--shiki-dark:#89DDFF}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 .sRlkE, html code.shiki .sRlkE{--shiki-light:#E53935;--shiki-default:#E53935;--shiki-dark:#F07178}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 .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 .sGFVr, html code.shiki .sGFVr{--shiki-light:#91B859;--shiki-default:#91B859;--shiki-dark:#C3E88D}html pre.shiki code .sbKd-, html code.shiki .sbKd-{--shiki-light:#FF5370;--shiki-default:#FF5370;--shiki-dark:#FF9CAC}html pre.shiki code .smZ93, html code.shiki .smZ93{--shiki-light:#9C3EDA;--shiki-default:#9C3EDA;--shiki-dark:#C792EA}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}",{"title":2039,"searchDepth":2061,"depth":2061,"links":5520},[5521,5522,5523,5524,5529,5530,5531,5532,5533,5534,5538,5539],{"id":2163,"depth":2061,"text":2164},{"id":2370,"depth":2061,"text":2371},{"id":2650,"depth":2061,"text":2651},{"id":2855,"depth":2061,"text":2856,"children":5525},[5526,5527,5528],{"id":2869,"depth":2072,"text":2870},{"id":3491,"depth":2072,"text":3492},{"id":3638,"depth":2072,"text":3639},{"id":3709,"depth":2061,"text":3710},{"id":3945,"depth":2061,"text":3946},{"id":4138,"depth":2061,"text":4139},{"id":4345,"depth":2061,"text":4346},{"id":4445,"depth":2061,"text":4446},{"id":4563,"depth":2061,"text":4564,"children":5535},[5536,5537],{"id":4590,"depth":2072,"text":4591},{"id":4984,"depth":2072,"text":4985},{"id":5077,"depth":2061,"text":5078},{"id":5091,"depth":2061,"text":5092},"The components/ directory is where you put all your Vue components.","md",{"head":5543},{"title":5544},"components/",{"icon":135},{"title":132,"description":5540},"CurfJjvxwOzpaurvouKVBJYs7nljtVs5-Th6E31-Z2Q",[5549,5551],{"title":127,"path":128,"stem":129,"description":5550,"icon":130,"children":-1},"The assets/ directory is used to add all the website's assets that the build tool will process.",{"title":137,"path":138,"stem":139,"description":5552,"icon":140,"children":-1},"Use the composables/ directory to auto-import your Vue composables into your application.",1771414205641]