[{"data":1,"prerenderedAt":8866},["ShallowReactive",2],{"$fGCo9l1hMtNdUiA6QzdUX5X3kLqaWcC5t2kdz4LrvCvc":3,"versions":2029,"-docs-4-x-getting-started-data-fetching":2033,"-docs-4-x-getting-started-data-fetching-surround":8861},[4,1120,1940],{"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,1404,1770,1847,1869,1903],{"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,1319,1329,1354,1370],{"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,1313,1316],{"title":1310,"path":1311,"stem":1312,"titleTemplate":6},"Nuxt and Hydration","/docs/4.x/guide/best-practices/hydration","docs/4.x/3.guide/2.best-practices/hydration",{"title":299,"path":1314,"stem":1315,"titleTemplate":6},"/docs/4.x/guide/best-practices/performance","docs/4.x/3.guide/2.best-practices/performance",{"title":303,"path":1317,"stem":1318,"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":1320,"stem":1321,"children":1322,"page":108},"/docs/4.x/guide/ai","docs/4.x/3.guide/3.ai",[1323,1326],{"title":314,"path":1324,"stem":1325,"titleTemplate":6},"/docs/4.x/guide/ai/mcp","docs/4.x/3.guide/3.ai/1.mcp",{"title":318,"path":1327,"stem":1328,"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":1330,"stem":1331,"children":1332,"page":108},"/docs/4.x/guide/modules","docs/4.x/3.guide/4.modules",[1333,1336,1339,1342,1345,1348,1351],{"title":329,"path":1334,"stem":1335,"titleTemplate":6},"/docs/4.x/guide/modules/getting-started","docs/4.x/3.guide/4.modules/1.getting-started",{"title":333,"path":1337,"stem":1338,"titleTemplate":6},"/docs/4.x/guide/modules/module-anatomy","docs/4.x/3.guide/4.modules/2.module-anatomy",{"title":337,"path":1340,"stem":1341,"titleTemplate":6},"/docs/4.x/guide/modules/recipes-basics","docs/4.x/3.guide/4.modules/3.recipes-basics",{"title":341,"path":1343,"stem":1344,"titleTemplate":6},"/docs/4.x/guide/modules/recipes-advanced","docs/4.x/3.guide/4.modules/4.recipes-advanced",{"title":345,"path":1346,"stem":1347,"titleTemplate":6},"/docs/4.x/guide/modules/testing","docs/4.x/3.guide/4.modules/5.testing",{"title":349,"path":1349,"stem":1350,"titleTemplate":6},"/docs/4.x/guide/modules/best-practices","docs/4.x/3.guide/4.modules/6.best-practices",{"title":353,"path":1352,"stem":1353,"titleTemplate":6},"/docs/4.x/guide/modules/ecosystem","docs/4.x/3.guide/4.modules/7.ecosystem",{"title":357,"titleTemplate":358,"icon":359,"path":1355,"stem":1356,"children":1357,"page":108},"/docs/4.x/guide/recipes","docs/4.x/3.guide/5.recipes",[1358,1361,1364,1367],{"title":364,"path":1359,"stem":1360,"titleTemplate":6},"/docs/4.x/guide/recipes/custom-routing","docs/4.x/3.guide/5.recipes/1.custom-routing",{"title":368,"path":1362,"stem":1363,"titleTemplate":6},"/docs/4.x/guide/recipes/vite-plugin","docs/4.x/3.guide/5.recipes/2.vite-plugin",{"title":372,"path":1365,"stem":1366,"titleTemplate":6},"/docs/4.x/guide/recipes/custom-usefetch","docs/4.x/3.guide/5.recipes/3.custom-usefetch",{"title":376,"path":1368,"stem":1369,"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":1371,"stem":1372,"children":1373,"page":108},"/docs/4.x/guide/going-further","docs/4.x/3.guide/6.going-further",[1374,1377,1380,1383,1386,1389,1392,1395,1398,1401],{"title":387,"path":1375,"stem":1376,"titleTemplate":6},"/docs/4.x/guide/going-further/events","docs/4.x/3.guide/6.going-further/1.events",{"title":391,"path":1378,"stem":1379,"titleTemplate":6},"/docs/4.x/guide/going-further/experimental-features","docs/4.x/3.guide/6.going-further/1.experimental-features",{"title":395,"path":1381,"stem":1382,"titleTemplate":6},"/docs/4.x/guide/going-further/features","docs/4.x/3.guide/6.going-further/1.features",{"title":399,"path":1384,"stem":1385,"titleTemplate":6},"/docs/4.x/guide/going-further/runtime-config","docs/4.x/3.guide/6.going-further/10.runtime-config",{"title":403,"path":1387,"stem":1388,"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":1390,"stem":1391,"titleTemplate":6},"/docs/4.x/guide/going-further/hooks","docs/4.x/3.guide/6.going-further/2.hooks",{"title":411,"path":1393,"stem":1394,"titleTemplate":6},"/docs/4.x/guide/going-further/kit","docs/4.x/3.guide/6.going-further/4.kit",{"title":415,"path":1396,"stem":1397,"titleTemplate":6},"/docs/4.x/guide/going-further/nuxt-app","docs/4.x/3.guide/6.going-further/6.nuxt-app",{"title":419,"path":1399,"stem":1400,"titleTemplate":6},"/docs/4.x/guide/going-further/layers","docs/4.x/3.guide/6.going-further/7.layers",{"title":423,"path":1402,"stem":1403,"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":1405,"stem":1406,"children":1407,"page":108},"/docs/4.x/api","docs/4.x/4.api",[1408,1461,1556,1647,1699,1757,1767],{"title":434,"titleTemplate":435,"icon":324,"path":1409,"stem":1410,"children":1411,"page":108},"/docs/4.x/api/components","docs/4.x/4.api/1.components",[1412,1415,1418,1421,1424,1427,1430,1433,1437,1440,1443,1446,1449,1452,1455,1458],{"title":440,"path":1413,"stem":1414,"titleTemplate":6},"/docs/4.x/api/components/client-only","docs/4.x/4.api/1.components/1.client-only",{"title":444,"path":1416,"stem":1417,"titleTemplate":6},"/docs/4.x/api/components/dev-only","docs/4.x/4.api/1.components/1.dev-only",{"title":448,"path":1419,"stem":1420,"titleTemplate":6},"/docs/4.x/api/components/nuxt-client-fallback","docs/4.x/4.api/1.components/1.nuxt-client-fallback",{"title":452,"path":1422,"stem":1423,"titleTemplate":6},"/docs/4.x/api/components/nuxt-picture","docs/4.x/4.api/1.components/10.nuxt-picture",{"title":456,"path":1425,"stem":1426,"titleTemplate":6},"/docs/4.x/api/components/teleports","docs/4.x/4.api/1.components/11.teleports",{"title":460,"path":1428,"stem":1429,"titleTemplate":6},"/docs/4.x/api/components/nuxt-route-announcer","docs/4.x/4.api/1.components/12.nuxt-route-announcer",{"title":464,"path":1431,"stem":1432,"titleTemplate":6},"/docs/4.x/api/components/nuxt-time","docs/4.x/4.api/1.components/13.nuxt-time",{"title":1434,"path":1435,"stem":1436,"titleTemplate":6},"\u003CNuxtAnnouncer>","/docs/4.x/api/components/nuxt-announcer","docs/4.x/4.api/1.components/14.nuxt-announcer",{"title":468,"path":1438,"stem":1439,"titleTemplate":6},"/docs/4.x/api/components/nuxt-page","docs/4.x/4.api/1.components/2.nuxt-page",{"title":472,"path":1441,"stem":1442,"titleTemplate":6},"/docs/4.x/api/components/nuxt-layout","docs/4.x/4.api/1.components/3.nuxt-layout",{"title":476,"path":1444,"stem":1445,"titleTemplate":6},"/docs/4.x/api/components/nuxt-link","docs/4.x/4.api/1.components/4.nuxt-link",{"title":480,"path":1447,"stem":1448,"titleTemplate":6},"/docs/4.x/api/components/nuxt-loading-indicator","docs/4.x/4.api/1.components/5.nuxt-loading-indicator",{"title":484,"path":1450,"stem":1451,"titleTemplate":6},"/docs/4.x/api/components/nuxt-error-boundary","docs/4.x/4.api/1.components/6.nuxt-error-boundary",{"title":488,"path":1453,"stem":1454,"titleTemplate":6},"/docs/4.x/api/components/nuxt-welcome","docs/4.x/4.api/1.components/7.nuxt-welcome",{"title":492,"path":1456,"stem":1457,"titleTemplate":6},"/docs/4.x/api/components/nuxt-island","docs/4.x/4.api/1.components/8.nuxt-island",{"title":496,"path":1459,"stem":1460,"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":1462,"stem":1463,"children":1464,"page":108},"/docs/4.x/api/composables","docs/4.x/4.api/2.composables",[1465,1468,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,1547,1550,1553],{"title":507,"path":1466,"stem":1467,"titleTemplate":6},"/docs/4.x/api/composables/on-prehydrate","docs/4.x/4.api/2.composables/on-prehydrate",{"title":1469,"path":1470,"stem":1471,"titleTemplate":6},"useAnnouncer","/docs/4.x/api/composables/use-announcer","docs/4.x/4.api/2.composables/use-announcer",{"title":511,"path":1473,"stem":1474,"titleTemplate":6},"/docs/4.x/api/composables/use-app-config","docs/4.x/4.api/2.composables/use-app-config",{"title":515,"path":1476,"stem":1477,"titleTemplate":6},"/docs/4.x/api/composables/use-async-data","docs/4.x/4.api/2.composables/use-async-data",{"title":519,"path":1479,"stem":1480,"titleTemplate":6},"/docs/4.x/api/composables/use-cookie","docs/4.x/4.api/2.composables/use-cookie",{"title":523,"path":1482,"stem":1483,"titleTemplate":6},"/docs/4.x/api/composables/use-error","docs/4.x/4.api/2.composables/use-error",{"title":527,"path":1485,"stem":1486,"titleTemplate":6},"/docs/4.x/api/composables/use-fetch","docs/4.x/4.api/2.composables/use-fetch",{"title":531,"path":1488,"stem":1489,"titleTemplate":6},"/docs/4.x/api/composables/use-head","docs/4.x/4.api/2.composables/use-head",{"title":535,"path":1491,"stem":1492,"titleTemplate":6},"/docs/4.x/api/composables/use-head-safe","docs/4.x/4.api/2.composables/use-head-safe",{"title":539,"path":1494,"stem":1495,"titleTemplate":6},"/docs/4.x/api/composables/use-hydration","docs/4.x/4.api/2.composables/use-hydration",{"title":543,"path":1497,"stem":1498,"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":1500,"stem":1501,"titleTemplate":6},"/docs/4.x/api/composables/use-lazy-fetch","docs/4.x/4.api/2.composables/use-lazy-fetch",{"title":551,"path":1503,"stem":1504,"titleTemplate":6},"/docs/4.x/api/composables/use-loading-indicator","docs/4.x/4.api/2.composables/use-loading-indicator",{"title":555,"path":1506,"stem":1507,"titleTemplate":6},"/docs/4.x/api/composables/use-nuxt-app","docs/4.x/4.api/2.composables/use-nuxt-app",{"title":559,"path":1509,"stem":1510,"titleTemplate":6},"/docs/4.x/api/composables/use-nuxt-data","docs/4.x/4.api/2.composables/use-nuxt-data",{"title":563,"path":1512,"stem":1513,"titleTemplate":6},"/docs/4.x/api/composables/use-preview-mode","docs/4.x/4.api/2.composables/use-preview-mode",{"title":567,"path":1515,"stem":1516,"titleTemplate":6},"/docs/4.x/api/composables/use-request-event","docs/4.x/4.api/2.composables/use-request-event",{"title":571,"path":1518,"stem":1519,"titleTemplate":6},"/docs/4.x/api/composables/use-request-fetch","docs/4.x/4.api/2.composables/use-request-fetch",{"title":575,"path":1521,"stem":1522,"titleTemplate":6},"/docs/4.x/api/composables/use-request-header","docs/4.x/4.api/2.composables/use-request-header",{"title":579,"path":1524,"stem":1525,"titleTemplate":6},"/docs/4.x/api/composables/use-request-headers","docs/4.x/4.api/2.composables/use-request-headers",{"title":583,"path":1527,"stem":1528,"titleTemplate":6},"/docs/4.x/api/composables/use-request-url","docs/4.x/4.api/2.composables/use-request-url",{"title":587,"path":1530,"stem":1531,"titleTemplate":6},"/docs/4.x/api/composables/use-response-header","docs/4.x/4.api/2.composables/use-response-header",{"title":591,"path":1533,"stem":1534,"titleTemplate":6},"/docs/4.x/api/composables/use-route","docs/4.x/4.api/2.composables/use-route",{"title":595,"path":1536,"stem":1537,"titleTemplate":6},"/docs/4.x/api/composables/use-route-announcer","docs/4.x/4.api/2.composables/use-route-announcer",{"title":599,"path":1539,"stem":1540,"titleTemplate":6},"/docs/4.x/api/composables/use-router","docs/4.x/4.api/2.composables/use-router",{"title":603,"path":1542,"stem":1543,"titleTemplate":6},"/docs/4.x/api/composables/use-runtime-config","docs/4.x/4.api/2.composables/use-runtime-config",{"title":607,"path":1545,"stem":1546,"titleTemplate":6},"/docs/4.x/api/composables/use-runtime-hook","docs/4.x/4.api/2.composables/use-runtime-hook",{"title":611,"path":1548,"stem":1549,"titleTemplate":6},"/docs/4.x/api/composables/use-seo-meta","docs/4.x/4.api/2.composables/use-seo-meta",{"title":615,"path":1551,"stem":1552,"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":1554,"stem":1555,"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":1557,"stem":1558,"children":1559,"page":108},"/docs/4.x/api/utils","docs/4.x/4.api/3.utils",[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,1638,1641,1644],{"title":630,"path":1561,"stem":1562,"titleTemplate":6},"/docs/4.x/api/utils/dollarfetch","docs/4.x/4.api/3.utils/$fetch",{"title":634,"path":1564,"stem":1565,"titleTemplate":6},"/docs/4.x/api/utils/abort-navigation","docs/4.x/4.api/3.utils/abort-navigation",{"title":638,"path":1567,"stem":1568,"titleTemplate":6},"/docs/4.x/api/utils/add-route-middleware","docs/4.x/4.api/3.utils/add-route-middleware",{"title":642,"path":1570,"stem":1571,"titleTemplate":6},"/docs/4.x/api/utils/call-once","docs/4.x/4.api/3.utils/call-once",{"title":646,"path":1573,"stem":1574,"titleTemplate":6},"/docs/4.x/api/utils/clear-error","docs/4.x/4.api/3.utils/clear-error",{"title":650,"path":1576,"stem":1577,"titleTemplate":6},"/docs/4.x/api/utils/clear-nuxt-data","docs/4.x/4.api/3.utils/clear-nuxt-data",{"title":654,"path":1579,"stem":1580,"titleTemplate":6},"/docs/4.x/api/utils/clear-nuxt-state","docs/4.x/4.api/3.utils/clear-nuxt-state",{"title":658,"path":1582,"stem":1583,"titleTemplate":6},"/docs/4.x/api/utils/create-error","docs/4.x/4.api/3.utils/create-error",{"title":662,"path":1585,"stem":1586,"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":1588,"stem":1589,"titleTemplate":6},"/docs/4.x/api/utils/define-nuxt-component","docs/4.x/4.api/3.utils/define-nuxt-component",{"title":670,"path":1591,"stem":1592,"titleTemplate":6},"/docs/4.x/api/utils/define-nuxt-plugin","docs/4.x/4.api/3.utils/define-nuxt-plugin",{"title":674,"path":1594,"stem":1595,"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":1597,"stem":1598,"titleTemplate":6},"/docs/4.x/api/utils/define-page-meta","docs/4.x/4.api/3.utils/define-page-meta",{"title":682,"path":1600,"stem":1601,"titleTemplate":6},"/docs/4.x/api/utils/define-route-rules","docs/4.x/4.api/3.utils/define-route-rules",{"title":686,"path":1603,"stem":1604,"titleTemplate":6},"/docs/4.x/api/utils/navigate-to","docs/4.x/4.api/3.utils/navigate-to",{"title":690,"path":1606,"stem":1607,"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":1609,"stem":1610,"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":1612,"stem":1613,"titleTemplate":6},"/docs/4.x/api/utils/on-nuxt-ready","docs/4.x/4.api/3.utils/on-nuxt-ready",{"title":702,"path":1615,"stem":1616,"titleTemplate":6},"/docs/4.x/api/utils/prefetch-components","docs/4.x/4.api/3.utils/prefetch-components",{"title":706,"path":1618,"stem":1619,"titleTemplate":6},"/docs/4.x/api/utils/preload-components","docs/4.x/4.api/3.utils/preload-components",{"title":710,"path":1621,"stem":1622,"titleTemplate":6},"/docs/4.x/api/utils/preload-route-components","docs/4.x/4.api/3.utils/preload-route-components",{"title":714,"path":1624,"stem":1625,"titleTemplate":6},"/docs/4.x/api/utils/prerender-routes","docs/4.x/4.api/3.utils/prerender-routes",{"title":718,"path":1627,"stem":1628,"titleTemplate":6},"/docs/4.x/api/utils/refresh-cookie","docs/4.x/4.api/3.utils/refresh-cookie",{"title":722,"path":1630,"stem":1631,"titleTemplate":6},"/docs/4.x/api/utils/refresh-nuxt-data","docs/4.x/4.api/3.utils/refresh-nuxt-data",{"title":726,"path":1633,"stem":1634,"titleTemplate":6},"/docs/4.x/api/utils/reload-nuxt-app","docs/4.x/4.api/3.utils/reload-nuxt-app",{"title":730,"path":1636,"stem":1637,"titleTemplate":6},"/docs/4.x/api/utils/set-page-layout","docs/4.x/4.api/3.utils/set-page-layout",{"title":734,"path":1639,"stem":1640,"titleTemplate":6},"/docs/4.x/api/utils/set-response-status","docs/4.x/4.api/3.utils/set-response-status",{"title":738,"path":1642,"stem":1643,"titleTemplate":6},"/docs/4.x/api/utils/show-error","docs/4.x/4.api/3.utils/show-error",{"title":742,"path":1645,"stem":1646,"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":1648,"stem":1649,"children":1650,"page":108},"/docs/4.x/api/commands","docs/4.x/4.api/4.commands",[1651,1654,1657,1660,1663,1666,1669,1672,1675,1678,1681,1684,1687,1690,1693,1696],{"title":753,"path":1652,"stem":1653,"titleTemplate":6},"/docs/4.x/api/commands/add","docs/4.x/4.api/4.commands/add",{"title":757,"path":1655,"stem":1656,"titleTemplate":6},"/docs/4.x/api/commands/analyze","docs/4.x/4.api/4.commands/analyze",{"title":761,"path":1658,"stem":1659,"titleTemplate":6},"/docs/4.x/api/commands/build","docs/4.x/4.api/4.commands/build",{"title":765,"path":1661,"stem":1662,"titleTemplate":6},"/docs/4.x/api/commands/build-module","docs/4.x/4.api/4.commands/build-module",{"title":769,"path":1664,"stem":1665,"titleTemplate":6},"/docs/4.x/api/commands/cleanup","docs/4.x/4.api/4.commands/cleanup",{"title":773,"path":1667,"stem":1668,"titleTemplate":6},"/docs/4.x/api/commands/dev","docs/4.x/4.api/4.commands/dev",{"title":777,"path":1670,"stem":1671,"titleTemplate":6},"/docs/4.x/api/commands/devtools","docs/4.x/4.api/4.commands/devtools",{"title":781,"path":1673,"stem":1674,"titleTemplate":6},"/docs/4.x/api/commands/generate","docs/4.x/4.api/4.commands/generate",{"title":785,"path":1676,"stem":1677,"titleTemplate":6},"/docs/4.x/api/commands/info","docs/4.x/4.api/4.commands/info",{"title":789,"path":1679,"stem":1680,"titleTemplate":6},"/docs/4.x/api/commands/init","docs/4.x/4.api/4.commands/init",{"title":793,"path":1682,"stem":1683,"titleTemplate":6},"/docs/4.x/api/commands/module","docs/4.x/4.api/4.commands/module",{"title":797,"path":1685,"stem":1686,"titleTemplate":6},"/docs/4.x/api/commands/prepare","docs/4.x/4.api/4.commands/prepare",{"title":801,"path":1688,"stem":1689,"titleTemplate":6},"/docs/4.x/api/commands/preview","docs/4.x/4.api/4.commands/preview",{"title":805,"path":1691,"stem":1692,"titleTemplate":6},"/docs/4.x/api/commands/test","docs/4.x/4.api/4.commands/test",{"title":809,"path":1694,"stem":1695,"titleTemplate":6},"/docs/4.x/api/commands/typecheck","docs/4.x/4.api/4.commands/typecheck",{"title":813,"path":1697,"stem":1698,"titleTemplate":6},"/docs/4.x/api/commands/upgrade","docs/4.x/4.api/4.commands/upgrade",{"title":411,"titleTemplate":817,"icon":818,"path":1700,"stem":1701,"children":1702,"page":108},"/docs/4.x/api/kit","docs/4.x/4.api/5.kit",[1703,1706,1709,1712,1715,1718,1721,1724,1727,1730,1733,1736,1739,1742,1745,1748,1751,1754],{"title":276,"path":1704,"stem":1705,"titleTemplate":6},"/docs/4.x/api/kit/modules","docs/4.x/4.api/5.kit/1.modules",{"title":399,"path":1707,"stem":1708,"titleTemplate":6},"/docs/4.x/api/kit/runtime-config","docs/4.x/4.api/5.kit/10.runtime-config",{"title":829,"path":1710,"stem":1711,"titleTemplate":6},"/docs/4.x/api/kit/templates","docs/4.x/4.api/5.kit/10.templates",{"title":833,"path":1713,"stem":1714,"titleTemplate":6},"/docs/4.x/api/kit/nitro","docs/4.x/4.api/5.kit/11.nitro",{"title":837,"path":1716,"stem":1717,"titleTemplate":6},"/docs/4.x/api/kit/resolving","docs/4.x/4.api/5.kit/12.resolving",{"title":841,"path":1719,"stem":1720,"titleTemplate":6},"/docs/4.x/api/kit/logging","docs/4.x/4.api/5.kit/13.logging",{"title":845,"path":1722,"stem":1723,"titleTemplate":6},"/docs/4.x/api/kit/builder","docs/4.x/4.api/5.kit/14.builder",{"title":849,"path":1725,"stem":1726,"titleTemplate":6},"/docs/4.x/api/kit/examples","docs/4.x/4.api/5.kit/15.examples",{"title":84,"path":1728,"stem":1729,"titleTemplate":6},"/docs/4.x/api/kit/layers","docs/4.x/4.api/5.kit/16.layers",{"title":856,"path":1731,"stem":1732,"titleTemplate":6},"/docs/4.x/api/kit/programmatic","docs/4.x/4.api/5.kit/2.programmatic",{"title":860,"path":1734,"stem":1735,"titleTemplate":6},"/docs/4.x/api/kit/compatibility","docs/4.x/4.api/5.kit/3.compatibility",{"title":268,"path":1737,"stem":1738,"titleTemplate":6},"/docs/4.x/api/kit/autoimports","docs/4.x/4.api/5.kit/4.autoimports",{"title":434,"path":1740,"stem":1741,"titleTemplate":6},"/docs/4.x/api/kit/components","docs/4.x/4.api/5.kit/5.components",{"title":870,"path":1743,"stem":1744,"titleTemplate":6},"/docs/4.x/api/kit/context","docs/4.x/4.api/5.kit/6.context",{"title":874,"path":1746,"stem":1747,"titleTemplate":6},"/docs/4.x/api/kit/pages","docs/4.x/4.api/5.kit/7.pages",{"title":878,"path":1749,"stem":1750,"titleTemplate":6},"/docs/4.x/api/kit/layout","docs/4.x/4.api/5.kit/8.layout",{"title":882,"path":1752,"stem":1753,"titleTemplate":6},"/docs/4.x/api/kit/head","docs/4.x/4.api/5.kit/9.head",{"title":886,"path":1755,"stem":1756,"titleTemplate":6},"/docs/4.x/api/kit/plugins","docs/4.x/4.api/5.kit/9.plugins",{"title":890,"titleTemplate":6,"icon":891,"path":1758,"stem":1759,"children":1760,"page":108},"/docs/4.x/api/advanced","docs/4.x/4.api/6.advanced",[1761,1764],{"title":407,"path":1762,"stem":1763,"titleTemplate":6},"/docs/4.x/api/advanced/hooks","docs/4.x/4.api/6.advanced/1.hooks",{"title":899,"path":1765,"stem":1766,"titleTemplate":6},"/docs/4.x/api/advanced/import-meta","docs/4.x/4.api/6.advanced/2.import-meta",{"title":903,"path":1768,"stem":1769,"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":1771,"stem":1772,"children":1773,"page":108},"/docs/4.x/examples","docs/4.x/4.examples",[1774,1777,1796,1809,1840],{"title":914,"path":1775,"stem":1776,"titleTemplate":6},"/docs/4.x/examples/hello-world","docs/4.x/4.examples/0.hello-world",{"title":395,"path":1778,"stem":1779,"children":1780,"page":108},"/docs/4.x/examples/features","docs/4.x/4.examples/1.features",[1781,1784,1787,1790,1793],{"title":922,"path":1782,"stem":1783,"titleTemplate":6},"/docs/4.x/examples/features/auto-imports","docs/4.x/4.examples/1.features/1.auto-imports",{"title":64,"path":1785,"stem":1786,"titleTemplate":6},"/docs/4.x/examples/features/data-fetching","docs/4.x/4.examples/1.features/2.data-fetching",{"title":69,"path":1788,"stem":1789,"titleTemplate":6},"/docs/4.x/examples/features/state-management","docs/4.x/4.examples/1.features/3.state-management",{"title":932,"path":1791,"stem":1792,"titleTemplate":6},"/docs/4.x/examples/features/meta-tags","docs/4.x/4.examples/1.features/4.meta-tags",{"title":936,"path":1794,"stem":1795,"titleTemplate":6},"/docs/4.x/examples/features/layouts","docs/4.x/4.examples/1.features/5.layouts",{"title":49,"path":1797,"stem":1798,"children":1799,"page":108},"/docs/4.x/examples/routing","docs/4.x/4.examples/2.routing",[1800,1803,1806],{"title":944,"path":1801,"stem":1802,"titleTemplate":6},"/docs/4.x/examples/routing/middleware","docs/4.x/4.examples/2.routing/middleware",{"title":874,"path":1804,"stem":1805,"titleTemplate":6},"/docs/4.x/examples/routing/pages","docs/4.x/4.examples/2.routing/pages",{"title":951,"path":1807,"stem":1808,"titleTemplate":6},"/docs/4.x/examples/routing/universal-router","docs/4.x/4.examples/2.routing/universal-router",{"title":890,"path":1810,"stem":1811,"children":1812,"page":108},"/docs/4.x/examples/advanced","docs/4.x/4.examples/4.advanced",[1813,1816,1819,1822,1825,1828,1831,1834,1837],{"title":84,"path":1814,"stem":1815,"titleTemplate":6},"/docs/4.x/examples/advanced/config-extends","docs/4.x/4.examples/4.advanced/config-extends",{"title":74,"path":1817,"stem":1818,"titleTemplate":6},"/docs/4.x/examples/advanced/error-handling","docs/4.x/4.examples/4.advanced/error-handling",{"title":965,"path":1820,"stem":1821,"titleTemplate":6},"/docs/4.x/examples/advanced/jsx","docs/4.x/4.examples/4.advanced/jsx",{"title":969,"path":1823,"stem":1824,"titleTemplate":6},"/docs/4.x/examples/advanced/locale","docs/4.x/4.examples/4.advanced/locale",{"title":973,"path":1826,"stem":1827,"titleTemplate":6},"/docs/4.x/examples/advanced/module-extend-pages","docs/4.x/4.examples/4.advanced/module-extend-pages",{"title":977,"path":1829,"stem":1830,"titleTemplate":6},"/docs/4.x/examples/advanced/teleport","docs/4.x/4.examples/4.advanced/teleport",{"title":99,"path":1832,"stem":1833,"titleTemplate":6},"/docs/4.x/examples/advanced/testing","docs/4.x/4.examples/4.advanced/testing",{"title":519,"path":1835,"stem":1836,"titleTemplate":6},"/docs/4.x/examples/advanced/use-cookie","docs/4.x/4.examples/4.advanced/use-cookie",{"title":987,"path":1838,"stem":1839,"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":1841,"stem":1842,"children":1843,"page":108},"/docs/4.x/examples/experimental","docs/4.x/4.examples/7.experimental",[1844],{"title":996,"path":1845,"stem":1846,"titleTemplate":6},"/docs/4.x/examples/experimental/wasm","docs/4.x/4.examples/7.experimental/wasm",{"title":1000,"titleTemplate":1001,"icon":1002,"path":1848,"stem":1849,"children":1850,"page":108},"/docs/4.x/community","docs/4.x/5.community",[1851,1854,1857,1860,1863,1866],{"title":1007,"path":1852,"stem":1853,"titleTemplate":6,"icon":1010},"/docs/4.x/community/getting-help","docs/4.x/5.community/2.getting-help",{"title":1012,"path":1855,"stem":1856,"titleTemplate":6,"icon":1015},"/docs/4.x/community/reporting-bugs","docs/4.x/5.community/3.reporting-bugs",{"title":1017,"path":1858,"stem":1859,"titleTemplate":6,"icon":1020},"/docs/4.x/community/contribution","docs/4.x/5.community/4.contribution",{"title":1022,"path":1861,"stem":1862,"titleTemplate":6,"icon":1025},"/docs/4.x/community/framework-contribution","docs/4.x/5.community/5.framework-contribution",{"title":1027,"path":1864,"stem":1865,"titleTemplate":6,"icon":1030},"/docs/4.x/community/roadmap","docs/4.x/5.community/6.roadmap",{"title":1032,"path":1867,"stem":1868,"titleTemplate":6,"icon":1035},"/docs/4.x/community/changelog","docs/4.x/5.community/7.changelog",{"title":1037,"titleTemplate":1038,"icon":1039,"path":1870,"stem":1871,"children":1872,"page":108},"/docs/4.x/bridge","docs/4.x/6.bridge",[1873,1876,1879,1882,1885,1888,1891,1894,1897,1900],{"title":1044,"path":1874,"stem":1875,"titleTemplate":6},"/docs/4.x/bridge/overview","docs/4.x/6.bridge/1.overview",{"title":29,"path":1877,"stem":1878,"titleTemplate":6},"/docs/4.x/bridge/configuration","docs/4.x/6.bridge/10.configuration",{"title":280,"path":1880,"stem":1881,"titleTemplate":6},"/docs/4.x/bridge/typescript","docs/4.x/6.bridge/2.typescript",{"title":1054,"path":1883,"stem":1884,"titleTemplate":6},"/docs/4.x/bridge/bridge-composition-api","docs/4.x/6.bridge/3.bridge-composition-api",{"title":1058,"path":1886,"stem":1887,"titleTemplate":6},"/docs/4.x/bridge/plugins-and-middleware","docs/4.x/6.bridge/4.plugins-and-middleware",{"title":1062,"path":1889,"stem":1890,"titleTemplate":6},"/docs/4.x/bridge/nuxt3-compatible-api","docs/4.x/6.bridge/5.nuxt3-compatible-api",{"title":932,"path":1892,"stem":1893,"titleTemplate":6},"/docs/4.x/bridge/meta","docs/4.x/6.bridge/6.meta",{"title":399,"path":1895,"stem":1896,"titleTemplate":6},"/docs/4.x/bridge/runtime-config","docs/4.x/6.bridge/7.runtime-config",{"title":833,"path":1898,"stem":1899,"titleTemplate":6},"/docs/4.x/bridge/nitro","docs/4.x/6.bridge/8.nitro",{"title":1075,"path":1901,"stem":1902,"titleTemplate":6},"/docs/4.x/bridge/vite","docs/4.x/6.bridge/9.vite",{"title":1079,"titleTemplate":1080,"icon":107,"path":1904,"stem":1905,"children":1906,"page":108},"/docs/4.x/migration","docs/4.x/7.migration",[1907,1910,1913,1916,1919,1922,1925,1928,1931,1934,1937],{"title":1044,"path":1908,"stem":1909,"titleTemplate":6},"/docs/4.x/migration/overview","docs/4.x/7.migration/1.overview",{"title":1088,"path":1911,"stem":1912,"titleTemplate":6},"/docs/4.x/migration/bundling","docs/4.x/7.migration/10.bundling",{"title":79,"path":1914,"stem":1915,"titleTemplate":6},"/docs/4.x/migration/server","docs/4.x/7.migration/11.server",{"title":29,"path":1917,"stem":1918,"titleTemplate":6},"/docs/4.x/migration/configuration","docs/4.x/7.migration/2.configuration",{"title":276,"path":1920,"stem":1921,"titleTemplate":6},"/docs/4.x/migration/module-authors","docs/4.x/7.migration/20.module-authors",{"title":922,"path":1923,"stem":1924,"titleTemplate":6},"/docs/4.x/migration/auto-imports","docs/4.x/7.migration/3.auto-imports",{"title":932,"path":1926,"stem":1927,"titleTemplate":6},"/docs/4.x/migration/meta","docs/4.x/7.migration/4.meta",{"title":1058,"path":1929,"stem":1930,"titleTemplate":6},"/docs/4.x/migration/plugins-and-middleware","docs/4.x/7.migration/5.plugins-and-middleware",{"title":1110,"path":1932,"stem":1933,"titleTemplate":6},"/docs/4.x/migration/pages-and-layouts","docs/4.x/7.migration/6.pages-and-layouts",{"title":1114,"path":1935,"stem":1936,"titleTemplate":6},"/docs/4.x/migration/component-options","docs/4.x/7.migration/7.component-options",{"title":399,"path":1938,"stem":1939,"titleTemplate":6},"/docs/4.x/migration/runtime-config","docs/4.x/7.migration/8.runtime-config",{"title":1941,"path":1942,"stem":1943,"children":1944,"page":108},"Blog","/blog","blog",[1945,1949,1953,1957,1961,1965,1969,1973,1977,1981,1985,1989,1993,1997,2001,2005,2009,2013,2017,2021,2025],{"title":1946,"path":1947,"stem":1948},"Announcing 3.0","/blog/v3","blog/1.v3",{"title":1950,"path":1951,"stem":1952},"Nuxt 3.3","/blog/v3-3","blog/10.v3-3",{"title":1954,"path":1955,"stem":1956},"Nuxt 3.4","/blog/v3-4","blog/11.v3-4",{"title":1958,"path":1959,"stem":1960},"Nuxt 3.5","/blog/v3-5","blog/12.v3-5",{"title":1962,"path":1963,"stem":1964},"Nuxt 3.6","/blog/v3-6","blog/13.v3-6",{"title":1966,"path":1967,"stem":1968},"Nuxt on the Edge","/blog/nuxt-on-the-edge","blog/14.nuxt-on-the-edge",{"title":1970,"path":1971,"stem":1972},"Nuxt DevTools v1.0","/blog/nuxt-devtools-v1-0","blog/18.nuxt-devtools-v1-0",{"title":1974,"path":1975,"stem":1976},"Nuxt: A vision for 2023","/blog/vision-2023","blog/2.vision-2023",{"title":1978,"path":1979,"stem":1980},"The Evolution of Shiki v1.0","/blog/shiki-v1","blog/21.shiki-v1",{"title":1982,"path":1983,"stem":1984},"Refreshed Nuxt ESLint Integrations","/blog/eslint-module","blog/24.eslint-module",{"title":1986,"path":1987,"stem":1988},"Introducing Nuxt Scripts","/blog/nuxt-scripts","blog/26.nuxt-scripts",{"title":1990,"path":1991,"stem":1992},"Introducing Nuxt Icon v1","/blog/nuxt-icon-v1-0","blog/29.nuxt-icon-v1-0",{"title":1994,"path":1995,"stem":1996},"Introducing Nuxt DevTools","/blog/introducing-nuxt-devtools","blog/3.introducing-nuxt-devtools",{"title":1998,"path":1999,"stem":2000},"Announcing Nuxt 3 Release Candidate","/blog/nuxt3-rc","blog/3.nuxt3-rc",{"title":2002,"path":2003,"stem":2004},"Nuxt 2 End-of-Life (EOL)","/blog/nuxt2-eol","blog/4.nuxt2-eol",{"title":2006,"path":2007,"stem":2008},"Introducing Nuxt 3 Beta","/blog/nuxt3-beta","blog/4.nuxt3-beta",{"title":2010,"path":2011,"stem":2012},"Going Full Static","/blog/going-full-static","blog/5.going-full-static",{"title":2014,"path":2015,"stem":2016},"Introducing Smart Prefetching","/blog/introducing-smart-prefetching","blog/6.introducing-smart-prefetching",{"title":2018,"path":2019,"stem":2020},"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":2022,"path":2023,"stem":2024},"Nuxt 2 Static Improvements","/blog/nuxt-static-improvements","blog/8.nuxt-static-improvements",{"title":2026,"path":2027,"stem":2028},"Nuxt 2: From Terminal to Browser","/blog/nuxtjs-from-terminal-to-browser","blog/9.nuxtjs-from-terminal-to-browser",{"v5":2030,"v4":2030,"v3":2031,"v2":2032},"4.3.1","3.21.1","2.18.1",{"id":2034,"title":64,"body":2035,"description":8855,"extension":8856,"links":6,"meta":8857,"navigation":8858,"path":1156,"seo":8859,"stem":1157,"titleTemplate":6,"__hash__":8860},"docsv4/docs/4.x/1.getting-started/10.data-fetching.md",{"type":2036,"value":2037,"toc":8822},"minimark",[2038,2055,2058,2093,2101,2110,2119,2131,2144,2161,2490,2499,2504,2515,2526,2531,2543,2658,2685,2693,2697,2712,2772,2809,2826,2934,2944,2989,2994,3004,3108,3119,3124,3126,3129,3134,3139,3162,3166,3179,3312,3348,3485,3493,3713,3816,3822,3826,3833,3907,3925,3931,3953,3957,3968,3972,3981,4178,4188,4254,4260,4266,4271,4275,4285,4291,4398,4409,4413,4419,4581,4588,4710,4719,4723,4727,4732,4743,4769,4778,4782,4786,4802,4809,4841,5008,5014,5039,5202,5205,5341,5345,5348,5493,5497,5505,5666,5678,5691,5694,5702,5855,5858,5868,5982,5989,6103,6111,6117,6238,6242,6245,6359,6368,6375,6729,6736,6739,6748,6757,6985,6991,7014,7018,7027,7033,7046,7050,7053,7275,7407,7411,7421,7533,7544,7546,7550,7586,7594,7608,7612,7629,7640,7644,7684,7749,7753,7763,7932,8032,8036,8045,8054,8199,8335,8338,8342,8362,8365,8624,8628,8635,8814,8818],[2039,2040,2041,2042,2045,2046,2051,2052,2054],"p",{},"Nuxt comes with two composables and a built-in library to perform data-fetching in browser or server environments: ",[2043,2044,527],"code",{},", ",[2047,2048,2049],"a",{"href":1476},[2043,2050,515],{}," and ",[2043,2053,630],{},".",[2039,2056,2057],{},"In a nutshell:",[2059,2060,2061,2069,2083],"ul",{},[2062,2063,2064,2068],"li",{},[2047,2065,2066],{"href":1561},[2043,2067,630],{}," is the simplest way to make a network request.",[2062,2070,2071,2075,2076,2078,2079,2054],{},[2047,2072,2073],{"href":1485},[2043,2074,527],{}," is a wrapper around ",[2043,2077,630],{}," that fetches data only once in ",[2047,2080,2082],{"href":2081},"/docs/4.x/guide/concepts/rendering#universal-rendering","universal rendering",[2062,2084,2085,2089,2090,2092],{},[2047,2086,2087],{"href":1476},[2043,2088,515],{}," is similar to ",[2043,2091,527],{}," but offers more fine-grained control.",[2039,2094,2095,2096,2051,2098,2100],{},"Both ",[2043,2097,527],{},[2043,2099,515],{}," share a common set of options and patterns that we will detail in the last sections.",[2102,2103,2105,2106,2051,2108],"h2",{"id":2104},"the-need-for-usefetch-and-useasyncdata","The need for ",[2043,2107,527],{},[2043,2109,515],{},[2039,2111,2112,2113,2118],{},"Nuxt is a framework which can run isomorphic (or universal) code in both server and client environments. If the ",[2047,2114,2115,2117],{"href":1561},[2043,2116,630],{}," function"," is used to perform data fetching in the setup function of a Vue component, this may cause data to be fetched twice, once on the server (to render the HTML) and once again on the client (when the HTML is hydrated). This can cause hydration issues, increase the time to interactivity and cause unpredictable behavior.",[2039,2120,2121,2122,2051,2126,2130],{},"The ",[2047,2123,2124],{"href":1485},[2043,2125,527],{},[2047,2127,2128],{"href":1476},[2043,2129,515],{}," composables solve this problem by ensuring that if an API call is made on the server, the data is forwarded to the client in the payload.",[2039,2132,2133,2134,2140,2141,2054],{},"The payload is a JavaScript object accessible through ",[2047,2135,2137],{"href":2136},"/docs/4.x/api/composables/use-nuxt-app#payload",[2043,2138,2139],{},"useNuxtApp().payload",". It is used on the client to avoid refetching the same data when the code is executed in the browser ",[2047,2142,2143],{"href":2081},"during hydration",[2145,2146,2147],"tip",{},[2039,2148,2149,2150,2156,2157,2054],{},"Use the ",[2047,2151,2155],{"href":2152,"rel":2153},"https://devtools.nuxt.com",[2154],"nofollow","Nuxt DevTools"," to inspect this data in the ",[2158,2159,2160],"strong",{},"Payload tab",[2162,2163,2169],"pre",{"className":2164,"code":2165,"filename":2166,"language":2167,"meta":2168,"style":2168},"language-vue shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","\u003Cscript setup lang=\"ts\">\nconst { data } = await useFetch('/api/data')\n\nasync function handleFormSubmit () {\n  const res = await $fetch('/api/submit', {\n    method: 'POST',\n    body: {\n      // My form data\n    },\n  })\n}\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cdiv v-if=\"data == undefined\">\n    No data\n  \u003C/div>\n  \u003Cdiv v-else>\n    \u003Cform @submit=\"handleFormSubmit\">\n      \u003C!-- form input tags -->\n    \u003C/form>\n  \u003C/div>\n\u003C/template>\n","app/app.vue","vue","",[2043,2170,2171,2206,2247,2253,2270,2300,2320,2330,2337,2343,2351,2357,2367,2372,2382,2405,2411,2421,2433,2456,2462,2472,2481],{"__ignoreMap":2168},[2172,2173,2176,2180,2184,2188,2191,2194,2197,2201,2203],"span",{"class":2174,"line":2175},"line",1,[2172,2177,2179],{"class":2178},"sDfIl","\u003C",[2172,2181,2183],{"class":2182},"sRlkE","script",[2172,2185,2187],{"class":2186},"smZ93"," setup",[2172,2189,2190],{"class":2186}," lang",[2172,2192,2193],{"class":2178},"=",[2172,2195,2196],{"class":2178},"\"",[2172,2198,2200],{"class":2199},"sGFVr","ts",[2172,2202,2196],{"class":2178},[2172,2204,2205],{"class":2178},">\n",[2172,2207,2209,2212,2215,2219,2222,2225,2229,2233,2236,2239,2242,2244],{"class":2174,"line":2208},2,[2172,2210,2211],{"class":2186},"const",[2172,2213,2214],{"class":2178}," {",[2172,2216,2218],{"class":2217},"sZSNi"," data ",[2172,2220,2221],{"class":2178},"}",[2172,2223,2224],{"class":2178}," =",[2172,2226,2228],{"class":2227},"s8R28"," await",[2172,2230,2232],{"class":2231},"s3cPz"," useFetch",[2172,2234,2235],{"class":2217},"(",[2172,2237,2238],{"class":2178},"'",[2172,2240,2241],{"class":2199},"/api/data",[2172,2243,2238],{"class":2178},[2172,2245,2246],{"class":2217},")\n",[2172,2248,2250],{"class":2174,"line":2249},3,[2172,2251,2252],{"emptyLinePlaceholder":1196},"\n",[2172,2254,2256,2259,2261,2264,2267],{"class":2174,"line":2255},4,[2172,2257,2258],{"class":2186},"async",[2172,2260,2117],{"class":2186},[2172,2262,2263],{"class":2231}," handleFormSubmit",[2172,2265,2266],{"class":2178}," ()",[2172,2268,2269],{"class":2178}," {\n",[2172,2271,2273,2276,2279,2281,2283,2286,2288,2290,2293,2295,2298],{"class":2174,"line":2272},5,[2172,2274,2275],{"class":2186},"  const",[2172,2277,2278],{"class":2217}," res",[2172,2280,2224],{"class":2178},[2172,2282,2228],{"class":2227},[2172,2284,2285],{"class":2231}," $fetch",[2172,2287,2235],{"class":2182},[2172,2289,2238],{"class":2178},[2172,2291,2292],{"class":2199},"/api/submit",[2172,2294,2238],{"class":2178},[2172,2296,2297],{"class":2178},",",[2172,2299,2269],{"class":2178},[2172,2301,2303,2306,2309,2312,2315,2317],{"class":2174,"line":2302},6,[2172,2304,2305],{"class":2182},"    method",[2172,2307,2308],{"class":2178},":",[2172,2310,2311],{"class":2178}," '",[2172,2313,2314],{"class":2199},"POST",[2172,2316,2238],{"class":2178},[2172,2318,2319],{"class":2178},",\n",[2172,2321,2323,2326,2328],{"class":2174,"line":2322},7,[2172,2324,2325],{"class":2182},"    body",[2172,2327,2308],{"class":2178},[2172,2329,2269],{"class":2178},[2172,2331,2333],{"class":2174,"line":2332},8,[2172,2334,2336],{"class":2335},"sWuyu","      // My form data\n",[2172,2338,2340],{"class":2174,"line":2339},9,[2172,2341,2342],{"class":2178},"    },\n",[2172,2344,2346,2349],{"class":2174,"line":2345},10,[2172,2347,2348],{"class":2178},"  }",[2172,2350,2246],{"class":2182},[2172,2352,2354],{"class":2174,"line":2353},11,[2172,2355,2356],{"class":2178},"}\n",[2172,2358,2360,2363,2365],{"class":2174,"line":2359},12,[2172,2361,2362],{"class":2178},"\u003C/",[2172,2364,2183],{"class":2182},[2172,2366,2205],{"class":2178},[2172,2368,2370],{"class":2174,"line":2369},13,[2172,2371,2252],{"emptyLinePlaceholder":1196},[2172,2373,2375,2377,2380],{"class":2174,"line":2374},14,[2172,2376,2179],{"class":2178},[2172,2378,2379],{"class":2182},"template",[2172,2381,2205],{"class":2178},[2172,2383,2385,2388,2391,2394,2396,2398,2401,2403],{"class":2174,"line":2384},15,[2172,2386,2387],{"class":2178},"  \u003C",[2172,2389,2390],{"class":2182},"div",[2172,2392,2393],{"class":2186}," v-if",[2172,2395,2193],{"class":2178},[2172,2397,2196],{"class":2178},[2172,2399,2400],{"class":2199},"data == undefined",[2172,2402,2196],{"class":2178},[2172,2404,2205],{"class":2178},[2172,2406,2408],{"class":2174,"line":2407},16,[2172,2409,2410],{"class":2217},"    No data\n",[2172,2412,2414,2417,2419],{"class":2174,"line":2413},17,[2172,2415,2416],{"class":2178},"  \u003C/",[2172,2418,2390],{"class":2182},[2172,2420,2205],{"class":2178},[2172,2422,2424,2426,2428,2431],{"class":2174,"line":2423},18,[2172,2425,2387],{"class":2178},[2172,2427,2390],{"class":2182},[2172,2429,2430],{"class":2186}," v-else",[2172,2432,2205],{"class":2178},[2172,2434,2436,2439,2442,2445,2447,2449,2452,2454],{"class":2174,"line":2435},19,[2172,2437,2438],{"class":2178},"    \u003C",[2172,2440,2441],{"class":2182},"form",[2172,2443,2444],{"class":2186}," @submit",[2172,2446,2193],{"class":2178},[2172,2448,2196],{"class":2178},[2172,2450,2451],{"class":2199},"handleFormSubmit",[2172,2453,2196],{"class":2178},[2172,2455,2205],{"class":2178},[2172,2457,2459],{"class":2174,"line":2458},20,[2172,2460,2461],{"class":2335},"      \u003C!-- form input tags -->\n",[2172,2463,2465,2468,2470],{"class":2174,"line":2464},21,[2172,2466,2467],{"class":2178},"    \u003C/",[2172,2469,2441],{"class":2182},[2172,2471,2205],{"class":2178},[2172,2473,2475,2477,2479],{"class":2174,"line":2474},22,[2172,2476,2416],{"class":2178},[2172,2478,2390],{"class":2182},[2172,2480,2205],{"class":2178},[2172,2482,2484,2486,2488],{"class":2174,"line":2483},23,[2172,2485,2362],{"class":2178},[2172,2487,2379],{"class":2182},[2172,2489,2205],{"class":2178},[2039,2491,2492,2493,2495,2496,2498],{},"In the example above, ",[2043,2494,527],{}," would make sure that the request would occur in the server and is properly forwarded to the browser. ",[2043,2497,630],{}," has no such mechanism and is a better option to use when the request is solely made from the browser.",[2500,2501,2503],"h3",{"id":2502},"suspense","Suspense",[2039,2505,2506,2507,2514],{},"Nuxt uses Vue's ",[2047,2508,2511],{"href":2509,"rel":2510},"https://vuejs.org/guide/built-ins/suspense",[2154],[2043,2512,2513],{},"\u003CSuspense>"," component under the hood to prevent navigation before every async data is available to the view. The data fetching composables can help you leverage this feature and use what suits best on a per-call basis.",[2516,2517,2518],"note",{},[2039,2519,2520,2521,2525],{},"You can add the ",[2047,2522,2523],{"href":1447},[2043,2524,480],{}," to add a progress bar between page navigations.",[2102,2527,2529],{"id":2528},"fetch",[2043,2530,630],{},[2039,2532,2533,2534,2539,2540,2542],{},"Nuxt includes the ",[2047,2535,2538],{"href":2536,"rel":2537},"https://github.com/unjs/ofetch",[2154],"ofetch"," library, and is auto-imported as the ",[2043,2541,630],{}," alias globally across your application.",[2162,2544,2548],{"className":2164,"code":2545,"filename":2546,"language":2167,"meta":2547,"style":2168},"\u003Cscript setup lang=\"ts\">\nasync function addTodo () {\n  const todo = await $fetch('/api/todos', {\n    method: 'POST',\n    body: {\n      // My todo data\n    },\n  })\n}\n\u003C/script>\n","pages/todos.vue","twoslash",[2043,2549,2550,2570,2583,2609,2623,2631,2636,2640,2646,2650],{"__ignoreMap":2168},[2172,2551,2552,2554,2556,2558,2560,2562,2564,2566,2568],{"class":2174,"line":2175},[2172,2553,2179],{"class":2178},[2172,2555,2183],{"class":2182},[2172,2557,2187],{"class":2186},[2172,2559,2190],{"class":2186},[2172,2561,2193],{"class":2178},[2172,2563,2196],{"class":2178},[2172,2565,2200],{"class":2199},[2172,2567,2196],{"class":2178},[2172,2569,2205],{"class":2178},[2172,2571,2572,2574,2576,2579,2581],{"class":2174,"line":2208},[2172,2573,2258],{"class":2186},[2172,2575,2117],{"class":2186},[2172,2577,2578],{"class":2231}," addTodo",[2172,2580,2266],{"class":2178},[2172,2582,2269],{"class":2178},[2172,2584,2585,2587,2590,2592,2594,2596,2598,2600,2603,2605,2607],{"class":2174,"line":2249},[2172,2586,2275],{"class":2186},[2172,2588,2589],{"class":2217}," todo",[2172,2591,2224],{"class":2178},[2172,2593,2228],{"class":2227},[2172,2595,2285],{"class":2231},[2172,2597,2235],{"class":2182},[2172,2599,2238],{"class":2178},[2172,2601,2602],{"class":2199},"/api/todos",[2172,2604,2238],{"class":2178},[2172,2606,2297],{"class":2178},[2172,2608,2269],{"class":2178},[2172,2610,2611,2613,2615,2617,2619,2621],{"class":2174,"line":2255},[2172,2612,2305],{"class":2182},[2172,2614,2308],{"class":2178},[2172,2616,2311],{"class":2178},[2172,2618,2314],{"class":2199},[2172,2620,2238],{"class":2178},[2172,2622,2319],{"class":2178},[2172,2624,2625,2627,2629],{"class":2174,"line":2272},[2172,2626,2325],{"class":2182},[2172,2628,2308],{"class":2178},[2172,2630,2269],{"class":2178},[2172,2632,2633],{"class":2174,"line":2302},[2172,2634,2635],{"class":2335},"      // My todo data\n",[2172,2637,2638],{"class":2174,"line":2322},[2172,2639,2342],{"class":2178},[2172,2641,2642,2644],{"class":2174,"line":2332},[2172,2643,2348],{"class":2178},[2172,2645,2246],{"class":2182},[2172,2647,2648],{"class":2174,"line":2339},[2172,2649,2356],{"class":2178},[2172,2651,2652,2654,2656],{"class":2174,"line":2345},[2172,2653,2362],{"class":2178},[2172,2655,2183],{"class":2182},[2172,2657,2205],{"class":2178},[2659,2660,2661],"warning",{},[2039,2662,2663,2664,2666,2667,2671,2672,2675,2676,2678,2679,2684],{},"Beware that using only ",[2043,2665,630],{}," will not provide ",[2047,2668,2670],{"href":2669},"/docs/4.x/getting-started/data-fetching#the-need-for-usefetch-and-useasyncdata","network calls de-duplication and navigation prevention",". ",[2673,2674],"br",{},"\nIt is recommended to use ",[2043,2677,630],{}," for client-side interactions (event-based) or combined with ",[2047,2680,2682],{"href":2681},"/docs/4.x/getting-started/data-fetching#useasyncdata",[2043,2683,515],{}," when fetching the initial component data.",[2686,2687,2688],"read-more",{"to":1561},[2039,2689,2690,2691,2054],{},"Read more about ",[2043,2692,630],{},[2500,2694,2696],{"id":2695},"pass-client-headers-to-the-api","Pass Client Headers to the API",[2039,2698,2699,2700,2702,2703,2707,2708,2711],{},"When calling ",[2043,2701,527],{}," on the server, Nuxt will use ",[2047,2704,2705],{"href":1518},[2043,2706,571],{}," to proxy client headers and cookies (with the exception of headers not meant to be forwarded, like ",[2043,2709,2710],{},"host",").",[2162,2713,2715],{"className":2164,"code":2714,"language":2167,"meta":2168,"style":2168},"\u003Cscript setup lang=\"ts\">\nconst { data } = await useFetch('/api/echo')\n\u003C/script>\n",[2043,2716,2717,2737,2764],{"__ignoreMap":2168},[2172,2718,2719,2721,2723,2725,2727,2729,2731,2733,2735],{"class":2174,"line":2175},[2172,2720,2179],{"class":2178},[2172,2722,2183],{"class":2182},[2172,2724,2187],{"class":2186},[2172,2726,2190],{"class":2186},[2172,2728,2193],{"class":2178},[2172,2730,2196],{"class":2178},[2172,2732,2200],{"class":2199},[2172,2734,2196],{"class":2178},[2172,2736,2205],{"class":2178},[2172,2738,2739,2741,2743,2745,2747,2749,2751,2753,2755,2757,2760,2762],{"class":2174,"line":2208},[2172,2740,2211],{"class":2186},[2172,2742,2214],{"class":2178},[2172,2744,2218],{"class":2217},[2172,2746,2221],{"class":2178},[2172,2748,2224],{"class":2178},[2172,2750,2228],{"class":2227},[2172,2752,2232],{"class":2231},[2172,2754,2235],{"class":2217},[2172,2756,2238],{"class":2178},[2172,2758,2759],{"class":2199},"/api/echo",[2172,2761,2238],{"class":2178},[2172,2763,2246],{"class":2217},[2172,2765,2766,2768,2770],{"class":2174,"line":2249},[2172,2767,2362],{"class":2178},[2172,2769,2183],{"class":2182},[2172,2771,2205],{"class":2178},[2162,2773,2776],{"className":2774,"code":2775,"language":2200,"meta":2168,"style":2168},"language-ts shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","// /api/echo.ts\nexport default defineEventHandler(event => parseCookies(event))\n",[2043,2777,2778,2783],{"__ignoreMap":2168},[2172,2779,2780],{"class":2174,"line":2175},[2172,2781,2782],{"class":2335},"// /api/echo.ts\n",[2172,2784,2785,2788,2791,2794,2796,2800,2803,2806],{"class":2174,"line":2208},[2172,2786,2787],{"class":2227},"export",[2172,2789,2790],{"class":2227}," default",[2172,2792,2793],{"class":2231}," defineEventHandler",[2172,2795,2235],{"class":2217},[2172,2797,2799],{"class":2798},"s1nJG","event",[2172,2801,2802],{"class":2186}," =>",[2172,2804,2805],{"class":2231}," parseCookies",[2172,2807,2808],{"class":2217},"(event))\n",[2039,2810,2811,2812,2816,2817,2819,2820,2823,2824,2054],{},"Alternatively, the example below shows how to use ",[2047,2813,2814],{"href":1524},[2043,2815,579],{}," to access and send cookies to the API from a server-side request (originating on the client). Using an isomorphic ",[2043,2818,630],{}," call, we ensure that the API endpoint has access to the same ",[2043,2821,2822],{},"cookie"," header originally sent by the user's browser. This is only necessary if you aren't using ",[2043,2825,527],{},[2162,2827,2829],{"className":2164,"code":2828,"language":2167,"meta":2168,"style":2168},"\u003Cscript setup lang=\"ts\">\nconst headers = useRequestHeaders(['cookie'])\n\nasync function getCurrentUser () {\n  return await $fetch('/api/me', { headers })\n}\n\u003C/script>\n",[2043,2830,2831,2851,2875,2879,2892,2922,2926],{"__ignoreMap":2168},[2172,2832,2833,2835,2837,2839,2841,2843,2845,2847,2849],{"class":2174,"line":2175},[2172,2834,2179],{"class":2178},[2172,2836,2183],{"class":2182},[2172,2838,2187],{"class":2186},[2172,2840,2190],{"class":2186},[2172,2842,2193],{"class":2178},[2172,2844,2196],{"class":2178},[2172,2846,2200],{"class":2199},[2172,2848,2196],{"class":2178},[2172,2850,2205],{"class":2178},[2172,2852,2853,2855,2858,2860,2863,2866,2868,2870,2872],{"class":2174,"line":2208},[2172,2854,2211],{"class":2186},[2172,2856,2857],{"class":2217}," headers ",[2172,2859,2193],{"class":2178},[2172,2861,2862],{"class":2231}," useRequestHeaders",[2172,2864,2865],{"class":2217},"([",[2172,2867,2238],{"class":2178},[2172,2869,2822],{"class":2199},[2172,2871,2238],{"class":2178},[2172,2873,2874],{"class":2217},"])\n",[2172,2876,2877],{"class":2174,"line":2249},[2172,2878,2252],{"emptyLinePlaceholder":1196},[2172,2880,2881,2883,2885,2888,2890],{"class":2174,"line":2255},[2172,2882,2258],{"class":2186},[2172,2884,2117],{"class":2186},[2172,2886,2887],{"class":2231}," getCurrentUser",[2172,2889,2266],{"class":2178},[2172,2891,2269],{"class":2178},[2172,2893,2894,2897,2899,2901,2903,2905,2908,2910,2912,2914,2917,2920],{"class":2174,"line":2272},[2172,2895,2896],{"class":2227},"  return",[2172,2898,2228],{"class":2227},[2172,2900,2285],{"class":2231},[2172,2902,2235],{"class":2182},[2172,2904,2238],{"class":2178},[2172,2906,2907],{"class":2199},"/api/me",[2172,2909,2238],{"class":2178},[2172,2911,2297],{"class":2178},[2172,2913,2214],{"class":2178},[2172,2915,2916],{"class":2217}," headers",[2172,2918,2919],{"class":2178}," }",[2172,2921,2246],{"class":2182},[2172,2923,2924],{"class":2174,"line":2302},[2172,2925,2356],{"class":2178},[2172,2927,2928,2930,2932],{"class":2174,"line":2322},[2172,2929,2362],{"class":2178},[2172,2931,2183],{"class":2182},[2172,2933,2205],{"class":2178},[2145,2935,2936],{},[2039,2937,2938,2939,2943],{},"You can also use ",[2047,2940,2941],{"href":1518},[2043,2942,571],{}," to proxy headers to the call automatically.",[2945,2946,2947,2950],"caution",{},[2039,2948,2949],{},"Be very careful before proxying headers to an external API and just include headers that you need. Not all headers are safe to be bypassed and might introduce unwanted behavior. Here is a list of common headers that are NOT to be proxied:",[2059,2951,2952,2959,2970,2981],{},[2062,2953,2954,2045,2956],{},[2043,2955,2710],{},[2043,2957,2958],{},"accept",[2062,2960,2961,2045,2964,2045,2967],{},[2043,2962,2963],{},"content-length",[2043,2965,2966],{},"content-md5",[2043,2968,2969],{},"content-type",[2062,2971,2972,2045,2975,2045,2978],{},[2043,2973,2974],{},"x-forwarded-host",[2043,2976,2977],{},"x-forwarded-port",[2043,2979,2980],{},"x-forwarded-proto",[2062,2982,2983,2045,2986],{},[2043,2984,2985],{},"cf-connecting-ip",[2043,2987,2988],{},"cf-ray",[2102,2990,2992],{"id":2991},"usefetch",[2043,2993,527],{},[2039,2995,2121,2996,3000,3001,3003],{},[2047,2997,2998],{"href":1485},[2043,2999,527],{}," composable uses ",[2043,3002,630],{}," under-the-hood to make SSR-safe network calls in the setup function.",[2162,3005,3007],{"className":2164,"code":3006,"filename":2166,"language":2167,"meta":2547,"style":2168},"\u003Cscript setup lang=\"ts\">\nconst { data: count } = await useFetch('/api/count')\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cp>Page visits: {{ count }}\u003C/p>\n\u003C/template>\n",[2043,3008,3009,3029,3062,3070,3074,3082,3100],{"__ignoreMap":2168},[2172,3010,3011,3013,3015,3017,3019,3021,3023,3025,3027],{"class":2174,"line":2175},[2172,3012,2179],{"class":2178},[2172,3014,2183],{"class":2182},[2172,3016,2187],{"class":2186},[2172,3018,2190],{"class":2186},[2172,3020,2193],{"class":2178},[2172,3022,2196],{"class":2178},[2172,3024,2200],{"class":2199},[2172,3026,2196],{"class":2178},[2172,3028,2205],{"class":2178},[2172,3030,3031,3033,3035,3038,3040,3043,3045,3047,3049,3051,3053,3055,3058,3060],{"class":2174,"line":2208},[2172,3032,2211],{"class":2186},[2172,3034,2214],{"class":2178},[2172,3036,3037],{"class":2182}," data",[2172,3039,2308],{"class":2178},[2172,3041,3042],{"class":2217}," count ",[2172,3044,2221],{"class":2178},[2172,3046,2224],{"class":2178},[2172,3048,2228],{"class":2227},[2172,3050,2232],{"class":2231},[2172,3052,2235],{"class":2217},[2172,3054,2238],{"class":2178},[2172,3056,3057],{"class":2199},"/api/count",[2172,3059,2238],{"class":2178},[2172,3061,2246],{"class":2217},[2172,3063,3064,3066,3068],{"class":2174,"line":2249},[2172,3065,2362],{"class":2178},[2172,3067,2183],{"class":2182},[2172,3069,2205],{"class":2178},[2172,3071,3072],{"class":2174,"line":2255},[2172,3073,2252],{"emptyLinePlaceholder":1196},[2172,3075,3076,3078,3080],{"class":2174,"line":2272},[2172,3077,2179],{"class":2178},[2172,3079,2379],{"class":2182},[2172,3081,2205],{"class":2178},[2172,3083,3084,3086,3088,3091,3094,3096,3098],{"class":2174,"line":2302},[2172,3085,2387],{"class":2178},[2172,3087,2039],{"class":2182},[2172,3089,3090],{"class":2178},">",[2172,3092,3093],{"class":2217},"Page visits: {{ count }}",[2172,3095,2362],{"class":2178},[2172,3097,2039],{"class":2182},[2172,3099,2205],{"class":2178},[2172,3101,3102,3104,3106],{"class":2174,"line":2322},[2172,3103,2362],{"class":2178},[2172,3105,2379],{"class":2182},[2172,3107,2205],{"class":2178},[2039,3109,3110,3111,3115,3116,3118],{},"This composable is a wrapper around the ",[2047,3112,3113],{"href":1476},[2043,3114,515],{}," composable and ",[2043,3117,630],{}," utility.",[3120,3121],"video-accordion",{"title":3122,"video-id":3123},"Watch a video from Alexander Lichter to avoid using useFetch the wrong way","njsGVmcWviY",[2686,3125],{"to":1485},[3127,3128],"link-example",{"to":1785},[2102,3130,3132],{"id":3131},"useasyncdata",[2043,3133,515],{},[2039,3135,2121,3136,3138],{},[2043,3137,515],{}," composable is responsible for wrapping async logic and returning the result once it is resolved.",[2145,3140,3141],{},[2039,3142,3143,3146,3147,2671,3150,3152,3153,3156,3157,3161],{},[2043,3144,3145],{},"useFetch(url)"," is nearly equivalent to ",[2043,3148,3149],{},"useAsyncData(url, () => event.$fetch(url))",[2673,3151],{},"\nIt's developer experience sugar for the most common use case. (You can find out more about ",[2043,3154,3155],{},"event.fetch"," at ",[2047,3158,3159],{"href":1518},[2043,3160,571],{},".)",[3120,3163],{"title":3164,"video-id":3165},"Watch a video from Alexander Lichter to dig deeper into the difference between useFetch and useAsyncData","0X-aOpSGabA",[2039,3167,3168,3169,3173,3174,3178],{},"There are some cases when using the ",[2047,3170,3171],{"href":1485},[2043,3172,527],{}," composable is not appropriate, for example when a CMS or a third-party provide their own query layer. In this case, you can use ",[2047,3175,3176],{"href":1476},[2043,3177,515],{}," to wrap your calls and still keep the benefits provided by the composable.",[2162,3180,3183],{"className":2164,"code":3181,"filename":3182,"language":2167,"meta":2168,"style":2168},"\u003Cscript setup lang=\"ts\">\nconst { data, error } = await useAsyncData('users', () => myGetFunction('users'))\n\n// This is also possible:\nconst { data, error } = await useAsyncData(() => myGetFunction('users'))\n\u003C/script>\n","app/pages/users.vue",[2043,3184,3185,3205,3256,3260,3265,3304],{"__ignoreMap":2168},[2172,3186,3187,3189,3191,3193,3195,3197,3199,3201,3203],{"class":2174,"line":2175},[2172,3188,2179],{"class":2178},[2172,3190,2183],{"class":2182},[2172,3192,2187],{"class":2186},[2172,3194,2190],{"class":2186},[2172,3196,2193],{"class":2178},[2172,3198,2196],{"class":2178},[2172,3200,2200],{"class":2199},[2172,3202,2196],{"class":2178},[2172,3204,2205],{"class":2178},[2172,3206,3207,3209,3211,3213,3215,3218,3220,3222,3224,3227,3229,3231,3234,3236,3238,3240,3242,3245,3247,3249,3251,3253],{"class":2174,"line":2208},[2172,3208,2211],{"class":2186},[2172,3210,2214],{"class":2178},[2172,3212,3037],{"class":2217},[2172,3214,2297],{"class":2178},[2172,3216,3217],{"class":2217}," error ",[2172,3219,2221],{"class":2178},[2172,3221,2224],{"class":2178},[2172,3223,2228],{"class":2227},[2172,3225,3226],{"class":2231}," useAsyncData",[2172,3228,2235],{"class":2217},[2172,3230,2238],{"class":2178},[2172,3232,3233],{"class":2199},"users",[2172,3235,2238],{"class":2178},[2172,3237,2297],{"class":2178},[2172,3239,2266],{"class":2178},[2172,3241,2802],{"class":2186},[2172,3243,3244],{"class":2231}," myGetFunction",[2172,3246,2235],{"class":2217},[2172,3248,2238],{"class":2178},[2172,3250,3233],{"class":2199},[2172,3252,2238],{"class":2178},[2172,3254,3255],{"class":2217},"))\n",[2172,3257,3258],{"class":2174,"line":2249},[2172,3259,2252],{"emptyLinePlaceholder":1196},[2172,3261,3262],{"class":2174,"line":2255},[2172,3263,3264],{"class":2335},"// This is also possible:\n",[2172,3266,3267,3269,3271,3273,3275,3277,3279,3281,3283,3285,3287,3290,3292,3294,3296,3298,3300,3302],{"class":2174,"line":2272},[2172,3268,2211],{"class":2186},[2172,3270,2214],{"class":2178},[2172,3272,3037],{"class":2217},[2172,3274,2297],{"class":2178},[2172,3276,3217],{"class":2217},[2172,3278,2221],{"class":2178},[2172,3280,2224],{"class":2178},[2172,3282,2228],{"class":2227},[2172,3284,3226],{"class":2231},[2172,3286,2235],{"class":2217},[2172,3288,3289],{"class":2178},"()",[2172,3291,2802],{"class":2186},[2172,3293,3244],{"class":2231},[2172,3295,2235],{"class":2217},[2172,3297,2238],{"class":2178},[2172,3299,3233],{"class":2199},[2172,3301,2238],{"class":2178},[2172,3303,3255],{"class":2217},[2172,3305,3306,3308,3310],{"class":2174,"line":2302},[2172,3307,2362],{"class":2178},[2172,3309,2183],{"class":2182},[2172,3311,2205],{"class":2178},[2516,3313,3314],{},[2039,3315,3316,3317,3321,3322,3324,3325,3327,3328,3330,3331,3333,3334,3324,3336,3338,3339,3343,3344,2054],{},"The first argument of ",[2047,3318,3319],{"href":1476},[2043,3320,515],{}," is a unique key used to cache the response of the second argument, the querying function. This key can be ignored by directly passing the querying function, the key will be auto-generated.\n",[2673,3323],{}," ",[2673,3326],{},"\nSince the autogenerated key only takes into account the file and line where ",[2043,3329,515],{}," is invoked, it is recommended to always create your own key to avoid unwanted behavior, like when you are creating your own custom composable wrapping ",[2043,3332,515],{},".\n",[2673,3335],{},[2673,3337],{},"\nSetting a key can be useful to share the same data between components using ",[2047,3340,3341],{"href":1509},[2043,3342,559],{}," or to ",[2047,3345,3347],{"href":3346},"/docs/4.x/api/utils/refresh-nuxt-data#refresh-specific-data","refresh specific data",[2162,3349,3352],{"className":2164,"code":3350,"filename":3351,"language":2167,"meta":2168,"style":2168},"\u003Cscript setup lang=\"ts\">\nconst { id } = useRoute().params\n\nconst { data, error } = await useAsyncData(`user:${id}`, () => {\n  return myGetFunction('users', { id })\n})\n\u003C/script>\n","app/pages/users/[id].vue",[2043,3353,3354,3374,3397,3401,3446,3471,3477],{"__ignoreMap":2168},[2172,3355,3356,3358,3360,3362,3364,3366,3368,3370,3372],{"class":2174,"line":2175},[2172,3357,2179],{"class":2178},[2172,3359,2183],{"class":2182},[2172,3361,2187],{"class":2186},[2172,3363,2190],{"class":2186},[2172,3365,2193],{"class":2178},[2172,3367,2196],{"class":2178},[2172,3369,2200],{"class":2199},[2172,3371,2196],{"class":2178},[2172,3373,2205],{"class":2178},[2172,3375,3376,3378,3380,3383,3385,3387,3390,3392,3394],{"class":2174,"line":2208},[2172,3377,2211],{"class":2186},[2172,3379,2214],{"class":2178},[2172,3381,3382],{"class":2217}," id ",[2172,3384,2221],{"class":2178},[2172,3386,2224],{"class":2178},[2172,3388,3389],{"class":2231}," useRoute",[2172,3391,3289],{"class":2217},[2172,3393,2054],{"class":2178},[2172,3395,3396],{"class":2217},"params\n",[2172,3398,3399],{"class":2174,"line":2249},[2172,3400,2252],{"emptyLinePlaceholder":1196},[2172,3402,3403,3405,3407,3409,3411,3413,3415,3417,3419,3421,3423,3426,3429,3432,3435,3438,3440,3442,3444],{"class":2174,"line":2255},[2172,3404,2211],{"class":2186},[2172,3406,2214],{"class":2178},[2172,3408,3037],{"class":2217},[2172,3410,2297],{"class":2178},[2172,3412,3217],{"class":2217},[2172,3414,2221],{"class":2178},[2172,3416,2224],{"class":2178},[2172,3418,2228],{"class":2227},[2172,3420,3226],{"class":2231},[2172,3422,2235],{"class":2217},[2172,3424,3425],{"class":2178},"`",[2172,3427,3428],{"class":2199},"user:",[2172,3430,3431],{"class":2178},"${",[2172,3433,3434],{"class":2217},"id",[2172,3436,3437],{"class":2178},"}`",[2172,3439,2297],{"class":2178},[2172,3441,2266],{"class":2178},[2172,3443,2802],{"class":2186},[2172,3445,2269],{"class":2178},[2172,3447,3448,3450,3452,3454,3456,3458,3460,3462,3464,3467,3469],{"class":2174,"line":2272},[2172,3449,2896],{"class":2227},[2172,3451,3244],{"class":2231},[2172,3453,2235],{"class":2182},[2172,3455,2238],{"class":2178},[2172,3457,3233],{"class":2199},[2172,3459,2238],{"class":2178},[2172,3461,2297],{"class":2178},[2172,3463,2214],{"class":2178},[2172,3465,3466],{"class":2217}," id",[2172,3468,2919],{"class":2178},[2172,3470,2246],{"class":2182},[2172,3472,3473,3475],{"class":2174,"line":2302},[2172,3474,2221],{"class":2178},[2172,3476,2246],{"class":2217},[2172,3478,3479,3481,3483],{"class":2174,"line":2322},[2172,3480,2362],{"class":2178},[2172,3482,2183],{"class":2182},[2172,3484,2205],{"class":2178},[2039,3486,2121,3487,3489,3490,3492],{},[2043,3488,515],{}," composable is a great way to wrap and wait for multiple ",[2043,3491,630],{}," requests to be completed, and then process the results.",[2162,3494,3496],{"className":2164,"code":3495,"language":2167,"meta":2168,"style":2168},"\u003Cscript setup lang=\"ts\">\nconst { data: discounts, status } = await useAsyncData('cart-discount', async (_nuxtApp, { signal }) => {\n  const [coupons, offers] = await Promise.all([\n    $fetch('/cart/coupons', { signal }),\n    $fetch('/cart/offers', { signal }),\n  ])\n\n  return { coupons, offers }\n})\n// discounts.value.coupons\n// discounts.value.offers\n\u003C/script>\n",[2043,3497,3498,3518,3578,3612,3639,3664,3669,3673,3689,3695,3700,3705],{"__ignoreMap":2168},[2172,3499,3500,3502,3504,3506,3508,3510,3512,3514,3516],{"class":2174,"line":2175},[2172,3501,2179],{"class":2178},[2172,3503,2183],{"class":2182},[2172,3505,2187],{"class":2186},[2172,3507,2190],{"class":2186},[2172,3509,2193],{"class":2178},[2172,3511,2196],{"class":2178},[2172,3513,2200],{"class":2199},[2172,3515,2196],{"class":2178},[2172,3517,2205],{"class":2178},[2172,3519,3520,3522,3524,3526,3528,3531,3533,3536,3538,3540,3542,3544,3546,3548,3551,3553,3555,3558,3561,3564,3566,3568,3571,3574,3576],{"class":2174,"line":2208},[2172,3521,2211],{"class":2186},[2172,3523,2214],{"class":2178},[2172,3525,3037],{"class":2182},[2172,3527,2308],{"class":2178},[2172,3529,3530],{"class":2217}," discounts",[2172,3532,2297],{"class":2178},[2172,3534,3535],{"class":2217}," status ",[2172,3537,2221],{"class":2178},[2172,3539,2224],{"class":2178},[2172,3541,2228],{"class":2227},[2172,3543,3226],{"class":2231},[2172,3545,2235],{"class":2217},[2172,3547,2238],{"class":2178},[2172,3549,3550],{"class":2199},"cart-discount",[2172,3552,2238],{"class":2178},[2172,3554,2297],{"class":2178},[2172,3556,3557],{"class":2186}," async",[2172,3559,3560],{"class":2178}," (",[2172,3562,3563],{"class":2798},"_nuxtApp",[2172,3565,2297],{"class":2178},[2172,3567,2214],{"class":2178},[2172,3569,3570],{"class":2798}," signal",[2172,3572,3573],{"class":2178}," })",[2172,3575,2802],{"class":2186},[2172,3577,2269],{"class":2178},[2172,3579,3580,3582,3585,3588,3590,3593,3596,3598,3600,3604,3606,3609],{"class":2174,"line":2249},[2172,3581,2275],{"class":2186},[2172,3583,3584],{"class":2178}," [",[2172,3586,3587],{"class":2217},"coupons",[2172,3589,2297],{"class":2178},[2172,3591,3592],{"class":2217}," offers",[2172,3594,3595],{"class":2178},"]",[2172,3597,2224],{"class":2178},[2172,3599,2228],{"class":2227},[2172,3601,3603],{"class":3602},"s52Pk"," Promise",[2172,3605,2054],{"class":2178},[2172,3607,3608],{"class":2231},"all",[2172,3610,3611],{"class":2182},"([\n",[2172,3613,3614,3617,3619,3621,3624,3626,3628,3630,3632,3634,3637],{"class":2174,"line":2255},[2172,3615,3616],{"class":2231},"    $fetch",[2172,3618,2235],{"class":2182},[2172,3620,2238],{"class":2178},[2172,3622,3623],{"class":2199},"/cart/coupons",[2172,3625,2238],{"class":2178},[2172,3627,2297],{"class":2178},[2172,3629,2214],{"class":2178},[2172,3631,3570],{"class":2217},[2172,3633,2919],{"class":2178},[2172,3635,3636],{"class":2182},")",[2172,3638,2319],{"class":2178},[2172,3640,3641,3643,3645,3647,3650,3652,3654,3656,3658,3660,3662],{"class":2174,"line":2272},[2172,3642,3616],{"class":2231},[2172,3644,2235],{"class":2182},[2172,3646,2238],{"class":2178},[2172,3648,3649],{"class":2199},"/cart/offers",[2172,3651,2238],{"class":2178},[2172,3653,2297],{"class":2178},[2172,3655,2214],{"class":2178},[2172,3657,3570],{"class":2217},[2172,3659,2919],{"class":2178},[2172,3661,3636],{"class":2182},[2172,3663,2319],{"class":2178},[2172,3665,3666],{"class":2174,"line":2302},[2172,3667,3668],{"class":2182},"  ])\n",[2172,3670,3671],{"class":2174,"line":2322},[2172,3672,2252],{"emptyLinePlaceholder":1196},[2172,3674,3675,3677,3679,3682,3684,3686],{"class":2174,"line":2332},[2172,3676,2896],{"class":2227},[2172,3678,2214],{"class":2178},[2172,3680,3681],{"class":2217}," coupons",[2172,3683,2297],{"class":2178},[2172,3685,3592],{"class":2217},[2172,3687,3688],{"class":2178}," }\n",[2172,3690,3691,3693],{"class":2174,"line":2339},[2172,3692,2221],{"class":2178},[2172,3694,2246],{"class":2217},[2172,3696,3697],{"class":2174,"line":2345},[2172,3698,3699],{"class":2335},"// discounts.value.coupons\n",[2172,3701,3702],{"class":2174,"line":2353},[2172,3703,3704],{"class":2335},"// discounts.value.offers\n",[2172,3706,3707,3709,3711],{"class":2174,"line":2359},[2172,3708,2362],{"class":2178},[2172,3710,2183],{"class":2182},[2172,3712,2205],{"class":2178},[2516,3714,3715,3725],{},[2039,3716,3717,3719,3720,3724],{},[2043,3718,515],{}," is for fetching and caching data, not triggering side effects like calling Pinia actions, as this can cause unintended behavior such as repeated executions with nullish values. If you need to trigger side effects, use the ",[2047,3721,3722],{"href":1570},[2043,3723,642],{}," utility to do so.",[2162,3726,3728],{"className":2164,"code":3727,"language":2167,"meta":2168,"style":2168},"\u003Cscript setup lang=\"ts\">\nconst offersStore = useOffersStore()\n\n// you can't do this\nawait useAsyncData(() => offersStore.getOffer(route.params.slug))\n\u003C/script>\n",[2043,3729,3730,3750,3765,3769,3774,3808],{"__ignoreMap":2168},[2172,3731,3732,3734,3736,3738,3740,3742,3744,3746,3748],{"class":2174,"line":2175},[2172,3733,2179],{"class":2178},[2172,3735,2183],{"class":2182},[2172,3737,2187],{"class":2186},[2172,3739,2190],{"class":2186},[2172,3741,2193],{"class":2178},[2172,3743,2196],{"class":2178},[2172,3745,2200],{"class":2199},[2172,3747,2196],{"class":2178},[2172,3749,2205],{"class":2178},[2172,3751,3752,3754,3757,3759,3762],{"class":2174,"line":2208},[2172,3753,2211],{"class":2186},[2172,3755,3756],{"class":2217}," offersStore ",[2172,3758,2193],{"class":2178},[2172,3760,3761],{"class":2231}," useOffersStore",[2172,3763,3764],{"class":2217},"()\n",[2172,3766,3767],{"class":2174,"line":2249},[2172,3768,2252],{"emptyLinePlaceholder":1196},[2172,3770,3771],{"class":2174,"line":2255},[2172,3772,3773],{"class":2335},"// you can't do this\n",[2172,3775,3776,3779,3781,3783,3785,3787,3790,3792,3795,3798,3800,3803,3805],{"class":2174,"line":2272},[2172,3777,3778],{"class":2227},"await",[2172,3780,3226],{"class":2231},[2172,3782,2235],{"class":2217},[2172,3784,3289],{"class":2178},[2172,3786,2802],{"class":2186},[2172,3788,3789],{"class":2217}," offersStore",[2172,3791,2054],{"class":2178},[2172,3793,3794],{"class":2231},"getOffer",[2172,3796,3797],{"class":2217},"(route",[2172,3799,2054],{"class":2178},[2172,3801,3802],{"class":2217},"params",[2172,3804,2054],{"class":2178},[2172,3806,3807],{"class":2217},"slug))\n",[2172,3809,3810,3812,3814],{"class":2174,"line":2302},[2172,3811,2362],{"class":2178},[2172,3813,2183],{"class":2182},[2172,3815,2205],{"class":2178},[2686,3817,3818],{"to":1476},[2039,3819,2690,3820,2054],{},[2043,3821,515],{},[2102,3823,3825],{"id":3824},"return-values","Return Values",[2039,3827,3828,2051,3830,3832],{},[2043,3829,527],{},[2043,3831,515],{}," have the same return values listed below.",[2059,3834,3835,3841,3855,3885,3890],{},[2062,3836,3837,3840],{},[2043,3838,3839],{},"data",": the result of the asynchronous function that is passed in.",[2062,3842,3843,3846,3847,3850,3851,3854],{},[2043,3844,3845],{},"refresh","/",[2043,3848,3849],{},"execute",": a function that can be used to refresh the data returned by the ",[2043,3852,3853],{},"handler"," function.",[2062,3856,3857,3860,3861,3863,3864,3867,3868,3871,3872,3863,3875,3877,3878,3863,3881,3884],{},[2043,3858,3859],{},"clear",": a function that can be used to set ",[2043,3862,3839],{}," to ",[2043,3865,3866],{},"undefined"," (or the value of ",[2043,3869,3870],{},"options.default()"," if provided), set ",[2043,3873,3874],{},"error",[2043,3876,3866],{},", set ",[2043,3879,3880],{},"status",[2043,3882,3883],{},"idle",", and mark any currently pending requests as cancelled.",[2062,3886,3887,3889],{},[2043,3888,3874],{},": an error object if the data fetching failed.",[2062,3891,3892,3894,3895,2045,3898,2045,3901,2045,3904,2711],{},[2043,3893,3880],{},": a string indicating the status of the data request (",[2043,3896,3897],{},"\"idle\"",[2043,3899,3900],{},"\"pending\"",[2043,3902,3903],{},"\"success\"",[2043,3905,3906],{},"\"error\"",[2516,3908,3909],{},[2039,3910,3911,2045,3913,2051,3915,3917,3918,3921,3922],{},[2043,3912,3839],{},[2043,3914,3874],{},[2043,3916,3880],{}," are Vue refs accessible with ",[2043,3919,3920],{},".value"," in ",[2043,3923,3924],{},"\u003Cscript setup>",[2039,3926,3927,3928,3930],{},"By default, Nuxt waits until a ",[2043,3929,3845],{}," is finished before it can be executed again.",[2516,3932,3933],{},[2039,3934,3935,3936,3939,3940,3944,3945,3947,3948,3950,3951,2054],{},"If you have not fetched data on the server (for example, with ",[2043,3937,3938],{},"server: false","), then the data ",[3941,3942,3943],"em",{},"will not"," be fetched until hydration completes. This means even if you await ",[2043,3946,527],{}," on client-side, ",[2043,3949,3839],{}," will remain null within ",[2043,3952,3924],{},[2102,3954,3956],{"id":3955},"options","Options",[2039,3958,3959,2051,3963,3967],{},[2047,3960,3961],{"href":1476},[2043,3962,515],{},[2047,3964,3965],{"href":1485},[2043,3966,527],{}," return the same object type and accept a common set of options as their last argument. They can help you control the composables behavior, such as navigation blocking, caching or execution.",[2500,3969,3971],{"id":3970},"lazy","Lazy",[2039,3973,3974,3975,3977,3978,3980],{},"By default, data fetching composables will wait for the resolution of their asynchronous function before navigating to a new page by using Vue's Suspense. This feature can be ignored on client-side navigation with the ",[2043,3976,3970],{}," option. In that case, you will have to manually handle loading state using the ",[2043,3979,3880],{}," value.",[2162,3982,3984],{"className":2164,"code":3983,"filename":2166,"language":2167,"meta":2547,"style":2168},"\u003Cscript setup lang=\"ts\">\nconst { status, data: posts } = useFetch('/api/posts', {\n  lazy: true,\n})\n\u003C/script>\n\n\u003Ctemplate>\n  \u003C!-- you will need to handle a loading state -->\n  \u003Cdiv v-if=\"status === 'pending'\">\n    Loading ...\n  \u003C/div>\n  \u003Cdiv v-else>\n    \u003Cdiv v-for=\"post in posts\">\n      \u003C!-- do something -->\n    \u003C/div>\n  \u003C/div>\n\u003C/template>\n",[2043,3985,3986,4006,4043,4056,4062,4070,4074,4082,4087,4106,4111,4119,4129,4149,4154,4162,4170],{"__ignoreMap":2168},[2172,3987,3988,3990,3992,3994,3996,3998,4000,4002,4004],{"class":2174,"line":2175},[2172,3989,2179],{"class":2178},[2172,3991,2183],{"class":2182},[2172,3993,2187],{"class":2186},[2172,3995,2190],{"class":2186},[2172,3997,2193],{"class":2178},[2172,3999,2196],{"class":2178},[2172,4001,2200],{"class":2199},[2172,4003,2196],{"class":2178},[2172,4005,2205],{"class":2178},[2172,4007,4008,4010,4012,4015,4017,4019,4021,4024,4026,4028,4030,4032,4034,4037,4039,4041],{"class":2174,"line":2208},[2172,4009,2211],{"class":2186},[2172,4011,2214],{"class":2178},[2172,4013,4014],{"class":2217}," status",[2172,4016,2297],{"class":2178},[2172,4018,3037],{"class":2182},[2172,4020,2308],{"class":2178},[2172,4022,4023],{"class":2217}," posts ",[2172,4025,2221],{"class":2178},[2172,4027,2224],{"class":2178},[2172,4029,2232],{"class":2231},[2172,4031,2235],{"class":2217},[2172,4033,2238],{"class":2178},[2172,4035,4036],{"class":2199},"/api/posts",[2172,4038,2238],{"class":2178},[2172,4040,2297],{"class":2178},[2172,4042,2269],{"class":2178},[2172,4044,4045,4048,4050,4054],{"class":2174,"line":2249},[2172,4046,4047],{"class":2182},"  lazy",[2172,4049,2308],{"class":2178},[2172,4051,4053],{"class":4052},"sbKd-"," true",[2172,4055,2319],{"class":2178},[2172,4057,4058,4060],{"class":2174,"line":2255},[2172,4059,2221],{"class":2178},[2172,4061,2246],{"class":2217},[2172,4063,4064,4066,4068],{"class":2174,"line":2272},[2172,4065,2362],{"class":2178},[2172,4067,2183],{"class":2182},[2172,4069,2205],{"class":2178},[2172,4071,4072],{"class":2174,"line":2302},[2172,4073,2252],{"emptyLinePlaceholder":1196},[2172,4075,4076,4078,4080],{"class":2174,"line":2322},[2172,4077,2179],{"class":2178},[2172,4079,2379],{"class":2182},[2172,4081,2205],{"class":2178},[2172,4083,4084],{"class":2174,"line":2332},[2172,4085,4086],{"class":2335},"  \u003C!-- you will need to handle a loading state -->\n",[2172,4088,4089,4091,4093,4095,4097,4099,4102,4104],{"class":2174,"line":2339},[2172,4090,2387],{"class":2178},[2172,4092,2390],{"class":2182},[2172,4094,2393],{"class":2186},[2172,4096,2193],{"class":2178},[2172,4098,2196],{"class":2178},[2172,4100,4101],{"class":2199},"status === 'pending'",[2172,4103,2196],{"class":2178},[2172,4105,2205],{"class":2178},[2172,4107,4108],{"class":2174,"line":2345},[2172,4109,4110],{"class":2217},"    Loading ...\n",[2172,4112,4113,4115,4117],{"class":2174,"line":2353},[2172,4114,2416],{"class":2178},[2172,4116,2390],{"class":2182},[2172,4118,2205],{"class":2178},[2172,4120,4121,4123,4125,4127],{"class":2174,"line":2359},[2172,4122,2387],{"class":2178},[2172,4124,2390],{"class":2182},[2172,4126,2430],{"class":2186},[2172,4128,2205],{"class":2178},[2172,4130,4131,4133,4135,4138,4140,4142,4145,4147],{"class":2174,"line":2369},[2172,4132,2438],{"class":2178},[2172,4134,2390],{"class":2182},[2172,4136,4137],{"class":2186}," v-for",[2172,4139,2193],{"class":2178},[2172,4141,2196],{"class":2178},[2172,4143,4144],{"class":2199},"post in posts",[2172,4146,2196],{"class":2178},[2172,4148,2205],{"class":2178},[2172,4150,4151],{"class":2174,"line":2374},[2172,4152,4153],{"class":2335},"      \u003C!-- do something -->\n",[2172,4155,4156,4158,4160],{"class":2174,"line":2384},[2172,4157,2467],{"class":2178},[2172,4159,2390],{"class":2182},[2172,4161,2205],{"class":2178},[2172,4163,4164,4166,4168],{"class":2174,"line":2407},[2172,4165,2416],{"class":2178},[2172,4167,2390],{"class":2182},[2172,4169,2205],{"class":2178},[2172,4171,4172,4174,4176],{"class":2174,"line":2413},[2172,4173,2362],{"class":2178},[2172,4175,2379],{"class":2182},[2172,4177,2205],{"class":2178},[2039,4179,4180,4181,2051,4185,4187],{},"You can alternatively use ",[2047,4182,4183],{"href":1500},[2043,4184,547],{},[2043,4186,543],{}," as convenient methods to perform the same.",[2162,4189,4191],{"className":2164,"code":4190,"language":2167,"meta":2547,"style":2168},"\u003Cscript setup lang=\"ts\">\nconst { status, data: posts } = useLazyFetch('/api/posts')\n\u003C/script>\n",[2043,4192,4193,4213,4246],{"__ignoreMap":2168},[2172,4194,4195,4197,4199,4201,4203,4205,4207,4209,4211],{"class":2174,"line":2175},[2172,4196,2179],{"class":2178},[2172,4198,2183],{"class":2182},[2172,4200,2187],{"class":2186},[2172,4202,2190],{"class":2186},[2172,4204,2193],{"class":2178},[2172,4206,2196],{"class":2178},[2172,4208,2200],{"class":2199},[2172,4210,2196],{"class":2178},[2172,4212,2205],{"class":2178},[2172,4214,4215,4217,4219,4221,4223,4225,4227,4229,4231,4233,4236,4238,4240,4242,4244],{"class":2174,"line":2208},[2172,4216,2211],{"class":2186},[2172,4218,2214],{"class":2178},[2172,4220,4014],{"class":2217},[2172,4222,2297],{"class":2178},[2172,4224,3037],{"class":2182},[2172,4226,2308],{"class":2178},[2172,4228,4023],{"class":2217},[2172,4230,2221],{"class":2178},[2172,4232,2224],{"class":2178},[2172,4234,4235],{"class":2231}," useLazyFetch",[2172,4237,2235],{"class":2217},[2172,4239,2238],{"class":2178},[2172,4241,4036],{"class":2199},[2172,4243,2238],{"class":2178},[2172,4245,2246],{"class":2217},[2172,4247,4248,4250,4252],{"class":2174,"line":2249},[2172,4249,2362],{"class":2178},[2172,4251,2183],{"class":2182},[2172,4253,2205],{"class":2178},[2686,4255,4256],{"to":1500},[2039,4257,2690,4258,2054],{},[2043,4259,547],{},[2686,4261,4262],{"to":1497},[2039,4263,2690,4264,2054],{},[2043,4265,543],{},[3120,4267],{"title":4268,"video-id":4269,"platform":4270},"Watch a video from Vue School on blocking vs. non-blocking (lazy) requests","1022000555","vimeo",[2500,4272,4274],{"id":4273},"client-only-fetching","Client-only fetching",[2039,4276,4277,4278,4280,4281,4284],{},"By default, data fetching composables will perform their asynchronous function on both client and server environments. Set the ",[2043,4279,185],{}," option to ",[2043,4282,4283],{},"false"," to only perform the call on the client-side. On initial load, the data will not be fetched before hydration is complete so you have to handle a pending state, though on subsequent client-side navigation the data will be awaited before loading the page.",[2039,4286,4287,4288,4290],{},"Combined with the ",[2043,4289,3970],{}," option, this can be useful for data that is not needed on the first render (for example, non-SEO sensitive data).",[2162,4292,4294],{"className":2774,"code":4293,"language":2200,"meta":2547,"style":2168},"/* This call is performed before hydration */\nconst articles = await useFetch('/api/article')\n\n/* This call will only be performed on the client */\nconst { status, data: comments } = useFetch('/api/comments', {\n  lazy: true,\n  server: false,\n})\n",[2043,4295,4296,4301,4325,4329,4334,4370,4380,4392],{"__ignoreMap":2168},[2172,4297,4298],{"class":2174,"line":2175},[2172,4299,4300],{"class":2335},"/* This call is performed before hydration */\n",[2172,4302,4303,4305,4308,4310,4312,4314,4316,4318,4321,4323],{"class":2174,"line":2208},[2172,4304,2211],{"class":2186},[2172,4306,4307],{"class":2217}," articles ",[2172,4309,2193],{"class":2178},[2172,4311,2228],{"class":2227},[2172,4313,2232],{"class":2231},[2172,4315,2235],{"class":2217},[2172,4317,2238],{"class":2178},[2172,4319,4320],{"class":2199},"/api/article",[2172,4322,2238],{"class":2178},[2172,4324,2246],{"class":2217},[2172,4326,4327],{"class":2174,"line":2249},[2172,4328,2252],{"emptyLinePlaceholder":1196},[2172,4330,4331],{"class":2174,"line":2255},[2172,4332,4333],{"class":2335},"/* This call will only be performed on the client */\n",[2172,4335,4336,4338,4340,4342,4344,4346,4348,4351,4353,4355,4357,4359,4361,4364,4366,4368],{"class":2174,"line":2272},[2172,4337,2211],{"class":2186},[2172,4339,2214],{"class":2178},[2172,4341,4014],{"class":2217},[2172,4343,2297],{"class":2178},[2172,4345,3037],{"class":2182},[2172,4347,2308],{"class":2178},[2172,4349,4350],{"class":2217}," comments ",[2172,4352,2221],{"class":2178},[2172,4354,2224],{"class":2178},[2172,4356,2232],{"class":2231},[2172,4358,2235],{"class":2217},[2172,4360,2238],{"class":2178},[2172,4362,4363],{"class":2199},"/api/comments",[2172,4365,2238],{"class":2178},[2172,4367,2297],{"class":2178},[2172,4369,2269],{"class":2178},[2172,4371,4372,4374,4376,4378],{"class":2174,"line":2302},[2172,4373,4047],{"class":2182},[2172,4375,2308],{"class":2178},[2172,4377,4053],{"class":4052},[2172,4379,2319],{"class":2178},[2172,4381,4382,4385,4387,4390],{"class":2174,"line":2322},[2172,4383,4384],{"class":2182},"  server",[2172,4386,2308],{"class":2178},[2172,4388,4389],{"class":4052}," false",[2172,4391,2319],{"class":2178},[2172,4393,4394,4396],{"class":2174,"line":2332},[2172,4395,2221],{"class":2178},[2172,4397,2246],{"class":2217},[2039,4399,2121,4400,4402,4403,2054],{},[2043,4401,527],{}," composable is meant to be invoked in setup method or called directly at the top level of a function in lifecycle hooks, otherwise you should use ",[2047,4404,4406,4408],{"href":4405},"/docs/4.x/getting-started/data-fetching#fetch",[2043,4407,630],{}," method",[2500,4410,4412],{"id":4411},"minimize-payload-size","Minimize payload size",[2039,4414,2121,4415,4418],{},[2043,4416,4417],{},"pick"," option helps you to minimize the payload size stored in your HTML document by only selecting the fields that you want returned from the composables.",[2162,4420,4422],{"className":2164,"code":4421,"language":2167,"meta":2168,"style":2168},"\u003Cscript setup lang=\"ts\">\n/* only pick the fields used in your template */\nconst { data: mountain } = await useFetch('/api/mountains/everest', {\n  pick: ['title', 'description'],\n})\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Ch1>{{ mountain.title }}\u003C/h1>\n  \u003Cp>{{ mountain.description }}\u003C/p>\n\u003C/template>\n",[2043,4423,4424,4444,4449,4483,4512,4518,4526,4530,4538,4556,4573],{"__ignoreMap":2168},[2172,4425,4426,4428,4430,4432,4434,4436,4438,4440,4442],{"class":2174,"line":2175},[2172,4427,2179],{"class":2178},[2172,4429,2183],{"class":2182},[2172,4431,2187],{"class":2186},[2172,4433,2190],{"class":2186},[2172,4435,2193],{"class":2178},[2172,4437,2196],{"class":2178},[2172,4439,2200],{"class":2199},[2172,4441,2196],{"class":2178},[2172,4443,2205],{"class":2178},[2172,4445,4446],{"class":2174,"line":2208},[2172,4447,4448],{"class":2335},"/* only pick the fields used in your template */\n",[2172,4450,4451,4453,4455,4457,4459,4462,4464,4466,4468,4470,4472,4474,4477,4479,4481],{"class":2174,"line":2249},[2172,4452,2211],{"class":2186},[2172,4454,2214],{"class":2178},[2172,4456,3037],{"class":2182},[2172,4458,2308],{"class":2178},[2172,4460,4461],{"class":2217}," mountain ",[2172,4463,2221],{"class":2178},[2172,4465,2224],{"class":2178},[2172,4467,2228],{"class":2227},[2172,4469,2232],{"class":2231},[2172,4471,2235],{"class":2217},[2172,4473,2238],{"class":2178},[2172,4475,4476],{"class":2199},"/api/mountains/everest",[2172,4478,2238],{"class":2178},[2172,4480,2297],{"class":2178},[2172,4482,2269],{"class":2178},[2172,4484,4485,4488,4490,4492,4494,4497,4499,4501,4503,4506,4508,4510],{"class":2174,"line":2255},[2172,4486,4487],{"class":2182},"  pick",[2172,4489,2308],{"class":2178},[2172,4491,3584],{"class":2217},[2172,4493,2238],{"class":2178},[2172,4495,4496],{"class":2199},"title",[2172,4498,2238],{"class":2178},[2172,4500,2297],{"class":2178},[2172,4502,2311],{"class":2178},[2172,4504,4505],{"class":2199},"description",[2172,4507,2238],{"class":2178},[2172,4509,3595],{"class":2217},[2172,4511,2319],{"class":2178},[2172,4513,4514,4516],{"class":2174,"line":2272},[2172,4515,2221],{"class":2178},[2172,4517,2246],{"class":2217},[2172,4519,4520,4522,4524],{"class":2174,"line":2302},[2172,4521,2362],{"class":2178},[2172,4523,2183],{"class":2182},[2172,4525,2205],{"class":2178},[2172,4527,4528],{"class":2174,"line":2322},[2172,4529,2252],{"emptyLinePlaceholder":1196},[2172,4531,4532,4534,4536],{"class":2174,"line":2332},[2172,4533,2179],{"class":2178},[2172,4535,2379],{"class":2182},[2172,4537,2205],{"class":2178},[2172,4539,4540,4542,4545,4547,4550,4552,4554],{"class":2174,"line":2339},[2172,4541,2387],{"class":2178},[2172,4543,4544],{"class":2182},"h1",[2172,4546,3090],{"class":2178},[2172,4548,4549],{"class":2217},"{{ mountain.title }}",[2172,4551,2362],{"class":2178},[2172,4553,4544],{"class":2182},[2172,4555,2205],{"class":2178},[2172,4557,4558,4560,4562,4564,4567,4569,4571],{"class":2174,"line":2345},[2172,4559,2387],{"class":2178},[2172,4561,2039],{"class":2182},[2172,4563,3090],{"class":2178},[2172,4565,4566],{"class":2217},"{{ mountain.description }}",[2172,4568,2362],{"class":2178},[2172,4570,2039],{"class":2182},[2172,4572,2205],{"class":2178},[2172,4574,4575,4577,4579],{"class":2174,"line":2353},[2172,4576,2362],{"class":2178},[2172,4578,2379],{"class":2182},[2172,4580,2205],{"class":2178},[2039,4582,4583,4584,4587],{},"If you need more control or map over several objects, you can use the ",[2043,4585,4586],{},"transform"," function to alter the result of the query.",[2162,4589,4591],{"className":2774,"code":4590,"language":2200,"meta":2168,"style":2168},"const { data: mountains } = await useFetch('/api/mountains', {\n  transform: (mountains) => {\n    return mountains.map(mountain => ({ title: mountain.title, description: mountain.description }))\n  },\n})\n",[2043,4592,4593,4627,4645,4699,4704],{"__ignoreMap":2168},[2172,4594,4595,4597,4599,4601,4603,4606,4608,4610,4612,4614,4616,4618,4621,4623,4625],{"class":2174,"line":2175},[2172,4596,2211],{"class":2186},[2172,4598,2214],{"class":2178},[2172,4600,3037],{"class":2182},[2172,4602,2308],{"class":2178},[2172,4604,4605],{"class":2217}," mountains ",[2172,4607,2221],{"class":2178},[2172,4609,2224],{"class":2178},[2172,4611,2228],{"class":2227},[2172,4613,2232],{"class":2231},[2172,4615,2235],{"class":2217},[2172,4617,2238],{"class":2178},[2172,4619,4620],{"class":2199},"/api/mountains",[2172,4622,2238],{"class":2178},[2172,4624,2297],{"class":2178},[2172,4626,2269],{"class":2178},[2172,4628,4629,4632,4634,4636,4639,4641,4643],{"class":2174,"line":2208},[2172,4630,4631],{"class":2231},"  transform",[2172,4633,2308],{"class":2178},[2172,4635,3560],{"class":2178},[2172,4637,4638],{"class":2798},"mountains",[2172,4640,3636],{"class":2178},[2172,4642,2802],{"class":2186},[2172,4644,2269],{"class":2178},[2172,4646,4647,4650,4653,4655,4658,4660,4663,4665,4667,4670,4673,4675,4678,4680,4682,4684,4687,4689,4691,4693,4695,4697],{"class":2174,"line":2249},[2172,4648,4649],{"class":2227},"    return",[2172,4651,4652],{"class":2217}," mountains",[2172,4654,2054],{"class":2178},[2172,4656,4657],{"class":2231},"map",[2172,4659,2235],{"class":2182},[2172,4661,4662],{"class":2798},"mountain",[2172,4664,2802],{"class":2186},[2172,4666,3560],{"class":2182},[2172,4668,4669],{"class":2178},"{",[2172,4671,4672],{"class":2182}," title",[2172,4674,2308],{"class":2178},[2172,4676,4677],{"class":2217}," mountain",[2172,4679,2054],{"class":2178},[2172,4681,4496],{"class":2217},[2172,4683,2297],{"class":2178},[2172,4685,4686],{"class":2182}," description",[2172,4688,2308],{"class":2178},[2172,4690,4677],{"class":2217},[2172,4692,2054],{"class":2178},[2172,4694,4505],{"class":2217},[2172,4696,2919],{"class":2178},[2172,4698,3255],{"class":2182},[2172,4700,4701],{"class":2174,"line":2255},[2172,4702,4703],{"class":2178},"  },\n",[2172,4705,4706,4708],{"class":2174,"line":2272},[2172,4707,2221],{"class":2178},[2172,4709,2246],{"class":2217},[2516,4711,4712],{},[2039,4713,2095,4714,2051,4716,4718],{},[2043,4715,4417],{},[2043,4717,4586],{}," don't prevent the unwanted data from being fetched initially. But they will prevent unwanted data from being added to the payload transferred from server to client.",[3120,4720],{"title":4721,"video-id":4722,"platform":4270},"Watch a video from Vue School on minimizing payload size","1026410430",[2500,4724,4726],{"id":4725},"caching-and-refetching","Caching and refetching",[4728,4729,4731],"h4",{"id":4730},"keys","Keys",[2039,4733,4734,2051,4738,4742],{},[2047,4735,4736],{"href":1485},[2043,4737,527],{},[2047,4739,4740],{"href":1476},[2043,4741,515],{}," use keys to prevent refetching the same data.",[2059,4744,4745,4759],{},[2062,4746,4747,4751,4752,4755,4756,4758],{},[2047,4748,4749],{"href":1485},[2043,4750,527],{}," uses the provided URL as a key. Alternatively, a ",[2043,4753,4754],{},"key"," value can be provided in the ",[2043,4757,3955],{}," object passed as a last argument.",[2062,4760,4761,4765,4766,4768],{},[2047,4762,4763],{"href":1476},[2043,4764,515],{}," uses its first argument as a key if it is a string. If the first argument is the handler function that performs the query, then a key that is unique to the file name and line number of the instance of ",[2043,4767,515],{}," will be generated for you.",[2145,4770,4771],{},[2039,4772,4773,4774],{},"To get the cached data by key, you can use ",[2047,4775,4776],{"href":1509},[2043,4777,559],{},[3120,4779],{"title":4780,"video-id":4781,"platform":4270},"Watch a video from Vue School on caching data with the key option","1026410044",[4728,4783,4785],{"id":4784},"shared-state-and-option-consistency","Shared State and Option Consistency",[2039,4787,4788,4789,4791,4792,4794,4795,2045,4797,2051,4799,4801],{},"When multiple components use the same key with ",[2043,4790,515],{}," or ",[2043,4793,527],{},", they will share the same ",[2043,4796,3839],{},[2043,4798,3874],{},[2043,4800,3880],{}," refs. This ensures consistency across components but requires some options to be consistent.",[2039,4803,4804,4805,4808],{},"The following options ",[2158,4806,4807],{},"must be consistent"," across all calls with the same key:",[2059,4810,4811,4815,4821,4825,4830,4835],{},[2062,4812,4813,2117],{},[2043,4814,3853],{},[2062,4816,4817,4820],{},[2043,4818,4819],{},"deep"," option",[2062,4822,4823,2117],{},[2043,4824,4586],{},[2062,4826,4827,4829],{},[2043,4828,4417],{}," array",[2062,4831,4832,2117],{},[2043,4833,4834],{},"getCachedData",[2062,4836,4837,4840],{},[2043,4838,4839],{},"default"," value",[2162,4842,4844],{"className":2774,"code":4843,"language":2200,"meta":2168,"style":2168},"// ❌ This will trigger a development warning\nconst { data: users1 } = useAsyncData('users', (_nuxtApp, { signal }) => $fetch('/api/users', { signal }), { deep: false })\nconst { data: users2 } = useAsyncData('users', (_nuxtApp, { signal }) => $fetch('/api/users', { signal }), { deep: true })\n",[2043,4845,4846,4851,4931],{"__ignoreMap":2168},[2172,4847,4848],{"class":2174,"line":2175},[2172,4849,4850],{"class":2335},"// ❌ This will trigger a development warning\n",[2172,4852,4853,4855,4857,4859,4861,4864,4866,4868,4870,4872,4874,4876,4878,4880,4882,4884,4886,4888,4890,4892,4894,4896,4898,4900,4903,4905,4907,4909,4912,4914,4916,4918,4920,4923,4925,4927,4929],{"class":2174,"line":2208},[2172,4854,2211],{"class":2186},[2172,4856,2214],{"class":2178},[2172,4858,3037],{"class":2182},[2172,4860,2308],{"class":2178},[2172,4862,4863],{"class":2217}," users1 ",[2172,4865,2221],{"class":2178},[2172,4867,2224],{"class":2178},[2172,4869,3226],{"class":2231},[2172,4871,2235],{"class":2217},[2172,4873,2238],{"class":2178},[2172,4875,3233],{"class":2199},[2172,4877,2238],{"class":2178},[2172,4879,2297],{"class":2178},[2172,4881,3560],{"class":2178},[2172,4883,3563],{"class":2798},[2172,4885,2297],{"class":2178},[2172,4887,2214],{"class":2178},[2172,4889,3570],{"class":2798},[2172,4891,3573],{"class":2178},[2172,4893,2802],{"class":2186},[2172,4895,2285],{"class":2231},[2172,4897,2235],{"class":2217},[2172,4899,2238],{"class":2178},[2172,4901,4902],{"class":2199},"/api/users",[2172,4904,2238],{"class":2178},[2172,4906,2297],{"class":2178},[2172,4908,2214],{"class":2178},[2172,4910,4911],{"class":2217}," signal ",[2172,4913,2221],{"class":2178},[2172,4915,3636],{"class":2217},[2172,4917,2297],{"class":2178},[2172,4919,2214],{"class":2178},[2172,4921,4922],{"class":2182}," deep",[2172,4924,2308],{"class":2178},[2172,4926,4389],{"class":4052},[2172,4928,2919],{"class":2178},[2172,4930,2246],{"class":2217},[2172,4932,4933,4935,4937,4939,4941,4944,4946,4948,4950,4952,4954,4956,4958,4960,4962,4964,4966,4968,4970,4972,4974,4976,4978,4980,4982,4984,4986,4988,4990,4992,4994,4996,4998,5000,5002,5004,5006],{"class":2174,"line":2249},[2172,4934,2211],{"class":2186},[2172,4936,2214],{"class":2178},[2172,4938,3037],{"class":2182},[2172,4940,2308],{"class":2178},[2172,4942,4943],{"class":2217}," users2 ",[2172,4945,2221],{"class":2178},[2172,4947,2224],{"class":2178},[2172,4949,3226],{"class":2231},[2172,4951,2235],{"class":2217},[2172,4953,2238],{"class":2178},[2172,4955,3233],{"class":2199},[2172,4957,2238],{"class":2178},[2172,4959,2297],{"class":2178},[2172,4961,3560],{"class":2178},[2172,4963,3563],{"class":2798},[2172,4965,2297],{"class":2178},[2172,4967,2214],{"class":2178},[2172,4969,3570],{"class":2798},[2172,4971,3573],{"class":2178},[2172,4973,2802],{"class":2186},[2172,4975,2285],{"class":2231},[2172,4977,2235],{"class":2217},[2172,4979,2238],{"class":2178},[2172,4981,4902],{"class":2199},[2172,4983,2238],{"class":2178},[2172,4985,2297],{"class":2178},[2172,4987,2214],{"class":2178},[2172,4989,4911],{"class":2217},[2172,4991,2221],{"class":2178},[2172,4993,3636],{"class":2217},[2172,4995,2297],{"class":2178},[2172,4997,2214],{"class":2178},[2172,4999,4922],{"class":2182},[2172,5001,2308],{"class":2178},[2172,5003,4053],{"class":4052},[2172,5005,2919],{"class":2178},[2172,5007,2246],{"class":2217},[2039,5009,4804,5010,5013],{},[2158,5011,5012],{},"can safely differ"," without triggering warnings:",[2059,5015,5016,5020,5024,5029,5034],{},[2062,5017,5018],{},[2043,5019,185],{},[2062,5021,5022],{},[2043,5023,3970],{},[2062,5025,5026],{},[2043,5027,5028],{},"immediate",[2062,5030,5031],{},[2043,5032,5033],{},"dedupe",[2062,5035,5036],{},[2043,5037,5038],{},"watch",[2162,5040,5042],{"className":2774,"code":5041,"language":2200,"meta":2168,"style":2168},"// ✅ This is allowed\nconst { data: users1 } = useAsyncData('users', (_nuxtApp, { signal }) => $fetch('/api/users', { signal }), { immediate: true })\nconst { data: users2 } = useAsyncData('users', (_nuxtApp, { signal }) => $fetch('/api/users', { signal }), { immediate: false })\n",[2043,5043,5044,5049,5126],{"__ignoreMap":2168},[2172,5045,5046],{"class":2174,"line":2175},[2172,5047,5048],{"class":2335},"// ✅ This is allowed\n",[2172,5050,5051,5053,5055,5057,5059,5061,5063,5065,5067,5069,5071,5073,5075,5077,5079,5081,5083,5085,5087,5089,5091,5093,5095,5097,5099,5101,5103,5105,5107,5109,5111,5113,5115,5118,5120,5122,5124],{"class":2174,"line":2208},[2172,5052,2211],{"class":2186},[2172,5054,2214],{"class":2178},[2172,5056,3037],{"class":2182},[2172,5058,2308],{"class":2178},[2172,5060,4863],{"class":2217},[2172,5062,2221],{"class":2178},[2172,5064,2224],{"class":2178},[2172,5066,3226],{"class":2231},[2172,5068,2235],{"class":2217},[2172,5070,2238],{"class":2178},[2172,5072,3233],{"class":2199},[2172,5074,2238],{"class":2178},[2172,5076,2297],{"class":2178},[2172,5078,3560],{"class":2178},[2172,5080,3563],{"class":2798},[2172,5082,2297],{"class":2178},[2172,5084,2214],{"class":2178},[2172,5086,3570],{"class":2798},[2172,5088,3573],{"class":2178},[2172,5090,2802],{"class":2186},[2172,5092,2285],{"class":2231},[2172,5094,2235],{"class":2217},[2172,5096,2238],{"class":2178},[2172,5098,4902],{"class":2199},[2172,5100,2238],{"class":2178},[2172,5102,2297],{"class":2178},[2172,5104,2214],{"class":2178},[2172,5106,4911],{"class":2217},[2172,5108,2221],{"class":2178},[2172,5110,3636],{"class":2217},[2172,5112,2297],{"class":2178},[2172,5114,2214],{"class":2178},[2172,5116,5117],{"class":2182}," immediate",[2172,5119,2308],{"class":2178},[2172,5121,4053],{"class":4052},[2172,5123,2919],{"class":2178},[2172,5125,2246],{"class":2217},[2172,5127,5128,5130,5132,5134,5136,5138,5140,5142,5144,5146,5148,5150,5152,5154,5156,5158,5160,5162,5164,5166,5168,5170,5172,5174,5176,5178,5180,5182,5184,5186,5188,5190,5192,5194,5196,5198,5200],{"class":2174,"line":2249},[2172,5129,2211],{"class":2186},[2172,5131,2214],{"class":2178},[2172,5133,3037],{"class":2182},[2172,5135,2308],{"class":2178},[2172,5137,4943],{"class":2217},[2172,5139,2221],{"class":2178},[2172,5141,2224],{"class":2178},[2172,5143,3226],{"class":2231},[2172,5145,2235],{"class":2217},[2172,5147,2238],{"class":2178},[2172,5149,3233],{"class":2199},[2172,5151,2238],{"class":2178},[2172,5153,2297],{"class":2178},[2172,5155,3560],{"class":2178},[2172,5157,3563],{"class":2798},[2172,5159,2297],{"class":2178},[2172,5161,2214],{"class":2178},[2172,5163,3570],{"class":2798},[2172,5165,3573],{"class":2178},[2172,5167,2802],{"class":2186},[2172,5169,2285],{"class":2231},[2172,5171,2235],{"class":2217},[2172,5173,2238],{"class":2178},[2172,5175,4902],{"class":2199},[2172,5177,2238],{"class":2178},[2172,5179,2297],{"class":2178},[2172,5181,2214],{"class":2178},[2172,5183,4911],{"class":2217},[2172,5185,2221],{"class":2178},[2172,5187,3636],{"class":2217},[2172,5189,2297],{"class":2178},[2172,5191,2214],{"class":2178},[2172,5193,5117],{"class":2182},[2172,5195,2308],{"class":2178},[2172,5197,4389],{"class":4052},[2172,5199,2919],{"class":2178},[2172,5201,2246],{"class":2217},[2039,5203,5204],{},"If you need independent instances, use different keys:",[2162,5206,5208],{"className":2774,"code":5207,"language":2200,"meta":2168,"style":2168},"// These are completely independent instances\nconst { data: users1 } = useAsyncData('users-1', (_nuxtApp, { signal }) => $fetch('/api/users', { signal }))\nconst { data: users2 } = useAsyncData('users-2', (_nuxtApp, { signal }) => $fetch('/api/users', { signal }))\n",[2043,5209,5210,5215,5278],{"__ignoreMap":2168},[2172,5211,5212],{"class":2174,"line":2175},[2172,5213,5214],{"class":2335},"// These are completely independent instances\n",[2172,5216,5217,5219,5221,5223,5225,5227,5229,5231,5233,5235,5237,5240,5242,5244,5246,5248,5250,5252,5254,5256,5258,5260,5262,5264,5266,5268,5270,5272,5274,5276],{"class":2174,"line":2208},[2172,5218,2211],{"class":2186},[2172,5220,2214],{"class":2178},[2172,5222,3037],{"class":2182},[2172,5224,2308],{"class":2178},[2172,5226,4863],{"class":2217},[2172,5228,2221],{"class":2178},[2172,5230,2224],{"class":2178},[2172,5232,3226],{"class":2231},[2172,5234,2235],{"class":2217},[2172,5236,2238],{"class":2178},[2172,5238,5239],{"class":2199},"users-1",[2172,5241,2238],{"class":2178},[2172,5243,2297],{"class":2178},[2172,5245,3560],{"class":2178},[2172,5247,3563],{"class":2798},[2172,5249,2297],{"class":2178},[2172,5251,2214],{"class":2178},[2172,5253,3570],{"class":2798},[2172,5255,3573],{"class":2178},[2172,5257,2802],{"class":2186},[2172,5259,2285],{"class":2231},[2172,5261,2235],{"class":2217},[2172,5263,2238],{"class":2178},[2172,5265,4902],{"class":2199},[2172,5267,2238],{"class":2178},[2172,5269,2297],{"class":2178},[2172,5271,2214],{"class":2178},[2172,5273,4911],{"class":2217},[2172,5275,2221],{"class":2178},[2172,5277,3255],{"class":2217},[2172,5279,5280,5282,5284,5286,5288,5290,5292,5294,5296,5298,5300,5303,5305,5307,5309,5311,5313,5315,5317,5319,5321,5323,5325,5327,5329,5331,5333,5335,5337,5339],{"class":2174,"line":2249},[2172,5281,2211],{"class":2186},[2172,5283,2214],{"class":2178},[2172,5285,3037],{"class":2182},[2172,5287,2308],{"class":2178},[2172,5289,4943],{"class":2217},[2172,5291,2221],{"class":2178},[2172,5293,2224],{"class":2178},[2172,5295,3226],{"class":2231},[2172,5297,2235],{"class":2217},[2172,5299,2238],{"class":2178},[2172,5301,5302],{"class":2199},"users-2",[2172,5304,2238],{"class":2178},[2172,5306,2297],{"class":2178},[2172,5308,3560],{"class":2178},[2172,5310,3563],{"class":2798},[2172,5312,2297],{"class":2178},[2172,5314,2214],{"class":2178},[2172,5316,3570],{"class":2798},[2172,5318,3573],{"class":2178},[2172,5320,2802],{"class":2186},[2172,5322,2285],{"class":2231},[2172,5324,2235],{"class":2217},[2172,5326,2238],{"class":2178},[2172,5328,4902],{"class":2199},[2172,5330,2238],{"class":2178},[2172,5332,2297],{"class":2178},[2172,5334,2214],{"class":2178},[2172,5336,4911],{"class":2217},[2172,5338,2221],{"class":2178},[2172,5340,3255],{"class":2217},[4728,5342,5344],{"id":5343},"reactive-keys","Reactive Keys",[2039,5346,5347],{},"You can use computed refs, plain refs or getter functions as keys, allowing for dynamic data fetching that automatically updates when dependencies change:",[2162,5349,5351],{"className":2774,"code":5350,"language":2200,"meta":2168,"style":2168},"// Using a computed property as a key\nconst userId = ref('123')\nconst { data: user } = useAsyncData(\n  computed(() => `user-${userId.value}`),\n  () => fetchUser(userId.value),\n)\n\n// When userId changes, the data will be automatically refetched\n// and the old data will be cleaned up if no other components use it\nuserId.value = '456'\n",[2043,5352,5353,5358,5381,5403,5436,5456,5460,5464,5469,5474],{"__ignoreMap":2168},[2172,5354,5355],{"class":2174,"line":2175},[2172,5356,5357],{"class":2335},"// Using a computed property as a key\n",[2172,5359,5360,5362,5365,5367,5370,5372,5374,5377,5379],{"class":2174,"line":2208},[2172,5361,2211],{"class":2186},[2172,5363,5364],{"class":2217}," userId ",[2172,5366,2193],{"class":2178},[2172,5368,5369],{"class":2231}," ref",[2172,5371,2235],{"class":2217},[2172,5373,2238],{"class":2178},[2172,5375,5376],{"class":2199},"123",[2172,5378,2238],{"class":2178},[2172,5380,2246],{"class":2217},[2172,5382,5383,5385,5387,5389,5391,5394,5396,5398,5400],{"class":2174,"line":2249},[2172,5384,2211],{"class":2186},[2172,5386,2214],{"class":2178},[2172,5388,3037],{"class":2182},[2172,5390,2308],{"class":2178},[2172,5392,5393],{"class":2217}," user ",[2172,5395,2221],{"class":2178},[2172,5397,2224],{"class":2178},[2172,5399,3226],{"class":2231},[2172,5401,5402],{"class":2217},"(\n",[2172,5404,5405,5408,5410,5412,5414,5417,5420,5422,5425,5427,5430,5432,5434],{"class":2174,"line":2255},[2172,5406,5407],{"class":2231},"  computed",[2172,5409,2235],{"class":2217},[2172,5411,3289],{"class":2178},[2172,5413,2802],{"class":2186},[2172,5415,5416],{"class":2178}," `",[2172,5418,5419],{"class":2199},"user-",[2172,5421,3431],{"class":2178},[2172,5423,5424],{"class":2217},"userId",[2172,5426,2054],{"class":2178},[2172,5428,5429],{"class":2217},"value",[2172,5431,3437],{"class":2178},[2172,5433,3636],{"class":2217},[2172,5435,2319],{"class":2178},[2172,5437,5438,5441,5443,5446,5449,5451,5454],{"class":2174,"line":2272},[2172,5439,5440],{"class":2178},"  ()",[2172,5442,2802],{"class":2186},[2172,5444,5445],{"class":2231}," fetchUser",[2172,5447,5448],{"class":2217},"(userId",[2172,5450,2054],{"class":2178},[2172,5452,5453],{"class":2217},"value)",[2172,5455,2319],{"class":2178},[2172,5457,5458],{"class":2174,"line":2302},[2172,5459,2246],{"class":2217},[2172,5461,5462],{"class":2174,"line":2322},[2172,5463,2252],{"emptyLinePlaceholder":1196},[2172,5465,5466],{"class":2174,"line":2332},[2172,5467,5468],{"class":2335},"// When userId changes, the data will be automatically refetched\n",[2172,5470,5471],{"class":2174,"line":2339},[2172,5472,5473],{"class":2335},"// and the old data will be cleaned up if no other components use it\n",[2172,5475,5476,5478,5480,5483,5485,5487,5490],{"class":2174,"line":2345},[2172,5477,5424],{"class":2217},[2172,5479,2054],{"class":2178},[2172,5481,5482],{"class":2217},"value ",[2172,5484,2193],{"class":2178},[2172,5486,2311],{"class":2178},[2172,5488,5489],{"class":2199},"456",[2172,5491,5492],{"class":2178},"'\n",[4728,5494,5496],{"id":5495},"refresh-and-execute","Refresh and execute",[2039,5498,5499,5500,4791,5502,5504],{},"If you want to fetch or refresh data manually, use the ",[2043,5501,3849],{},[2043,5503,3845],{}," function provided by the composables.",[2162,5506,5508],{"className":2164,"code":5507,"language":2167,"meta":2547,"style":2168},"\u003Cscript setup lang=\"ts\">\nconst { data, error, execute, refresh } = await useFetch('/api/users')\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cdiv>\n    \u003Cp>{{ data }}\u003C/p>\n    \u003Cbutton @click=\"() => refresh()\">\n      Refresh data\n    \u003C/button>\n  \u003C/div>\n\u003C/template>\n",[2043,5509,5510,5530,5571,5579,5583,5591,5599,5616,5637,5642,5650,5658],{"__ignoreMap":2168},[2172,5511,5512,5514,5516,5518,5520,5522,5524,5526,5528],{"class":2174,"line":2175},[2172,5513,2179],{"class":2178},[2172,5515,2183],{"class":2182},[2172,5517,2187],{"class":2186},[2172,5519,2190],{"class":2186},[2172,5521,2193],{"class":2178},[2172,5523,2196],{"class":2178},[2172,5525,2200],{"class":2199},[2172,5527,2196],{"class":2178},[2172,5529,2205],{"class":2178},[2172,5531,5532,5534,5536,5538,5540,5543,5545,5548,5550,5553,5555,5557,5559,5561,5563,5565,5567,5569],{"class":2174,"line":2208},[2172,5533,2211],{"class":2186},[2172,5535,2214],{"class":2178},[2172,5537,3037],{"class":2217},[2172,5539,2297],{"class":2178},[2172,5541,5542],{"class":2217}," error",[2172,5544,2297],{"class":2178},[2172,5546,5547],{"class":2217}," execute",[2172,5549,2297],{"class":2178},[2172,5551,5552],{"class":2217}," refresh ",[2172,5554,2221],{"class":2178},[2172,5556,2224],{"class":2178},[2172,5558,2228],{"class":2227},[2172,5560,2232],{"class":2231},[2172,5562,2235],{"class":2217},[2172,5564,2238],{"class":2178},[2172,5566,4902],{"class":2199},[2172,5568,2238],{"class":2178},[2172,5570,2246],{"class":2217},[2172,5572,5573,5575,5577],{"class":2174,"line":2249},[2172,5574,2362],{"class":2178},[2172,5576,2183],{"class":2182},[2172,5578,2205],{"class":2178},[2172,5580,5581],{"class":2174,"line":2255},[2172,5582,2252],{"emptyLinePlaceholder":1196},[2172,5584,5585,5587,5589],{"class":2174,"line":2272},[2172,5586,2179],{"class":2178},[2172,5588,2379],{"class":2182},[2172,5590,2205],{"class":2178},[2172,5592,5593,5595,5597],{"class":2174,"line":2302},[2172,5594,2387],{"class":2178},[2172,5596,2390],{"class":2182},[2172,5598,2205],{"class":2178},[2172,5600,5601,5603,5605,5607,5610,5612,5614],{"class":2174,"line":2322},[2172,5602,2438],{"class":2178},[2172,5604,2039],{"class":2182},[2172,5606,3090],{"class":2178},[2172,5608,5609],{"class":2217},"{{ data }}",[2172,5611,2362],{"class":2178},[2172,5613,2039],{"class":2182},[2172,5615,2205],{"class":2178},[2172,5617,5618,5620,5623,5626,5628,5630,5633,5635],{"class":2174,"line":2332},[2172,5619,2438],{"class":2178},[2172,5621,5622],{"class":2182},"button",[2172,5624,5625],{"class":2186}," @click",[2172,5627,2193],{"class":2178},[2172,5629,2196],{"class":2178},[2172,5631,5632],{"class":2199},"() => refresh()",[2172,5634,2196],{"class":2178},[2172,5636,2205],{"class":2178},[2172,5638,5639],{"class":2174,"line":2339},[2172,5640,5641],{"class":2217},"      Refresh data\n",[2172,5643,5644,5646,5648],{"class":2174,"line":2345},[2172,5645,2467],{"class":2178},[2172,5647,5622],{"class":2182},[2172,5649,2205],{"class":2178},[2172,5651,5652,5654,5656],{"class":2174,"line":2353},[2172,5653,2416],{"class":2178},[2172,5655,2390],{"class":2182},[2172,5657,2205],{"class":2178},[2172,5659,5660,5662,5664],{"class":2174,"line":2359},[2172,5661,2362],{"class":2178},[2172,5663,2379],{"class":2182},[2172,5665,2205],{"class":2178},[2039,5667,2121,5668,5670,5671,5673,5674,2054],{},[2043,5669,3849],{}," function is an alias for ",[2043,5672,3845],{}," that works in exactly the same way but is more semantic for cases when the fetch is ",[2047,5675,5677],{"href":5676},"/docs/4.x/getting-started/data-fetching#not-immediate","not immediate",[2145,5679,5680],{},[2039,5681,5682,5683,2051,5687,2054],{},"To globally refetch or invalidate cached data, see ",[2047,5684,5685],{"href":1576},[2043,5686,650],{},[2047,5688,5689],{"href":1630},[2043,5690,722],{},[4728,5692,5693],{"id":3859},"Clear",[2039,5695,5696,5697,5699,5700,5504],{},"If you want to clear the data provided, for whatever reason, without needing to know the specific key to pass to ",[2043,5698,650],{},", you can use the ",[2043,5701,3859],{},[2162,5703,5705],{"className":2164,"code":5704,"language":2167,"meta":2547,"style":2168},"\u003Cscript setup lang=\"ts\">\nconst { data, clear } = await useFetch('/api/users')\n\nconst route = useRoute()\nwatch(() => route.path, (path) => {\n  if (path === '/') {\n    clear()\n  }\n})\n\u003C/script>\n",[2043,5706,5707,5727,5758,5762,5775,5805,5829,5836,5841,5847],{"__ignoreMap":2168},[2172,5708,5709,5711,5713,5715,5717,5719,5721,5723,5725],{"class":2174,"line":2175},[2172,5710,2179],{"class":2178},[2172,5712,2183],{"class":2182},[2172,5714,2187],{"class":2186},[2172,5716,2190],{"class":2186},[2172,5718,2193],{"class":2178},[2172,5720,2196],{"class":2178},[2172,5722,2200],{"class":2199},[2172,5724,2196],{"class":2178},[2172,5726,2205],{"class":2178},[2172,5728,5729,5731,5733,5735,5737,5740,5742,5744,5746,5748,5750,5752,5754,5756],{"class":2174,"line":2208},[2172,5730,2211],{"class":2186},[2172,5732,2214],{"class":2178},[2172,5734,3037],{"class":2217},[2172,5736,2297],{"class":2178},[2172,5738,5739],{"class":2217}," clear ",[2172,5741,2221],{"class":2178},[2172,5743,2224],{"class":2178},[2172,5745,2228],{"class":2227},[2172,5747,2232],{"class":2231},[2172,5749,2235],{"class":2217},[2172,5751,2238],{"class":2178},[2172,5753,4902],{"class":2199},[2172,5755,2238],{"class":2178},[2172,5757,2246],{"class":2217},[2172,5759,5760],{"class":2174,"line":2249},[2172,5761,2252],{"emptyLinePlaceholder":1196},[2172,5763,5764,5766,5769,5771,5773],{"class":2174,"line":2255},[2172,5765,2211],{"class":2186},[2172,5767,5768],{"class":2217}," route ",[2172,5770,2193],{"class":2178},[2172,5772,3389],{"class":2231},[2172,5774,3764],{"class":2217},[2172,5776,5777,5779,5781,5783,5785,5788,5790,5793,5795,5797,5799,5801,5803],{"class":2174,"line":2272},[2172,5778,5038],{"class":2231},[2172,5780,2235],{"class":2217},[2172,5782,3289],{"class":2178},[2172,5784,2802],{"class":2186},[2172,5786,5787],{"class":2217}," route",[2172,5789,2054],{"class":2178},[2172,5791,5792],{"class":2217},"path",[2172,5794,2297],{"class":2178},[2172,5796,3560],{"class":2178},[2172,5798,5792],{"class":2798},[2172,5800,3636],{"class":2178},[2172,5802,2802],{"class":2186},[2172,5804,2269],{"class":2178},[2172,5806,5807,5810,5812,5814,5817,5819,5821,5823,5826],{"class":2174,"line":2302},[2172,5808,5809],{"class":2227},"  if",[2172,5811,3560],{"class":2182},[2172,5813,5792],{"class":2217},[2172,5815,5816],{"class":2178}," ===",[2172,5818,2311],{"class":2178},[2172,5820,3846],{"class":2199},[2172,5822,2238],{"class":2178},[2172,5824,5825],{"class":2182},") ",[2172,5827,5828],{"class":2178},"{\n",[2172,5830,5831,5834],{"class":2174,"line":2322},[2172,5832,5833],{"class":2231},"    clear",[2172,5835,3764],{"class":2182},[2172,5837,5838],{"class":2174,"line":2332},[2172,5839,5840],{"class":2178},"  }\n",[2172,5842,5843,5845],{"class":2174,"line":2339},[2172,5844,2221],{"class":2178},[2172,5846,2246],{"class":2217},[2172,5848,5849,5851,5853],{"class":2174,"line":2345},[2172,5850,2362],{"class":2178},[2172,5852,2183],{"class":2182},[2172,5854,2205],{"class":2178},[4728,5856,5857],{"id":5038},"Watch",[2039,5859,5860,5861,5863,5864,5867],{},"To re-run your fetching function each time other reactive values in your application change, use the ",[2043,5862,5038],{}," option. You can use it for one or multiple ",[3941,5865,5866],{},"watchable"," elements.",[2162,5869,5871],{"className":2164,"code":5870,"language":2167,"meta":2547,"style":2168},"\u003Cscript setup lang=\"ts\">\nconst id = ref(1)\n\nconst { data, error, refresh } = await useFetch('/api/users', {\n  /* Changing the id will trigger a refetch */\n  watch: [id],\n})\n\u003C/script>\n",[2043,5872,5873,5893,5911,5915,5951,5956,5968,5974],{"__ignoreMap":2168},[2172,5874,5875,5877,5879,5881,5883,5885,5887,5889,5891],{"class":2174,"line":2175},[2172,5876,2179],{"class":2178},[2172,5878,2183],{"class":2182},[2172,5880,2187],{"class":2186},[2172,5882,2190],{"class":2186},[2172,5884,2193],{"class":2178},[2172,5886,2196],{"class":2178},[2172,5888,2200],{"class":2199},[2172,5890,2196],{"class":2178},[2172,5892,2205],{"class":2178},[2172,5894,5895,5897,5899,5901,5903,5905,5909],{"class":2174,"line":2208},[2172,5896,2211],{"class":2186},[2172,5898,3382],{"class":2217},[2172,5900,2193],{"class":2178},[2172,5902,5369],{"class":2231},[2172,5904,2235],{"class":2217},[2172,5906,5908],{"class":5907},"sYRBq","1",[2172,5910,2246],{"class":2217},[2172,5912,5913],{"class":2174,"line":2249},[2172,5914,2252],{"emptyLinePlaceholder":1196},[2172,5916,5917,5919,5921,5923,5925,5927,5929,5931,5933,5935,5937,5939,5941,5943,5945,5947,5949],{"class":2174,"line":2255},[2172,5918,2211],{"class":2186},[2172,5920,2214],{"class":2178},[2172,5922,3037],{"class":2217},[2172,5924,2297],{"class":2178},[2172,5926,5542],{"class":2217},[2172,5928,2297],{"class":2178},[2172,5930,5552],{"class":2217},[2172,5932,2221],{"class":2178},[2172,5934,2224],{"class":2178},[2172,5936,2228],{"class":2227},[2172,5938,2232],{"class":2231},[2172,5940,2235],{"class":2217},[2172,5942,2238],{"class":2178},[2172,5944,4902],{"class":2199},[2172,5946,2238],{"class":2178},[2172,5948,2297],{"class":2178},[2172,5950,2269],{"class":2178},[2172,5952,5953],{"class":2174,"line":2272},[2172,5954,5955],{"class":2335},"  /* Changing the id will trigger a refetch */\n",[2172,5957,5958,5961,5963,5966],{"class":2174,"line":2302},[2172,5959,5960],{"class":2182},"  watch",[2172,5962,2308],{"class":2178},[2172,5964,5965],{"class":2217}," [id]",[2172,5967,2319],{"class":2178},[2172,5969,5970,5972],{"class":2174,"line":2322},[2172,5971,2221],{"class":2178},[2172,5973,2246],{"class":2217},[2172,5975,5976,5978,5980],{"class":2174,"line":2332},[2172,5977,2362],{"class":2178},[2172,5979,2183],{"class":2182},[2172,5981,2205],{"class":2178},[2039,5983,5984,5985,5988],{},"Note that ",[2158,5986,5987],{},"watching a reactive value won't change the URL fetched",". For example, this will keep fetching the same initial ID of the user because the URL is constructed at the moment the function is invoked.",[2162,5990,5992],{"className":2164,"code":5991,"language":2167,"meta":2168,"style":2168},"\u003Cscript setup lang=\"ts\">\nconst id = ref(1)\n\nconst { data, error, refresh } = await useFetch(`/api/users/${id.value}`, {\n  watch: [id],\n})\n\u003C/script>\n",[2043,5993,5994,6014,6030,6034,6079,6089,6095],{"__ignoreMap":2168},[2172,5995,5996,5998,6000,6002,6004,6006,6008,6010,6012],{"class":2174,"line":2175},[2172,5997,2179],{"class":2178},[2172,5999,2183],{"class":2182},[2172,6001,2187],{"class":2186},[2172,6003,2190],{"class":2186},[2172,6005,2193],{"class":2178},[2172,6007,2196],{"class":2178},[2172,6009,2200],{"class":2199},[2172,6011,2196],{"class":2178},[2172,6013,2205],{"class":2178},[2172,6015,6016,6018,6020,6022,6024,6026,6028],{"class":2174,"line":2208},[2172,6017,2211],{"class":2186},[2172,6019,3382],{"class":2217},[2172,6021,2193],{"class":2178},[2172,6023,5369],{"class":2231},[2172,6025,2235],{"class":2217},[2172,6027,5908],{"class":5907},[2172,6029,2246],{"class":2217},[2172,6031,6032],{"class":2174,"line":2249},[2172,6033,2252],{"emptyLinePlaceholder":1196},[2172,6035,6036,6038,6040,6042,6044,6046,6048,6050,6052,6054,6056,6058,6060,6062,6065,6067,6069,6071,6073,6075,6077],{"class":2174,"line":2255},[2172,6037,2211],{"class":2186},[2172,6039,2214],{"class":2178},[2172,6041,3037],{"class":2217},[2172,6043,2297],{"class":2178},[2172,6045,5542],{"class":2217},[2172,6047,2297],{"class":2178},[2172,6049,5552],{"class":2217},[2172,6051,2221],{"class":2178},[2172,6053,2224],{"class":2178},[2172,6055,2228],{"class":2227},[2172,6057,2232],{"class":2231},[2172,6059,2235],{"class":2217},[2172,6061,3425],{"class":2178},[2172,6063,6064],{"class":2199},"/api/users/",[2172,6066,3431],{"class":2178},[2172,6068,3434],{"class":2217},[2172,6070,2054],{"class":2178},[2172,6072,5429],{"class":2217},[2172,6074,3437],{"class":2178},[2172,6076,2297],{"class":2178},[2172,6078,2269],{"class":2178},[2172,6080,6081,6083,6085,6087],{"class":2174,"line":2272},[2172,6082,5960],{"class":2182},[2172,6084,2308],{"class":2178},[2172,6086,5965],{"class":2217},[2172,6088,2319],{"class":2178},[2172,6090,6091,6093],{"class":2174,"line":2302},[2172,6092,2221],{"class":2178},[2172,6094,2246],{"class":2217},[2172,6096,6097,6099,6101],{"class":2174,"line":2322},[2172,6098,2362],{"class":2178},[2172,6100,2183],{"class":2182},[2172,6102,2205],{"class":2178},[2039,6104,6105,6106,6110],{},"If you need to change the URL based on a reactive value, you may want to use a ",[2047,6107,6109],{"href":6108},"/docs/4.x/getting-started/data-fetching#computed-url","computed URL"," instead.",[2039,6112,6113,6114,2054],{},"When reactive fetch options are provided, they'll be automatically watched and trigger refetches. In some cases, it can be useful to opt-out of this behavior by specifying ",[2043,6115,6116],{},"watch: false",[2162,6118,6120],{"className":2774,"code":6119,"language":2200,"meta":2168,"style":2168},"const id = ref(1)\n\n// Won't automatically refetch when id changes\nconst { data, execute } = await useFetch('/api/users', {\n  query: { id }, // id is watched by default\n  watch: false, // disables automatic watching of id\n})\n\n// doesn't trigger refetch\nid.value = 2\n",[2043,6121,6122,6138,6142,6147,6180,6197,6210,6216,6220,6225],{"__ignoreMap":2168},[2172,6123,6124,6126,6128,6130,6132,6134,6136],{"class":2174,"line":2175},[2172,6125,2211],{"class":2186},[2172,6127,3382],{"class":2217},[2172,6129,2193],{"class":2178},[2172,6131,5369],{"class":2231},[2172,6133,2235],{"class":2217},[2172,6135,5908],{"class":5907},[2172,6137,2246],{"class":2217},[2172,6139,6140],{"class":2174,"line":2208},[2172,6141,2252],{"emptyLinePlaceholder":1196},[2172,6143,6144],{"class":2174,"line":2249},[2172,6145,6146],{"class":2335},"// Won't automatically refetch when id changes\n",[2172,6148,6149,6151,6153,6155,6157,6160,6162,6164,6166,6168,6170,6172,6174,6176,6178],{"class":2174,"line":2255},[2172,6150,2211],{"class":2186},[2172,6152,2214],{"class":2178},[2172,6154,3037],{"class":2217},[2172,6156,2297],{"class":2178},[2172,6158,6159],{"class":2217}," execute ",[2172,6161,2221],{"class":2178},[2172,6163,2224],{"class":2178},[2172,6165,2228],{"class":2227},[2172,6167,2232],{"class":2231},[2172,6169,2235],{"class":2217},[2172,6171,2238],{"class":2178},[2172,6173,4902],{"class":2199},[2172,6175,2238],{"class":2178},[2172,6177,2297],{"class":2178},[2172,6179,2269],{"class":2178},[2172,6181,6182,6185,6187,6189,6191,6194],{"class":2174,"line":2272},[2172,6183,6184],{"class":2182},"  query",[2172,6186,2308],{"class":2178},[2172,6188,2214],{"class":2178},[2172,6190,3382],{"class":2217},[2172,6192,6193],{"class":2178},"},",[2172,6195,6196],{"class":2335}," // id is watched by default\n",[2172,6198,6199,6201,6203,6205,6207],{"class":2174,"line":2302},[2172,6200,5960],{"class":2182},[2172,6202,2308],{"class":2178},[2172,6204,4389],{"class":4052},[2172,6206,2297],{"class":2178},[2172,6208,6209],{"class":2335}," // disables automatic watching of id\n",[2172,6211,6212,6214],{"class":2174,"line":2322},[2172,6213,2221],{"class":2178},[2172,6215,2246],{"class":2217},[2172,6217,6218],{"class":2174,"line":2332},[2172,6219,2252],{"emptyLinePlaceholder":1196},[2172,6221,6222],{"class":2174,"line":2339},[2172,6223,6224],{"class":2335},"// doesn't trigger refetch\n",[2172,6226,6227,6229,6231,6233,6235],{"class":2174,"line":2345},[2172,6228,3434],{"class":2217},[2172,6230,2054],{"class":2178},[2172,6232,5482],{"class":2217},[2172,6234,2193],{"class":2178},[2172,6236,6237],{"class":5907}," 2\n",[4728,6239,6241],{"id":6240},"computed-url","Computed URL",[2039,6243,6244],{},"Sometimes you may need to compute a URL from reactive values, and refresh the data each time these change. Instead of juggling your way around, you can attach each param as a reactive value. Nuxt will automatically use the reactive value and re-fetch each time it changes.",[2162,6246,6248],{"className":2164,"code":6247,"language":2167,"meta":2168,"style":2168},"\u003Cscript setup lang=\"ts\">\nconst id = ref(null)\n\nconst { data, status } = useLazyFetch('/api/user', {\n  query: {\n    user_id: id,\n  },\n})\n\u003C/script>\n",[2043,6249,6250,6270,6287,6291,6322,6330,6341,6345,6351],{"__ignoreMap":2168},[2172,6251,6252,6254,6256,6258,6260,6262,6264,6266,6268],{"class":2174,"line":2175},[2172,6253,2179],{"class":2178},[2172,6255,2183],{"class":2182},[2172,6257,2187],{"class":2186},[2172,6259,2190],{"class":2186},[2172,6261,2193],{"class":2178},[2172,6263,2196],{"class":2178},[2172,6265,2200],{"class":2199},[2172,6267,2196],{"class":2178},[2172,6269,2205],{"class":2178},[2172,6271,6272,6274,6276,6278,6280,6282,6285],{"class":2174,"line":2208},[2172,6273,2211],{"class":2186},[2172,6275,3382],{"class":2217},[2172,6277,2193],{"class":2178},[2172,6279,5369],{"class":2231},[2172,6281,2235],{"class":2217},[2172,6283,6284],{"class":2178},"null",[2172,6286,2246],{"class":2217},[2172,6288,6289],{"class":2174,"line":2249},[2172,6290,2252],{"emptyLinePlaceholder":1196},[2172,6292,6293,6295,6297,6299,6301,6303,6305,6307,6309,6311,6313,6316,6318,6320],{"class":2174,"line":2255},[2172,6294,2211],{"class":2186},[2172,6296,2214],{"class":2178},[2172,6298,3037],{"class":2217},[2172,6300,2297],{"class":2178},[2172,6302,3535],{"class":2217},[2172,6304,2221],{"class":2178},[2172,6306,2224],{"class":2178},[2172,6308,4235],{"class":2231},[2172,6310,2235],{"class":2217},[2172,6312,2238],{"class":2178},[2172,6314,6315],{"class":2199},"/api/user",[2172,6317,2238],{"class":2178},[2172,6319,2297],{"class":2178},[2172,6321,2269],{"class":2178},[2172,6323,6324,6326,6328],{"class":2174,"line":2272},[2172,6325,6184],{"class":2182},[2172,6327,2308],{"class":2178},[2172,6329,2269],{"class":2178},[2172,6331,6332,6335,6337,6339],{"class":2174,"line":2302},[2172,6333,6334],{"class":2182},"    user_id",[2172,6336,2308],{"class":2178},[2172,6338,3466],{"class":2217},[2172,6340,2319],{"class":2178},[2172,6342,6343],{"class":2174,"line":2322},[2172,6344,4703],{"class":2178},[2172,6346,6347,6349],{"class":2174,"line":2332},[2172,6348,2221],{"class":2178},[2172,6350,2246],{"class":2217},[2172,6352,6353,6355,6357],{"class":2174,"line":2339},[2172,6354,2362],{"class":2178},[2172,6356,2183],{"class":2182},[2172,6358,2205],{"class":2178},[2039,6360,6361,6362,6367],{},"In the case of more complex URL construction, you may use a callback as a ",[2047,6363,6366],{"href":6364,"rel":6365},"https://vuejs.org/guide/essentials/computed",[2154],"computed getter"," that returns the URL string.",[2039,6369,6370,6371,6374],{},"Every time a dependency changes, the data will be fetched using the newly constructed URL. Combine this with ",[2047,6372,6373],{"href":5676},"not-immediate",", and you can wait until the reactive element changes before fetching.",[2162,6376,6378],{"className":2164,"code":6377,"language":2167,"meta":2168,"style":2168},"\u003Cscript setup lang=\"ts\">\nconst id = ref(null)\n\nconst { data, status } = useLazyFetch(() => `/api/users/${id.value}`, {\n  immediate: false,\n})\n\nconst pending = computed(() => status.value === 'pending')\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cdiv>\n    \u003C!-- disable the input while fetching -->\n    \u003Cinput\n      v-model=\"id\"\n      type=\"number\"\n      :disabled=\"pending\"\n    >\n\n    \u003Cdiv v-if=\"status === 'idle'\">\n      Type an user ID\n    \u003C/div>\n\n    \u003Cdiv v-else-if=\"pending\">\n      Loading ...\n    \u003C/div>\n\n    \u003Cdiv v-else>\n      {{ data }}\n    \u003C/div>\n  \u003C/div>\n\u003C/template>\n",[2043,6379,6380,6400,6416,6420,6462,6473,6479,6483,6519,6527,6531,6539,6547,6552,6559,6573,6587,6600,6605,6609,6628,6633,6641,6645,6665,6671,6680,6685,6696,6702,6711,6720],{"__ignoreMap":2168},[2172,6381,6382,6384,6386,6388,6390,6392,6394,6396,6398],{"class":2174,"line":2175},[2172,6383,2179],{"class":2178},[2172,6385,2183],{"class":2182},[2172,6387,2187],{"class":2186},[2172,6389,2190],{"class":2186},[2172,6391,2193],{"class":2178},[2172,6393,2196],{"class":2178},[2172,6395,2200],{"class":2199},[2172,6397,2196],{"class":2178},[2172,6399,2205],{"class":2178},[2172,6401,6402,6404,6406,6408,6410,6412,6414],{"class":2174,"line":2208},[2172,6403,2211],{"class":2186},[2172,6405,3382],{"class":2217},[2172,6407,2193],{"class":2178},[2172,6409,5369],{"class":2231},[2172,6411,2235],{"class":2217},[2172,6413,6284],{"class":2178},[2172,6415,2246],{"class":2217},[2172,6417,6418],{"class":2174,"line":2249},[2172,6419,2252],{"emptyLinePlaceholder":1196},[2172,6421,6422,6424,6426,6428,6430,6432,6434,6436,6438,6440,6442,6444,6446,6448,6450,6452,6454,6456,6458,6460],{"class":2174,"line":2255},[2172,6423,2211],{"class":2186},[2172,6425,2214],{"class":2178},[2172,6427,3037],{"class":2217},[2172,6429,2297],{"class":2178},[2172,6431,3535],{"class":2217},[2172,6433,2221],{"class":2178},[2172,6435,2224],{"class":2178},[2172,6437,4235],{"class":2231},[2172,6439,2235],{"class":2217},[2172,6441,3289],{"class":2178},[2172,6443,2802],{"class":2186},[2172,6445,5416],{"class":2178},[2172,6447,6064],{"class":2199},[2172,6449,3431],{"class":2178},[2172,6451,3434],{"class":2217},[2172,6453,2054],{"class":2178},[2172,6455,5429],{"class":2217},[2172,6457,3437],{"class":2178},[2172,6459,2297],{"class":2178},[2172,6461,2269],{"class":2178},[2172,6463,6464,6467,6469,6471],{"class":2174,"line":2272},[2172,6465,6466],{"class":2182},"  immediate",[2172,6468,2308],{"class":2178},[2172,6470,4389],{"class":4052},[2172,6472,2319],{"class":2178},[2172,6474,6475,6477],{"class":2174,"line":2302},[2172,6476,2221],{"class":2178},[2172,6478,2246],{"class":2217},[2172,6480,6481],{"class":2174,"line":2322},[2172,6482,2252],{"emptyLinePlaceholder":1196},[2172,6484,6485,6487,6490,6492,6495,6497,6499,6501,6503,6505,6507,6510,6512,6515,6517],{"class":2174,"line":2332},[2172,6486,2211],{"class":2186},[2172,6488,6489],{"class":2217}," pending ",[2172,6491,2193],{"class":2178},[2172,6493,6494],{"class":2231}," computed",[2172,6496,2235],{"class":2217},[2172,6498,3289],{"class":2178},[2172,6500,2802],{"class":2186},[2172,6502,4014],{"class":2217},[2172,6504,2054],{"class":2178},[2172,6506,5482],{"class":2217},[2172,6508,6509],{"class":2178},"===",[2172,6511,2311],{"class":2178},[2172,6513,6514],{"class":2199},"pending",[2172,6516,2238],{"class":2178},[2172,6518,2246],{"class":2217},[2172,6520,6521,6523,6525],{"class":2174,"line":2339},[2172,6522,2362],{"class":2178},[2172,6524,2183],{"class":2182},[2172,6526,2205],{"class":2178},[2172,6528,6529],{"class":2174,"line":2345},[2172,6530,2252],{"emptyLinePlaceholder":1196},[2172,6532,6533,6535,6537],{"class":2174,"line":2353},[2172,6534,2179],{"class":2178},[2172,6536,2379],{"class":2182},[2172,6538,2205],{"class":2178},[2172,6540,6541,6543,6545],{"class":2174,"line":2359},[2172,6542,2387],{"class":2178},[2172,6544,2390],{"class":2182},[2172,6546,2205],{"class":2178},[2172,6548,6549],{"class":2174,"line":2369},[2172,6550,6551],{"class":2335},"    \u003C!-- disable the input while fetching -->\n",[2172,6553,6554,6556],{"class":2174,"line":2374},[2172,6555,2438],{"class":2178},[2172,6557,6558],{"class":2182},"input\n",[2172,6560,6561,6564,6566,6568,6570],{"class":2174,"line":2384},[2172,6562,6563],{"class":2186},"      v-model",[2172,6565,2193],{"class":2178},[2172,6567,2196],{"class":2178},[2172,6569,3434],{"class":2199},[2172,6571,6572],{"class":2178},"\"\n",[2172,6574,6575,6578,6580,6582,6585],{"class":2174,"line":2407},[2172,6576,6577],{"class":2186},"      type",[2172,6579,2193],{"class":2178},[2172,6581,2196],{"class":2178},[2172,6583,6584],{"class":2199},"number",[2172,6586,6572],{"class":2178},[2172,6588,6589,6592,6594,6596,6598],{"class":2174,"line":2413},[2172,6590,6591],{"class":2186},"      :disabled",[2172,6593,2193],{"class":2178},[2172,6595,2196],{"class":2178},[2172,6597,6514],{"class":2199},[2172,6599,6572],{"class":2178},[2172,6601,6602],{"class":2174,"line":2423},[2172,6603,6604],{"class":2178},"    >\n",[2172,6606,6607],{"class":2174,"line":2435},[2172,6608,2252],{"emptyLinePlaceholder":1196},[2172,6610,6611,6613,6615,6617,6619,6621,6624,6626],{"class":2174,"line":2458},[2172,6612,2438],{"class":2178},[2172,6614,2390],{"class":2182},[2172,6616,2393],{"class":2186},[2172,6618,2193],{"class":2178},[2172,6620,2196],{"class":2178},[2172,6622,6623],{"class":2199},"status === 'idle'",[2172,6625,2196],{"class":2178},[2172,6627,2205],{"class":2178},[2172,6629,6630],{"class":2174,"line":2464},[2172,6631,6632],{"class":2217},"      Type an user ID\n",[2172,6634,6635,6637,6639],{"class":2174,"line":2474},[2172,6636,2467],{"class":2178},[2172,6638,2390],{"class":2182},[2172,6640,2205],{"class":2178},[2172,6642,6643],{"class":2174,"line":2483},[2172,6644,2252],{"emptyLinePlaceholder":1196},[2172,6646,6648,6650,6652,6655,6657,6659,6661,6663],{"class":2174,"line":6647},24,[2172,6649,2438],{"class":2178},[2172,6651,2390],{"class":2182},[2172,6653,6654],{"class":2186}," v-else-if",[2172,6656,2193],{"class":2178},[2172,6658,2196],{"class":2178},[2172,6660,6514],{"class":2199},[2172,6662,2196],{"class":2178},[2172,6664,2205],{"class":2178},[2172,6666,6668],{"class":2174,"line":6667},25,[2172,6669,6670],{"class":2217},"      Loading ...\n",[2172,6672,6674,6676,6678],{"class":2174,"line":6673},26,[2172,6675,2467],{"class":2178},[2172,6677,2390],{"class":2182},[2172,6679,2205],{"class":2178},[2172,6681,6683],{"class":2174,"line":6682},27,[2172,6684,2252],{"emptyLinePlaceholder":1196},[2172,6686,6688,6690,6692,6694],{"class":2174,"line":6687},28,[2172,6689,2438],{"class":2178},[2172,6691,2390],{"class":2182},[2172,6693,2430],{"class":2186},[2172,6695,2205],{"class":2178},[2172,6697,6699],{"class":2174,"line":6698},29,[2172,6700,6701],{"class":2217},"      {{ data }}\n",[2172,6703,6705,6707,6709],{"class":2174,"line":6704},30,[2172,6706,2467],{"class":2178},[2172,6708,2390],{"class":2182},[2172,6710,2205],{"class":2178},[2172,6712,6714,6716,6718],{"class":2174,"line":6713},31,[2172,6715,2416],{"class":2178},[2172,6717,2390],{"class":2182},[2172,6719,2205],{"class":2178},[2172,6721,6723,6725,6727],{"class":2174,"line":6722},32,[2172,6724,2362],{"class":2178},[2172,6726,2379],{"class":2182},[2172,6728,2205],{"class":2178},[2039,6730,6731,6732,2054],{},"If you need to force a refresh when other reactive values change, you can also ",[2047,6733,6735],{"href":6734},"/docs/4.x/getting-started/data-fetching#watch","watch other values",[2500,6737,6738],{"id":6373},"Not immediate",[2039,6740,2121,6741,6743,6744,6747],{},[2043,6742,527],{}," composable will start fetching data the moment is invoked. You may prevent this by setting ",[2043,6745,6746],{},"immediate: false",", for example, to wait for user interaction.",[2039,6749,6750,6751,6753,6754,6756],{},"With that, you will need both the ",[2043,6752,3880],{}," to handle the fetch lifecycle, and ",[2043,6755,3849],{}," to start the data fetch.",[2162,6758,6760],{"className":2164,"code":6759,"language":2167,"meta":2168,"style":2168},"\u003Cscript setup lang=\"ts\">\nconst { data, error, execute, status } = await useLazyFetch('/api/comments', {\n  immediate: false,\n})\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cdiv v-if=\"status === 'idle'\">\n    \u003Cbutton @click=\"execute\">\n      Get data\n    \u003C/button>\n  \u003C/div>\n\n  \u003Cdiv v-else-if=\"status === 'pending'\">\n    Loading comments...\n  \u003C/div>\n\n  \u003Cdiv v-else>\n    {{ data }}\n  \u003C/div>\n\u003C/template>\n",[2043,6761,6762,6782,6822,6832,6838,6846,6850,6858,6876,6894,6899,6907,6915,6919,6937,6942,6950,6954,6964,6969,6977],{"__ignoreMap":2168},[2172,6763,6764,6766,6768,6770,6772,6774,6776,6778,6780],{"class":2174,"line":2175},[2172,6765,2179],{"class":2178},[2172,6767,2183],{"class":2182},[2172,6769,2187],{"class":2186},[2172,6771,2190],{"class":2186},[2172,6773,2193],{"class":2178},[2172,6775,2196],{"class":2178},[2172,6777,2200],{"class":2199},[2172,6779,2196],{"class":2178},[2172,6781,2205],{"class":2178},[2172,6783,6784,6786,6788,6790,6792,6794,6796,6798,6800,6802,6804,6806,6808,6810,6812,6814,6816,6818,6820],{"class":2174,"line":2208},[2172,6785,2211],{"class":2186},[2172,6787,2214],{"class":2178},[2172,6789,3037],{"class":2217},[2172,6791,2297],{"class":2178},[2172,6793,5542],{"class":2217},[2172,6795,2297],{"class":2178},[2172,6797,5547],{"class":2217},[2172,6799,2297],{"class":2178},[2172,6801,3535],{"class":2217},[2172,6803,2221],{"class":2178},[2172,6805,2224],{"class":2178},[2172,6807,2228],{"class":2227},[2172,6809,4235],{"class":2231},[2172,6811,2235],{"class":2217},[2172,6813,2238],{"class":2178},[2172,6815,4363],{"class":2199},[2172,6817,2238],{"class":2178},[2172,6819,2297],{"class":2178},[2172,6821,2269],{"class":2178},[2172,6823,6824,6826,6828,6830],{"class":2174,"line":2249},[2172,6825,6466],{"class":2182},[2172,6827,2308],{"class":2178},[2172,6829,4389],{"class":4052},[2172,6831,2319],{"class":2178},[2172,6833,6834,6836],{"class":2174,"line":2255},[2172,6835,2221],{"class":2178},[2172,6837,2246],{"class":2217},[2172,6839,6840,6842,6844],{"class":2174,"line":2272},[2172,6841,2362],{"class":2178},[2172,6843,2183],{"class":2182},[2172,6845,2205],{"class":2178},[2172,6847,6848],{"class":2174,"line":2302},[2172,6849,2252],{"emptyLinePlaceholder":1196},[2172,6851,6852,6854,6856],{"class":2174,"line":2322},[2172,6853,2179],{"class":2178},[2172,6855,2379],{"class":2182},[2172,6857,2205],{"class":2178},[2172,6859,6860,6862,6864,6866,6868,6870,6872,6874],{"class":2174,"line":2332},[2172,6861,2387],{"class":2178},[2172,6863,2390],{"class":2182},[2172,6865,2393],{"class":2186},[2172,6867,2193],{"class":2178},[2172,6869,2196],{"class":2178},[2172,6871,6623],{"class":2199},[2172,6873,2196],{"class":2178},[2172,6875,2205],{"class":2178},[2172,6877,6878,6880,6882,6884,6886,6888,6890,6892],{"class":2174,"line":2339},[2172,6879,2438],{"class":2178},[2172,6881,5622],{"class":2182},[2172,6883,5625],{"class":2186},[2172,6885,2193],{"class":2178},[2172,6887,2196],{"class":2178},[2172,6889,3849],{"class":2199},[2172,6891,2196],{"class":2178},[2172,6893,2205],{"class":2178},[2172,6895,6896],{"class":2174,"line":2345},[2172,6897,6898],{"class":2217},"      Get data\n",[2172,6900,6901,6903,6905],{"class":2174,"line":2353},[2172,6902,2467],{"class":2178},[2172,6904,5622],{"class":2182},[2172,6906,2205],{"class":2178},[2172,6908,6909,6911,6913],{"class":2174,"line":2359},[2172,6910,2416],{"class":2178},[2172,6912,2390],{"class":2182},[2172,6914,2205],{"class":2178},[2172,6916,6917],{"class":2174,"line":2369},[2172,6918,2252],{"emptyLinePlaceholder":1196},[2172,6920,6921,6923,6925,6927,6929,6931,6933,6935],{"class":2174,"line":2374},[2172,6922,2387],{"class":2178},[2172,6924,2390],{"class":2182},[2172,6926,6654],{"class":2186},[2172,6928,2193],{"class":2178},[2172,6930,2196],{"class":2178},[2172,6932,4101],{"class":2199},[2172,6934,2196],{"class":2178},[2172,6936,2205],{"class":2178},[2172,6938,6939],{"class":2174,"line":2384},[2172,6940,6941],{"class":2217},"    Loading comments...\n",[2172,6943,6944,6946,6948],{"class":2174,"line":2407},[2172,6945,2416],{"class":2178},[2172,6947,2390],{"class":2182},[2172,6949,2205],{"class":2178},[2172,6951,6952],{"class":2174,"line":2413},[2172,6953,2252],{"emptyLinePlaceholder":1196},[2172,6955,6956,6958,6960,6962],{"class":2174,"line":2423},[2172,6957,2387],{"class":2178},[2172,6959,2390],{"class":2182},[2172,6961,2430],{"class":2186},[2172,6963,2205],{"class":2178},[2172,6965,6966],{"class":2174,"line":2435},[2172,6967,6968],{"class":2217},"    {{ data }}\n",[2172,6970,6971,6973,6975],{"class":2174,"line":2458},[2172,6972,2416],{"class":2178},[2172,6974,2390],{"class":2182},[2172,6976,2205],{"class":2178},[2172,6978,6979,6981,6983],{"class":2174,"line":2464},[2172,6980,2362],{"class":2178},[2172,6982,2379],{"class":2182},[2172,6984,2205],{"class":2178},[2039,6986,6987,6988,6990],{},"For finer control, the ",[2043,6989,3880],{}," variable can be:",[2059,6992,6993,6998,7003,7008],{},[2062,6994,6995,6997],{},[2043,6996,3883],{}," when the fetch hasn't started",[2062,6999,7000,7002],{},[2043,7001,6514],{}," when a fetch has started but not yet completed",[2062,7004,7005,7007],{},[2043,7006,3874],{}," when the fetch fails",[2062,7009,7010,7013],{},[2043,7011,7012],{},"success"," when the fetch is completed successfully",[2102,7015,7017],{"id":7016},"passing-headers-and-cookies","Passing Headers and Cookies",[2039,7019,7020,7021,7023,7024,7026],{},"When we call ",[2043,7022,630],{}," in the browser, user headers like ",[2043,7025,2822],{}," will be directly sent to the API.",[2039,7028,7029,7030,7032],{},"Normally, during server-side-rendering, due to security considerations, the ",[2043,7031,630],{}," wouldn't include the user's browser cookies, nor pass on cookies from the fetch response.",[2039,7034,7035,7036,7038,7039,7043,7044,2711],{},"However, when calling ",[2043,7037,527],{}," with a relative URL on the server, Nuxt will use ",[2047,7040,7041],{"href":1518},[2043,7042,571],{}," to proxy headers and cookies (with the exception of headers not meant to be forwarded, like ",[2043,7045,2710],{},[2500,7047,7049],{"id":7048},"pass-cookies-from-server-side-api-calls-on-ssr-response","Pass Cookies From Server-side API Calls on SSR Response",[2039,7051,7052],{},"If you want to pass on/proxy cookies in the other direction, from an internal request back to the client, you will need to handle this yourself.",[2162,7054,7057],{"className":2774,"code":7055,"filename":7056,"language":2200,"meta":2168,"style":2168},"import { appendResponseHeader } from 'h3'\nimport type { H3Event } from 'h3'\n\nexport const fetchWithCookie = async (event: H3Event, url: string) => {\n  /* Get the response from the server endpoint */\n  const res = await $fetch.raw(url)\n  /* Get the cookies from the response */\n  const cookies = res.headers.getSetCookie()\n  /* Attach each cookie to our incoming Request */\n  for (const cookie of cookies) {\n    appendResponseHeader(event, 'set-cookie', cookie)\n  }\n  /* Return the data of the response */\n  return res._data\n}\n","app/composables/fetch.ts",[2043,7058,7059,7080,7102,7106,7144,7149,7173,7178,7201,7206,7227,7251,7255,7260,7271],{"__ignoreMap":2168},[2172,7060,7061,7064,7066,7069,7071,7074,7076,7078],{"class":2174,"line":2175},[2172,7062,7063],{"class":2227},"import",[2172,7065,2214],{"class":2178},[2172,7067,7068],{"class":2217}," appendResponseHeader",[2172,7070,2919],{"class":2178},[2172,7072,7073],{"class":2227}," from",[2172,7075,2311],{"class":2178},[2172,7077,2500],{"class":2199},[2172,7079,5492],{"class":2178},[2172,7081,7082,7084,7087,7089,7092,7094,7096,7098,7100],{"class":2174,"line":2208},[2172,7083,7063],{"class":2227},[2172,7085,7086],{"class":2227}," type",[2172,7088,2214],{"class":2178},[2172,7090,7091],{"class":2217}," H3Event",[2172,7093,2919],{"class":2178},[2172,7095,7073],{"class":2227},[2172,7097,2311],{"class":2178},[2172,7099,2500],{"class":2199},[2172,7101,5492],{"class":2178},[2172,7103,7104],{"class":2174,"line":2249},[2172,7105,2252],{"emptyLinePlaceholder":1196},[2172,7107,7108,7110,7113,7116,7118,7120,7122,7124,7126,7128,7130,7133,7135,7138,7140,7142],{"class":2174,"line":2255},[2172,7109,2787],{"class":2227},[2172,7111,7112],{"class":2186}," const",[2172,7114,7115],{"class":2217}," fetchWithCookie ",[2172,7117,2193],{"class":2178},[2172,7119,3557],{"class":2186},[2172,7121,3560],{"class":2178},[2172,7123,2799],{"class":2798},[2172,7125,2308],{"class":2178},[2172,7127,7091],{"class":3602},[2172,7129,2297],{"class":2178},[2172,7131,7132],{"class":2798}," url",[2172,7134,2308],{"class":2178},[2172,7136,7137],{"class":3602}," string",[2172,7139,3636],{"class":2178},[2172,7141,2802],{"class":2186},[2172,7143,2269],{"class":2178},[2172,7145,7146],{"class":2174,"line":2272},[2172,7147,7148],{"class":2335},"  /* Get the response from the server endpoint */\n",[2172,7150,7151,7153,7155,7157,7159,7161,7163,7166,7168,7171],{"class":2174,"line":2302},[2172,7152,2275],{"class":2186},[2172,7154,2278],{"class":2217},[2172,7156,2224],{"class":2178},[2172,7158,2228],{"class":2227},[2172,7160,2285],{"class":2217},[2172,7162,2054],{"class":2178},[2172,7164,7165],{"class":2231},"raw",[2172,7167,2235],{"class":2182},[2172,7169,7170],{"class":2217},"url",[2172,7172,2246],{"class":2182},[2172,7174,7175],{"class":2174,"line":2322},[2172,7176,7177],{"class":2335},"  /* Get the cookies from the response */\n",[2172,7179,7180,7182,7185,7187,7189,7191,7194,7196,7199],{"class":2174,"line":2332},[2172,7181,2275],{"class":2186},[2172,7183,7184],{"class":2217}," cookies",[2172,7186,2224],{"class":2178},[2172,7188,2278],{"class":2217},[2172,7190,2054],{"class":2178},[2172,7192,7193],{"class":2217},"headers",[2172,7195,2054],{"class":2178},[2172,7197,7198],{"class":2231},"getSetCookie",[2172,7200,3764],{"class":2182},[2172,7202,7203],{"class":2174,"line":2339},[2172,7204,7205],{"class":2335},"  /* Attach each cookie to our incoming Request */\n",[2172,7207,7208,7211,7213,7215,7218,7221,7223,7225],{"class":2174,"line":2345},[2172,7209,7210],{"class":2227},"  for",[2172,7212,3560],{"class":2182},[2172,7214,2211],{"class":2186},[2172,7216,7217],{"class":2217}," cookie",[2172,7219,7220],{"class":2178}," of",[2172,7222,7184],{"class":2217},[2172,7224,5825],{"class":2182},[2172,7226,5828],{"class":2178},[2172,7228,7229,7232,7234,7236,7238,7240,7243,7245,7247,7249],{"class":2174,"line":2353},[2172,7230,7231],{"class":2231},"    appendResponseHeader",[2172,7233,2235],{"class":2182},[2172,7235,2799],{"class":2217},[2172,7237,2297],{"class":2178},[2172,7239,2311],{"class":2178},[2172,7241,7242],{"class":2199},"set-cookie",[2172,7244,2238],{"class":2178},[2172,7246,2297],{"class":2178},[2172,7248,7217],{"class":2217},[2172,7250,2246],{"class":2182},[2172,7252,7253],{"class":2174,"line":2359},[2172,7254,5840],{"class":2178},[2172,7256,7257],{"class":2174,"line":2369},[2172,7258,7259],{"class":2335},"  /* Return the data of the response */\n",[2172,7261,7262,7264,7266,7268],{"class":2174,"line":2374},[2172,7263,2896],{"class":2227},[2172,7265,2278],{"class":2217},[2172,7267,2054],{"class":2178},[2172,7269,7270],{"class":2217},"_data\n",[2172,7272,7273],{"class":2174,"line":2384},[2172,7274,2356],{"class":2178},[2162,7276,7278],{"className":2164,"code":7277,"language":2167,"meta":2168,"style":2168},"\u003Cscript setup lang=\"ts\">\n// This composable will automatically pass cookies to the client\nconst event = useRequestEvent()\n\nconst { data: result } = await useAsyncData(() => fetchWithCookie(event!, '/api/with-cookie'))\n\nonMounted(() => console.log(document.cookie))\n\u003C/script>\n",[2043,7279,7280,7300,7305,7319,7323,7368,7372,7399],{"__ignoreMap":2168},[2172,7281,7282,7284,7286,7288,7290,7292,7294,7296,7298],{"class":2174,"line":2175},[2172,7283,2179],{"class":2178},[2172,7285,2183],{"class":2182},[2172,7287,2187],{"class":2186},[2172,7289,2190],{"class":2186},[2172,7291,2193],{"class":2178},[2172,7293,2196],{"class":2178},[2172,7295,2200],{"class":2199},[2172,7297,2196],{"class":2178},[2172,7299,2205],{"class":2178},[2172,7301,7302],{"class":2174,"line":2208},[2172,7303,7304],{"class":2335},"// This composable will automatically pass cookies to the client\n",[2172,7306,7307,7309,7312,7314,7317],{"class":2174,"line":2249},[2172,7308,2211],{"class":2186},[2172,7310,7311],{"class":2217}," event ",[2172,7313,2193],{"class":2178},[2172,7315,7316],{"class":2231}," useRequestEvent",[2172,7318,3764],{"class":2217},[2172,7320,7321],{"class":2174,"line":2255},[2172,7322,2252],{"emptyLinePlaceholder":1196},[2172,7324,7325,7327,7329,7331,7333,7336,7338,7340,7342,7344,7346,7348,7350,7353,7356,7359,7361,7364,7366],{"class":2174,"line":2272},[2172,7326,2211],{"class":2186},[2172,7328,2214],{"class":2178},[2172,7330,3037],{"class":2182},[2172,7332,2308],{"class":2178},[2172,7334,7335],{"class":2217}," result ",[2172,7337,2221],{"class":2178},[2172,7339,2224],{"class":2178},[2172,7341,2228],{"class":2227},[2172,7343,3226],{"class":2231},[2172,7345,2235],{"class":2217},[2172,7347,3289],{"class":2178},[2172,7349,2802],{"class":2186},[2172,7351,7352],{"class":2231}," fetchWithCookie",[2172,7354,7355],{"class":2217},"(event",[2172,7357,7358],{"class":2178},"!,",[2172,7360,2311],{"class":2178},[2172,7362,7363],{"class":2199},"/api/with-cookie",[2172,7365,2238],{"class":2178},[2172,7367,3255],{"class":2217},[2172,7369,7370],{"class":2174,"line":2302},[2172,7371,2252],{"emptyLinePlaceholder":1196},[2172,7373,7374,7377,7379,7381,7383,7386,7388,7391,7394,7396],{"class":2174,"line":2322},[2172,7375,7376],{"class":2231},"onMounted",[2172,7378,2235],{"class":2217},[2172,7380,3289],{"class":2178},[2172,7382,2802],{"class":2186},[2172,7384,7385],{"class":2217}," console",[2172,7387,2054],{"class":2178},[2172,7389,7390],{"class":2231},"log",[2172,7392,7393],{"class":2217},"(document",[2172,7395,2054],{"class":2178},[2172,7397,7398],{"class":2217},"cookie))\n",[2172,7400,7401,7403,7405],{"class":2174,"line":2332},[2172,7402,2362],{"class":2178},[2172,7404,2183],{"class":2182},[2172,7406,2205],{"class":2178},[2102,7408,7410],{"id":7409},"options-api-support","Options API Support",[2039,7412,7413,7414,7417,7418,7420],{},"Nuxt provides a way to perform ",[2043,7415,7416],{},"asyncData"," fetching within the Options API. You must wrap your component definition within ",[2043,7419,666],{}," for this to work.",[2162,7422,7424],{"className":2164,"code":7423,"language":2167,"meta":2168,"style":2168},"\u003Cscript>\nexport default defineNuxtComponent({\n  /* Use the fetchKey option to provide a unique key */\n  fetchKey: 'hello',\n  async asyncData () {\n    return {\n      hello: await $fetch('/api/hello'),\n    }\n  },\n})\n\u003C/script>\n",[2043,7425,7426,7434,7447,7452,7468,7480,7486,7510,7515,7519,7525],{"__ignoreMap":2168},[2172,7427,7428,7430,7432],{"class":2174,"line":2175},[2172,7429,2179],{"class":2178},[2172,7431,2183],{"class":2182},[2172,7433,2205],{"class":2178},[2172,7435,7436,7438,7440,7443,7445],{"class":2174,"line":2208},[2172,7437,2787],{"class":2227},[2172,7439,2790],{"class":2227},[2172,7441,7442],{"class":2231}," defineNuxtComponent",[2172,7444,2235],{"class":2217},[2172,7446,5828],{"class":2178},[2172,7448,7449],{"class":2174,"line":2249},[2172,7450,7451],{"class":2335},"  /* Use the fetchKey option to provide a unique key */\n",[2172,7453,7454,7457,7459,7461,7464,7466],{"class":2174,"line":2255},[2172,7455,7456],{"class":2182},"  fetchKey",[2172,7458,2308],{"class":2178},[2172,7460,2311],{"class":2178},[2172,7462,7463],{"class":2199},"hello",[2172,7465,2238],{"class":2178},[2172,7467,2319],{"class":2178},[2172,7469,7470,7473,7476,7478],{"class":2174,"line":2272},[2172,7471,7472],{"class":2186},"  async",[2172,7474,7475],{"class":2182}," asyncData",[2172,7477,2266],{"class":2178},[2172,7479,2269],{"class":2178},[2172,7481,7482,7484],{"class":2174,"line":2302},[2172,7483,4649],{"class":2227},[2172,7485,2269],{"class":2178},[2172,7487,7488,7491,7493,7495,7497,7499,7501,7504,7506,7508],{"class":2174,"line":2322},[2172,7489,7490],{"class":2182},"      hello",[2172,7492,2308],{"class":2178},[2172,7494,2228],{"class":2227},[2172,7496,2285],{"class":2231},[2172,7498,2235],{"class":2182},[2172,7500,2238],{"class":2178},[2172,7502,7503],{"class":2199},"/api/hello",[2172,7505,2238],{"class":2178},[2172,7507,3636],{"class":2182},[2172,7509,2319],{"class":2178},[2172,7511,7512],{"class":2174,"line":2332},[2172,7513,7514],{"class":2178},"    }\n",[2172,7516,7517],{"class":2174,"line":2339},[2172,7518,4703],{"class":2178},[2172,7520,7521,7523],{"class":2174,"line":2345},[2172,7522,2221],{"class":2178},[2172,7524,2246],{"class":2217},[2172,7526,7527,7529,7531],{"class":2174,"line":2353},[2172,7528,2362],{"class":2178},[2172,7530,2183],{"class":2182},[2172,7532,2205],{"class":2178},[2516,7534,7535],{},[2039,7536,7537,7538,4791,7540,7543],{},"Using ",[2043,7539,3924],{},[2043,7541,7542],{},"\u003Cscript setup lang=\"ts\">"," are the recommended way of declaring Vue components in Nuxt.",[2686,7545],{"to":1588},[2102,7547,7549],{"id":7548},"serializing-data-from-server-to-client","Serializing Data From Server to Client",[2039,7551,7552,7553,2051,7555,7557,7558,7561,7562,7569,7570,2045,7573,2045,7576,2045,7579,2051,7582,7585],{},"When using ",[2043,7554,515],{},[2043,7556,543],{}," to transfer data fetched on server to the client (as well as anything else that utilizes ",[2047,7559,7560],{"href":2136},"the Nuxt payload","), the payload is serialized with ",[2047,7563,7566],{"href":7564,"rel":7565},"https://github.com/sveltejs/devalue",[2154],[2043,7567,7568],{},"devalue",". This allows us to transfer not just basic JSON but also to serialize and revive/deserialize more advanced kinds of data, such as regular expressions, Dates, Map and Set, ",[2043,7571,7572],{},"ref",[2043,7574,7575],{},"reactive",[2043,7577,7578],{},"shallowRef",[2043,7580,7581],{},"shallowReactive",[2043,7583,7584],{},"NuxtError"," - and more.",[2039,7587,7588,7589,7593],{},"It is also possible to define your own serializer/deserializer for types that are not supported by Nuxt. You can read more in the ",[2047,7590,7591],{"href":2136},[2043,7592,555],{}," docs.",[2516,7595,7596],{},[2039,7597,7598,7599,7602,7603,4791,7605,7607],{},"Note that this ",[3941,7600,7601],{},"does not apply"," to data passed from your server routes when fetched with ",[2043,7604,630],{},[2043,7606,527],{}," - see the next section for more information.",[2102,7609,7611],{"id":7610},"serializing-data-from-api-routes","Serializing Data From API Routes",[2039,7613,7614,7615,7617,7618,7621,7622,2051,7624,7628],{},"When fetching data from the ",[2043,7616,185],{}," directory, the response is serialized using ",[2043,7619,7620],{},"JSON.stringify",". However, since serialization is limited to only JavaScript primitive types, Nuxt does its best to convert the return type of ",[2043,7623,630],{},[2047,7625,7626],{"href":1485},[2043,7627,527],{}," to match the actual value.",[2686,7630,7634],{"to":7631,"icon":7632,"target":7633},"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#description","i-simple-icons-mdnwebdocs","_blank",[2039,7635,7636,7637,7639],{},"Learn more about ",[2043,7638,7620],{}," limitations.",[2500,7641,7643],{"id":7642},"example","Example",[2162,7645,7648],{"className":2774,"code":7646,"filename":7647,"language":2200,"meta":2168,"style":2168},"export default defineEventHandler(() => {\n  return new Date()\n})\n","server/api/foo.ts",[2043,7649,7650,7666,7678],{"__ignoreMap":2168},[2172,7651,7652,7654,7656,7658,7660,7662,7664],{"class":2174,"line":2175},[2172,7653,2787],{"class":2227},[2172,7655,2790],{"class":2227},[2172,7657,2793],{"class":2231},[2172,7659,2235],{"class":2217},[2172,7661,3289],{"class":2178},[2172,7663,2802],{"class":2186},[2172,7665,2269],{"class":2178},[2172,7667,7668,7670,7673,7676],{"class":2174,"line":2208},[2172,7669,2896],{"class":2227},[2172,7671,7672],{"class":2178}," new",[2172,7674,7675],{"class":2231}," Date",[2172,7677,3764],{"class":2182},[2172,7679,7680,7682],{"class":2174,"line":2249},[2172,7681,2221],{"class":2178},[2172,7683,2246],{"class":2217},[2162,7685,7687],{"className":2164,"code":7686,"filename":2166,"language":2167,"meta":2168,"style":2168},"\u003Cscript setup lang=\"ts\">\n// Type of `data` is inferred as string even though we returned a Date object\nconst { data } = await useFetch('/api/foo')\n\u003C/script>\n",[2043,7688,7689,7709,7714,7741],{"__ignoreMap":2168},[2172,7690,7691,7693,7695,7697,7699,7701,7703,7705,7707],{"class":2174,"line":2175},[2172,7692,2179],{"class":2178},[2172,7694,2183],{"class":2182},[2172,7696,2187],{"class":2186},[2172,7698,2190],{"class":2186},[2172,7700,2193],{"class":2178},[2172,7702,2196],{"class":2178},[2172,7704,2200],{"class":2199},[2172,7706,2196],{"class":2178},[2172,7708,2205],{"class":2178},[2172,7710,7711],{"class":2174,"line":2208},[2172,7712,7713],{"class":2335},"// Type of `data` is inferred as string even though we returned a Date object\n",[2172,7715,7716,7718,7720,7722,7724,7726,7728,7730,7732,7734,7737,7739],{"class":2174,"line":2249},[2172,7717,2211],{"class":2186},[2172,7719,2214],{"class":2178},[2172,7721,2218],{"class":2217},[2172,7723,2221],{"class":2178},[2172,7725,2224],{"class":2178},[2172,7727,2228],{"class":2227},[2172,7729,2232],{"class":2231},[2172,7731,2235],{"class":2217},[2172,7733,2238],{"class":2178},[2172,7735,7736],{"class":2199},"/api/foo",[2172,7738,2238],{"class":2178},[2172,7740,2246],{"class":2217},[2172,7742,7743,7745,7747],{"class":2174,"line":2255},[2172,7744,2362],{"class":2178},[2172,7746,2183],{"class":2182},[2172,7748,2205],{"class":2178},[2500,7750,7752],{"id":7751},"custom-serializer-function","Custom serializer function",[2039,7754,7755,7756,7759,7760,7762],{},"To customize the serialization behavior, you can define a ",[2043,7757,7758],{},"toJSON"," function on your returned object. If you define a ",[2043,7761,7758],{}," method, Nuxt will respect the return type of the function and will not try to convert the types.",[2162,7764,7767],{"className":2774,"code":7765,"filename":7766,"language":2200,"meta":2168,"style":2168},"export default defineEventHandler(() => {\n  const data = {\n    createdAt: new Date(),\n\n    toJSON () {\n      return {\n        createdAt: {\n          year: this.createdAt.getFullYear(),\n          month: this.createdAt.getMonth(),\n          day: this.createdAt.getDate(),\n        },\n      }\n    },\n  }\n  return data\n})\n","server/api/bar.ts",[2043,7768,7769,7785,7795,7810,7814,7823,7830,7839,7861,7881,7901,7906,7911,7915,7919,7926],{"__ignoreMap":2168},[2172,7770,7771,7773,7775,7777,7779,7781,7783],{"class":2174,"line":2175},[2172,7772,2787],{"class":2227},[2172,7774,2790],{"class":2227},[2172,7776,2793],{"class":2231},[2172,7778,2235],{"class":2217},[2172,7780,3289],{"class":2178},[2172,7782,2802],{"class":2186},[2172,7784,2269],{"class":2178},[2172,7786,7787,7789,7791,7793],{"class":2174,"line":2208},[2172,7788,2275],{"class":2186},[2172,7790,3037],{"class":2217},[2172,7792,2224],{"class":2178},[2172,7794,2269],{"class":2178},[2172,7796,7797,7800,7802,7804,7806,7808],{"class":2174,"line":2249},[2172,7798,7799],{"class":2182},"    createdAt",[2172,7801,2308],{"class":2178},[2172,7803,7672],{"class":2178},[2172,7805,7675],{"class":2231},[2172,7807,3289],{"class":2182},[2172,7809,2319],{"class":2178},[2172,7811,7812],{"class":2174,"line":2255},[2172,7813,2252],{"emptyLinePlaceholder":1196},[2172,7815,7816,7819,7821],{"class":2174,"line":2272},[2172,7817,7818],{"class":2182},"    toJSON ",[2172,7820,3289],{"class":2178},[2172,7822,2269],{"class":2178},[2172,7824,7825,7828],{"class":2174,"line":2302},[2172,7826,7827],{"class":2227},"      return",[2172,7829,2269],{"class":2178},[2172,7831,7832,7835,7837],{"class":2174,"line":2322},[2172,7833,7834],{"class":2182},"        createdAt",[2172,7836,2308],{"class":2178},[2172,7838,2269],{"class":2178},[2172,7840,7841,7844,7846,7849,7852,7854,7857,7859],{"class":2174,"line":2332},[2172,7842,7843],{"class":2182},"          year",[2172,7845,2308],{"class":2178},[2172,7847,7848],{"class":2178}," this.",[2172,7850,7851],{"class":2217},"createdAt",[2172,7853,2054],{"class":2178},[2172,7855,7856],{"class":2231},"getFullYear",[2172,7858,3289],{"class":2182},[2172,7860,2319],{"class":2178},[2172,7862,7863,7866,7868,7870,7872,7874,7877,7879],{"class":2174,"line":2339},[2172,7864,7865],{"class":2182},"          month",[2172,7867,2308],{"class":2178},[2172,7869,7848],{"class":2178},[2172,7871,7851],{"class":2217},[2172,7873,2054],{"class":2178},[2172,7875,7876],{"class":2231},"getMonth",[2172,7878,3289],{"class":2182},[2172,7880,2319],{"class":2178},[2172,7882,7883,7886,7888,7890,7892,7894,7897,7899],{"class":2174,"line":2345},[2172,7884,7885],{"class":2182},"          day",[2172,7887,2308],{"class":2178},[2172,7889,7848],{"class":2178},[2172,7891,7851],{"class":2217},[2172,7893,2054],{"class":2178},[2172,7895,7896],{"class":2231},"getDate",[2172,7898,3289],{"class":2182},[2172,7900,2319],{"class":2178},[2172,7902,7903],{"class":2174,"line":2353},[2172,7904,7905],{"class":2178},"        },\n",[2172,7907,7908],{"class":2174,"line":2359},[2172,7909,7910],{"class":2178},"      }\n",[2172,7912,7913],{"class":2174,"line":2369},[2172,7914,2342],{"class":2178},[2172,7916,7917],{"class":2174,"line":2374},[2172,7918,5840],{"class":2178},[2172,7920,7921,7923],{"class":2174,"line":2384},[2172,7922,2896],{"class":2227},[2172,7924,7925],{"class":2217}," data\n",[2172,7927,7928,7930],{"class":2174,"line":2407},[2172,7929,2221],{"class":2178},[2172,7931,2246],{"class":2217},[2162,7933,7935],{"className":2164,"code":7934,"filename":2166,"language":2167,"meta":2168,"style":2168},"\u003Cscript setup lang=\"ts\">\n// Type of `data` is inferred as\n// {\n//   createdAt: {\n//     year: number\n//     month: number\n//     day: number\n//   }\n// }\nconst { data } = await useFetch('/api/bar')\n\u003C/script>\n",[2043,7936,7937,7957,7962,7967,7972,7977,7982,7987,7992,7997,8024],{"__ignoreMap":2168},[2172,7938,7939,7941,7943,7945,7947,7949,7951,7953,7955],{"class":2174,"line":2175},[2172,7940,2179],{"class":2178},[2172,7942,2183],{"class":2182},[2172,7944,2187],{"class":2186},[2172,7946,2190],{"class":2186},[2172,7948,2193],{"class":2178},[2172,7950,2196],{"class":2178},[2172,7952,2200],{"class":2199},[2172,7954,2196],{"class":2178},[2172,7956,2205],{"class":2178},[2172,7958,7959],{"class":2174,"line":2208},[2172,7960,7961],{"class":2335},"// Type of `data` is inferred as\n",[2172,7963,7964],{"class":2174,"line":2249},[2172,7965,7966],{"class":2335},"// {\n",[2172,7968,7969],{"class":2174,"line":2255},[2172,7970,7971],{"class":2335},"//   createdAt: {\n",[2172,7973,7974],{"class":2174,"line":2272},[2172,7975,7976],{"class":2335},"//     year: number\n",[2172,7978,7979],{"class":2174,"line":2302},[2172,7980,7981],{"class":2335},"//     month: number\n",[2172,7983,7984],{"class":2174,"line":2322},[2172,7985,7986],{"class":2335},"//     day: number\n",[2172,7988,7989],{"class":2174,"line":2332},[2172,7990,7991],{"class":2335},"//   }\n",[2172,7993,7994],{"class":2174,"line":2339},[2172,7995,7996],{"class":2335},"// }\n",[2172,7998,7999,8001,8003,8005,8007,8009,8011,8013,8015,8017,8020,8022],{"class":2174,"line":2345},[2172,8000,2211],{"class":2186},[2172,8002,2214],{"class":2178},[2172,8004,2218],{"class":2217},[2172,8006,2221],{"class":2178},[2172,8008,2224],{"class":2178},[2172,8010,2228],{"class":2227},[2172,8012,2232],{"class":2231},[2172,8014,2235],{"class":2217},[2172,8016,2238],{"class":2178},[2172,8018,8019],{"class":2199},"/api/bar",[2172,8021,2238],{"class":2178},[2172,8023,2246],{"class":2217},[2172,8025,8026,8028,8030],{"class":2174,"line":2353},[2172,8027,2362],{"class":2178},[2172,8029,2183],{"class":2182},[2172,8031,2205],{"class":2178},[2500,8033,8035],{"id":8034},"using-an-alternative-serializer","Using an alternative serializer",[2039,8037,8038,8039,8041,8042,8044],{},"Nuxt does not currently support an alternative serializer to ",[2043,8040,7620],{},". However, you can return your payload as a normal string and utilize the ",[2043,8043,7758],{}," method to maintain type safety.",[2039,8046,8047,8048,8053],{},"In the example below, we use ",[2047,8049,8052],{"href":8050,"rel":8051},"https://github.com/flightcontrolhq/superjson",[2154],"superjson"," as our serializer.",[2162,8055,8058],{"className":2774,"code":8056,"filename":8057,"language":2200,"meta":2168,"style":2168},"import superjson from 'superjson'\n\nexport default defineEventHandler(() => {\n  const data = {\n    createdAt: new Date(),\n\n    // Workaround the type conversion\n    toJSON () {\n      return this\n    },\n  }\n\n  // Serialize the output to string, using superjson\n  return superjson.stringify(data) as unknown as typeof data\n})\n","server/api/superjson.ts",[2043,8059,8060,8076,8080,8096,8106,8120,8124,8129,8137,8144,8148,8152,8156,8161,8193],{"__ignoreMap":2168},[2172,8061,8062,8064,8067,8070,8072,8074],{"class":2174,"line":2175},[2172,8063,7063],{"class":2227},[2172,8065,8066],{"class":2217}," superjson ",[2172,8068,8069],{"class":2227},"from",[2172,8071,2311],{"class":2178},[2172,8073,8052],{"class":2199},[2172,8075,5492],{"class":2178},[2172,8077,8078],{"class":2174,"line":2208},[2172,8079,2252],{"emptyLinePlaceholder":1196},[2172,8081,8082,8084,8086,8088,8090,8092,8094],{"class":2174,"line":2249},[2172,8083,2787],{"class":2227},[2172,8085,2790],{"class":2227},[2172,8087,2793],{"class":2231},[2172,8089,2235],{"class":2217},[2172,8091,3289],{"class":2178},[2172,8093,2802],{"class":2186},[2172,8095,2269],{"class":2178},[2172,8097,8098,8100,8102,8104],{"class":2174,"line":2255},[2172,8099,2275],{"class":2186},[2172,8101,3037],{"class":2217},[2172,8103,2224],{"class":2178},[2172,8105,2269],{"class":2178},[2172,8107,8108,8110,8112,8114,8116,8118],{"class":2174,"line":2272},[2172,8109,7799],{"class":2182},[2172,8111,2308],{"class":2178},[2172,8113,7672],{"class":2178},[2172,8115,7675],{"class":2231},[2172,8117,3289],{"class":2182},[2172,8119,2319],{"class":2178},[2172,8121,8122],{"class":2174,"line":2302},[2172,8123,2252],{"emptyLinePlaceholder":1196},[2172,8125,8126],{"class":2174,"line":2322},[2172,8127,8128],{"class":2335},"    // Workaround the type conversion\n",[2172,8130,8131,8133,8135],{"class":2174,"line":2332},[2172,8132,7818],{"class":2182},[2172,8134,3289],{"class":2178},[2172,8136,2269],{"class":2178},[2172,8138,8139,8141],{"class":2174,"line":2339},[2172,8140,7827],{"class":2227},[2172,8142,8143],{"class":2178}," this\n",[2172,8145,8146],{"class":2174,"line":2345},[2172,8147,2342],{"class":2178},[2172,8149,8150],{"class":2174,"line":2353},[2172,8151,5840],{"class":2178},[2172,8153,8154],{"class":2174,"line":2359},[2172,8155,2252],{"emptyLinePlaceholder":1196},[2172,8157,8158],{"class":2174,"line":2369},[2172,8159,8160],{"class":2335},"  // Serialize the output to string, using superjson\n",[2172,8162,8163,8165,8168,8170,8173,8175,8177,8179,8182,8185,8188,8191],{"class":2174,"line":2374},[2172,8164,2896],{"class":2227},[2172,8166,8167],{"class":2217}," superjson",[2172,8169,2054],{"class":2178},[2172,8171,8172],{"class":2231},"stringify",[2172,8174,2235],{"class":2182},[2172,8176,3839],{"class":2217},[2172,8178,5825],{"class":2182},[2172,8180,8181],{"class":2227},"as",[2172,8183,8184],{"class":3602}," unknown",[2172,8186,8187],{"class":2227}," as",[2172,8189,8190],{"class":2178}," typeof",[2172,8192,7925],{"class":2217},[2172,8194,8195,8197],{"class":2174,"line":2384},[2172,8196,2221],{"class":2178},[2172,8198,2246],{"class":2217},[2162,8200,8202],{"className":2164,"code":8201,"filename":2166,"language":2167,"meta":2168,"style":2168},"\u003Cscript setup lang=\"ts\">\nimport superjson from 'superjson'\n\n// `date` is inferred as { createdAt: Date } and you can safely use the Date object methods\nconst { data } = await useFetch('/api/superjson', {\n  transform: (value) => {\n    return superjson.parse(value as unknown as string)\n  },\n})\n\u003C/script>\n",[2043,8203,8204,8224,8238,8242,8247,8276,8292,8317,8321,8327],{"__ignoreMap":2168},[2172,8205,8206,8208,8210,8212,8214,8216,8218,8220,8222],{"class":2174,"line":2175},[2172,8207,2179],{"class":2178},[2172,8209,2183],{"class":2182},[2172,8211,2187],{"class":2186},[2172,8213,2190],{"class":2186},[2172,8215,2193],{"class":2178},[2172,8217,2196],{"class":2178},[2172,8219,2200],{"class":2199},[2172,8221,2196],{"class":2178},[2172,8223,2205],{"class":2178},[2172,8225,8226,8228,8230,8232,8234,8236],{"class":2174,"line":2208},[2172,8227,7063],{"class":2227},[2172,8229,8066],{"class":2217},[2172,8231,8069],{"class":2227},[2172,8233,2311],{"class":2178},[2172,8235,8052],{"class":2199},[2172,8237,5492],{"class":2178},[2172,8239,8240],{"class":2174,"line":2249},[2172,8241,2252],{"emptyLinePlaceholder":1196},[2172,8243,8244],{"class":2174,"line":2255},[2172,8245,8246],{"class":2335},"// `date` is inferred as { createdAt: Date } and you can safely use the Date object methods\n",[2172,8248,8249,8251,8253,8255,8257,8259,8261,8263,8265,8267,8270,8272,8274],{"class":2174,"line":2272},[2172,8250,2211],{"class":2186},[2172,8252,2214],{"class":2178},[2172,8254,2218],{"class":2217},[2172,8256,2221],{"class":2178},[2172,8258,2224],{"class":2178},[2172,8260,2228],{"class":2227},[2172,8262,2232],{"class":2231},[2172,8264,2235],{"class":2217},[2172,8266,2238],{"class":2178},[2172,8268,8269],{"class":2199},"/api/superjson",[2172,8271,2238],{"class":2178},[2172,8273,2297],{"class":2178},[2172,8275,2269],{"class":2178},[2172,8277,8278,8280,8282,8284,8286,8288,8290],{"class":2174,"line":2302},[2172,8279,4631],{"class":2231},[2172,8281,2308],{"class":2178},[2172,8283,3560],{"class":2178},[2172,8285,5429],{"class":2798},[2172,8287,3636],{"class":2178},[2172,8289,2802],{"class":2186},[2172,8291,2269],{"class":2178},[2172,8293,8294,8296,8298,8300,8303,8305,8307,8309,8311,8313,8315],{"class":2174,"line":2322},[2172,8295,4649],{"class":2227},[2172,8297,8167],{"class":2217},[2172,8299,2054],{"class":2178},[2172,8301,8302],{"class":2231},"parse",[2172,8304,2235],{"class":2182},[2172,8306,5429],{"class":2217},[2172,8308,8187],{"class":2227},[2172,8310,8184],{"class":3602},[2172,8312,8187],{"class":2227},[2172,8314,7137],{"class":3602},[2172,8316,2246],{"class":2182},[2172,8318,8319],{"class":2174,"line":2332},[2172,8320,4703],{"class":2178},[2172,8322,8323,8325],{"class":2174,"line":2339},[2172,8324,2221],{"class":2178},[2172,8326,2246],{"class":2217},[2172,8328,8329,8331,8333],{"class":2174,"line":2345},[2172,8330,2362],{"class":2178},[2172,8332,2183],{"class":2182},[2172,8334,2205],{"class":2178},[2102,8336,357],{"id":8337},"recipes",[2500,8339,8341],{"id":8340},"consuming-sse-server-sent-events-via-post-request","Consuming SSE (Server-Sent Events) via POST request",[2145,8343,8344],{},[2039,8345,8346,8347,8354,8355,2054],{},"If you're consuming SSE via GET request, you can use ",[2047,8348,8351],{"href":8349,"rel":8350},"https://developer.mozilla.org/en-US/docs/Web/API/EventSource",[2154],[2043,8352,8353],{},"EventSource"," or VueUse composable ",[2047,8356,8359],{"href":8357,"rel":8358},"https://vueuse.org/core/useeventsource/",[2154],[2043,8360,8361],{},"useEventSource",[2039,8363,8364],{},"When consuming SSE via POST request, you need to handle the connection manually. Here's how you can do it:",[2162,8366,8368],{"className":2774,"code":8367,"language":2200,"meta":2168,"style":2168},"// Make a POST request to the SSE endpoint\nconst response = await $fetch\u003CReadableStream>('/chats/ask-ai', {\n  method: 'POST',\n  body: {\n    query: 'Hello AI, how are you?',\n  },\n  responseType: 'stream',\n})\n\n// Create a new ReadableStream from the response with TextDecoderStream to get the data as text\nconst reader = response.pipeThrough(new TextDecoderStream()).getReader()\n\n// Read the chunk of data as we get it\nwhile (true) {\n  const { value, done } = await reader.read()\n\n  if (done) { break }\n\n  console.log('Received:', value)\n}\n",[2043,8369,8370,8375,8408,8423,8432,8448,8452,8468,8474,8478,8483,8518,8522,8527,8541,8570,8574,8592,8596,8620],{"__ignoreMap":2168},[2172,8371,8372],{"class":2174,"line":2175},[2172,8373,8374],{"class":2335},"// Make a POST request to the SSE endpoint\n",[2172,8376,8377,8379,8382,8384,8386,8388,8390,8393,8395,8397,8399,8402,8404,8406],{"class":2174,"line":2208},[2172,8378,2211],{"class":2186},[2172,8380,8381],{"class":2217}," response ",[2172,8383,2193],{"class":2178},[2172,8385,2228],{"class":2227},[2172,8387,2285],{"class":2231},[2172,8389,2179],{"class":2178},[2172,8391,8392],{"class":3602},"ReadableStream",[2172,8394,3090],{"class":2178},[2172,8396,2235],{"class":2217},[2172,8398,2238],{"class":2178},[2172,8400,8401],{"class":2199},"/chats/ask-ai",[2172,8403,2238],{"class":2178},[2172,8405,2297],{"class":2178},[2172,8407,2269],{"class":2178},[2172,8409,8410,8413,8415,8417,8419,8421],{"class":2174,"line":2249},[2172,8411,8412],{"class":2182},"  method",[2172,8414,2308],{"class":2178},[2172,8416,2311],{"class":2178},[2172,8418,2314],{"class":2199},[2172,8420,2238],{"class":2178},[2172,8422,2319],{"class":2178},[2172,8424,8425,8428,8430],{"class":2174,"line":2255},[2172,8426,8427],{"class":2182},"  body",[2172,8429,2308],{"class":2178},[2172,8431,2269],{"class":2178},[2172,8433,8434,8437,8439,8441,8444,8446],{"class":2174,"line":2272},[2172,8435,8436],{"class":2182},"    query",[2172,8438,2308],{"class":2178},[2172,8440,2311],{"class":2178},[2172,8442,8443],{"class":2199},"Hello AI, how are you?",[2172,8445,2238],{"class":2178},[2172,8447,2319],{"class":2178},[2172,8449,8450],{"class":2174,"line":2302},[2172,8451,4703],{"class":2178},[2172,8453,8454,8457,8459,8461,8464,8466],{"class":2174,"line":2322},[2172,8455,8456],{"class":2182},"  responseType",[2172,8458,2308],{"class":2178},[2172,8460,2311],{"class":2178},[2172,8462,8463],{"class":2199},"stream",[2172,8465,2238],{"class":2178},[2172,8467,2319],{"class":2178},[2172,8469,8470,8472],{"class":2174,"line":2332},[2172,8471,2221],{"class":2178},[2172,8473,2246],{"class":2217},[2172,8475,8476],{"class":2174,"line":2339},[2172,8477,2252],{"emptyLinePlaceholder":1196},[2172,8479,8480],{"class":2174,"line":2345},[2172,8481,8482],{"class":2335},"// Create a new ReadableStream from the response with TextDecoderStream to get the data as text\n",[2172,8484,8485,8487,8490,8492,8495,8497,8500,8502,8505,8508,8511,8513,8516],{"class":2174,"line":2353},[2172,8486,2211],{"class":2186},[2172,8488,8489],{"class":2217}," reader ",[2172,8491,2193],{"class":2178},[2172,8493,8494],{"class":2217}," response",[2172,8496,2054],{"class":2178},[2172,8498,8499],{"class":2231},"pipeThrough",[2172,8501,2235],{"class":2217},[2172,8503,8504],{"class":2178},"new",[2172,8506,8507],{"class":2231}," TextDecoderStream",[2172,8509,8510],{"class":2217},"())",[2172,8512,2054],{"class":2178},[2172,8514,8515],{"class":2231},"getReader",[2172,8517,3764],{"class":2217},[2172,8519,8520],{"class":2174,"line":2359},[2172,8521,2252],{"emptyLinePlaceholder":1196},[2172,8523,8524],{"class":2174,"line":2369},[2172,8525,8526],{"class":2335},"// Read the chunk of data as we get it\n",[2172,8528,8529,8532,8534,8537,8539],{"class":2174,"line":2374},[2172,8530,8531],{"class":2227},"while",[2172,8533,3560],{"class":2217},[2172,8535,8536],{"class":4052},"true",[2172,8538,5825],{"class":2217},[2172,8540,5828],{"class":2178},[2172,8542,8543,8545,8547,8549,8551,8554,8556,8558,8560,8563,8565,8568],{"class":2174,"line":2384},[2172,8544,2275],{"class":2186},[2172,8546,2214],{"class":2178},[2172,8548,4840],{"class":2217},[2172,8550,2297],{"class":2178},[2172,8552,8553],{"class":2217}," done",[2172,8555,2919],{"class":2178},[2172,8557,2224],{"class":2178},[2172,8559,2228],{"class":2227},[2172,8561,8562],{"class":2217}," reader",[2172,8564,2054],{"class":2178},[2172,8566,8567],{"class":2231},"read",[2172,8569,3764],{"class":2182},[2172,8571,8572],{"class":2174,"line":2407},[2172,8573,2252],{"emptyLinePlaceholder":1196},[2172,8575,8576,8578,8580,8583,8585,8587,8590],{"class":2174,"line":2413},[2172,8577,5809],{"class":2227},[2172,8579,3560],{"class":2182},[2172,8581,8582],{"class":2217},"done",[2172,8584,5825],{"class":2182},[2172,8586,4669],{"class":2178},[2172,8588,8589],{"class":2227}," break",[2172,8591,3688],{"class":2178},[2172,8593,8594],{"class":2174,"line":2423},[2172,8595,2252],{"emptyLinePlaceholder":1196},[2172,8597,8598,8601,8603,8605,8607,8609,8612,8614,8616,8618],{"class":2174,"line":2435},[2172,8599,8600],{"class":2217},"  console",[2172,8602,2054],{"class":2178},[2172,8604,7390],{"class":2231},[2172,8606,2235],{"class":2182},[2172,8608,2238],{"class":2178},[2172,8610,8611],{"class":2199},"Received:",[2172,8613,2238],{"class":2178},[2172,8615,2297],{"class":2178},[2172,8617,4840],{"class":2217},[2172,8619,2246],{"class":2182},[2172,8621,8622],{"class":2174,"line":2458},[2172,8623,2356],{"class":2178},[2500,8625,8627],{"id":8626},"making-parallel-requests","Making parallel requests",[2039,8629,8630,8631,8634],{},"When requests don't rely on each other, you can make them in parallel with ",[2043,8632,8633],{},"Promise.all()"," to boost performance.",[2162,8636,8638],{"className":2774,"code":8637,"language":2200,"meta":2168,"style":2168},"const { data } = await useAsyncData((_nuxtApp, { signal }) => {\n  return Promise.all([\n    $fetch('/api/comments/', { signal }),\n    $fetch('/api/author/12', { signal }),\n  ])\n})\n\nconst comments = computed(() => data.value?.[0])\nconst author = computed(() => data.value?.[1])\n",[2043,8639,8640,8674,8686,8711,8736,8740,8746,8750,8783],{"__ignoreMap":2168},[2172,8641,8642,8644,8646,8648,8650,8652,8654,8656,8658,8660,8662,8664,8666,8668,8670,8672],{"class":2174,"line":2175},[2172,8643,2211],{"class":2186},[2172,8645,2214],{"class":2178},[2172,8647,2218],{"class":2217},[2172,8649,2221],{"class":2178},[2172,8651,2224],{"class":2178},[2172,8653,2228],{"class":2227},[2172,8655,3226],{"class":2231},[2172,8657,2235],{"class":2217},[2172,8659,2235],{"class":2178},[2172,8661,3563],{"class":2798},[2172,8663,2297],{"class":2178},[2172,8665,2214],{"class":2178},[2172,8667,3570],{"class":2798},[2172,8669,3573],{"class":2178},[2172,8671,2802],{"class":2186},[2172,8673,2269],{"class":2178},[2172,8675,8676,8678,8680,8682,8684],{"class":2174,"line":2208},[2172,8677,2896],{"class":2227},[2172,8679,3603],{"class":3602},[2172,8681,2054],{"class":2178},[2172,8683,3608],{"class":2231},[2172,8685,3611],{"class":2182},[2172,8687,8688,8690,8692,8694,8697,8699,8701,8703,8705,8707,8709],{"class":2174,"line":2249},[2172,8689,3616],{"class":2231},[2172,8691,2235],{"class":2182},[2172,8693,2238],{"class":2178},[2172,8695,8696],{"class":2199},"/api/comments/",[2172,8698,2238],{"class":2178},[2172,8700,2297],{"class":2178},[2172,8702,2214],{"class":2178},[2172,8704,3570],{"class":2217},[2172,8706,2919],{"class":2178},[2172,8708,3636],{"class":2182},[2172,8710,2319],{"class":2178},[2172,8712,8713,8715,8717,8719,8722,8724,8726,8728,8730,8732,8734],{"class":2174,"line":2255},[2172,8714,3616],{"class":2231},[2172,8716,2235],{"class":2182},[2172,8718,2238],{"class":2178},[2172,8720,8721],{"class":2199},"/api/author/12",[2172,8723,2238],{"class":2178},[2172,8725,2297],{"class":2178},[2172,8727,2214],{"class":2178},[2172,8729,3570],{"class":2217},[2172,8731,2919],{"class":2178},[2172,8733,3636],{"class":2182},[2172,8735,2319],{"class":2178},[2172,8737,8738],{"class":2174,"line":2272},[2172,8739,3668],{"class":2182},[2172,8741,8742,8744],{"class":2174,"line":2302},[2172,8743,2221],{"class":2178},[2172,8745,2246],{"class":2217},[2172,8747,8748],{"class":2174,"line":2322},[2172,8749,2252],{"emptyLinePlaceholder":1196},[2172,8751,8752,8754,8756,8758,8760,8762,8764,8766,8768,8770,8772,8775,8778,8781],{"class":2174,"line":2332},[2172,8753,2211],{"class":2186},[2172,8755,4350],{"class":2217},[2172,8757,2193],{"class":2178},[2172,8759,6494],{"class":2231},[2172,8761,2235],{"class":2217},[2172,8763,3289],{"class":2178},[2172,8765,2802],{"class":2186},[2172,8767,3037],{"class":2217},[2172,8769,2054],{"class":2178},[2172,8771,5429],{"class":2217},[2172,8773,8774],{"class":2178},"?.",[2172,8776,8777],{"class":2217},"[",[2172,8779,8780],{"class":5907},"0",[2172,8782,2874],{"class":2217},[2172,8784,8785,8787,8790,8792,8794,8796,8798,8800,8802,8804,8806,8808,8810,8812],{"class":2174,"line":2339},[2172,8786,2211],{"class":2186},[2172,8788,8789],{"class":2217}," author ",[2172,8791,2193],{"class":2178},[2172,8793,6494],{"class":2231},[2172,8795,2235],{"class":2217},[2172,8797,3289],{"class":2178},[2172,8799,2802],{"class":2186},[2172,8801,3037],{"class":2217},[2172,8803,2054],{"class":2178},[2172,8805,5429],{"class":2217},[2172,8807,8774],{"class":2178},[2172,8809,8777],{"class":2217},[2172,8811,5908],{"class":5907},[2172,8813,2874],{"class":2217},[3120,8815],{"title":8816,"video-id":8817,"platform":4270},"Watch a video from Vue School on parallel data fetching","1024262536",[8819,8820,8821],"style",{},"html pre.shiki code .sDfIl, html code.shiki .sDfIl{--shiki-light:#39ADB5;--shiki-default:#39ADB5;--shiki-dark:#89DDFF}html pre.shiki code .sRlkE, html code.shiki .sRlkE{--shiki-light:#E53935;--shiki-default:#E53935;--shiki-dark:#F07178}html pre.shiki code .smZ93, html code.shiki .smZ93{--shiki-light:#9C3EDA;--shiki-default:#9C3EDA;--shiki-dark:#C792EA}html pre.shiki code .sGFVr, html code.shiki .sGFVr{--shiki-light:#91B859;--shiki-default:#91B859;--shiki-dark:#C3E88D}html pre.shiki code .sZSNi, html code.shiki .sZSNi{--shiki-light:#90A4AE;--shiki-default:#90A4AE;--shiki-dark:#BABED8}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 .sWuyu, html code.shiki .sWuyu{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html .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 .s1nJG, html code.shiki .s1nJG{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .s52Pk, html code.shiki .s52Pk{--shiki-light:#E2931D;--shiki-default:#E2931D;--shiki-dark:#FFCB6B}html pre.shiki code .sbKd-, html code.shiki .sbKd-{--shiki-light:#FF5370;--shiki-default:#FF5370;--shiki-dark:#FF9CAC}html pre.shiki code .sYRBq, html code.shiki .sYRBq{--shiki-light:#F76D47;--shiki-default:#F76D47;--shiki-dark:#F78C6C}",{"title":2168,"searchDepth":2208,"depth":2208,"links":8823},[8824,8828,8831,8832,8833,8834,8841,8844,8845,8846,8851],{"id":2104,"depth":2208,"text":8825,"children":8826},"The need for useFetch and useAsyncData",[8827],{"id":2502,"depth":2249,"text":2503},{"id":2528,"depth":2208,"text":630,"children":8829},[8830],{"id":2695,"depth":2249,"text":2696},{"id":2991,"depth":2208,"text":527},{"id":3131,"depth":2208,"text":515},{"id":3824,"depth":2208,"text":3825},{"id":3955,"depth":2208,"text":3956,"children":8835},[8836,8837,8838,8839,8840],{"id":3970,"depth":2249,"text":3971},{"id":4273,"depth":2249,"text":4274},{"id":4411,"depth":2249,"text":4412},{"id":4725,"depth":2249,"text":4726},{"id":6373,"depth":2249,"text":6738},{"id":7016,"depth":2208,"text":7017,"children":8842},[8843],{"id":7048,"depth":2249,"text":7049},{"id":7409,"depth":2208,"text":7410},{"id":7548,"depth":2208,"text":7549},{"id":7610,"depth":2208,"text":7611,"children":8847},[8848,8849,8850],{"id":7642,"depth":2249,"text":7643},{"id":7751,"depth":2249,"text":7752},{"id":8034,"depth":2249,"text":8035},{"id":8337,"depth":2208,"text":357,"children":8852},[8853,8854],{"id":8340,"depth":2249,"text":8341},{"id":8626,"depth":2249,"text":8627},"Nuxt provides composables to handle data fetching within your application.","md",{},{"icon":67},{"title":64,"description":8855},"DlgrK0xWdFAl8Ub3qlMG3rPdG2MMhoKS-WTiQU5yPPs",[8862,8864],{"title":59,"path":1153,"stem":1154,"description":8863,"icon":62,"children":-1},"Apply transitions between pages and layouts with Vue or native browser View Transitions.",{"title":69,"path":1159,"stem":1160,"description":8865,"icon":72,"children":-1},"Nuxt provides powerful state management libraries and the useState composable to create a reactive and SSR-friendly shared state.",1772450146211]