[{"data":1,"prerenderedAt":4272},["ShallowReactive",2],{"docs-all-flat":3,"docs-\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-fetch":1018},[4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96,100,104,108,112,116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192,196,200,204,208,212,216,220,224,228,232,236,240,244,248,252,256,260,264,268,272,276,280,284,288,292,296,300,304,308,312,316,320,324,328,332,336,340,344,348,352,355,359,363,367,371,375,379,383,387,391,395,399,403,407,411,415,419,423,427,431,435,439,443,447,451,455,459,463,467,471,475,479,483,487,491,495,499,503,507,511,515,519,523,527,531,535,539,543,547,551,555,559,563,567,571,575,579,583,587,591,595,599,603,607,611,615,619,623,627,631,635,639,643,647,651,655,659,663,667,671,675,679,683,687,691,695,699,703,707,711,715,719,723,727,731,735,739,743,747,751,755,759,763,767,770,774,778,782,786,790,794,798,802,806,809,813,817,821,825,829,833,837,841,845,849,852,855,859,863,867,871,874,877,881,884,888,892,895,898,901,904,907,911,915,918,922,926,930,934,938,942,946,950,954,958,962,966,970,974,978,982,986,990,994,998,1002,1006,1010,1014],{"path":5,"title":6,"description":7},"\u002Fdocs\u002Fgetting-started\u002Fintroduction","介绍","Nuxt 的目标是提供直观且高性能的 Web 开发体验，并始终将优秀的开发者体验（Developer Experience）放在心上。",{"path":9,"title":10,"description":11},"\u002Fdocs\u002Fgetting-started\u002Finstallation","安装","通过在线 starter 快速上手 Nuxt，或在本地使用终端从零开始。",{"path":13,"title":14,"description":15},"\u002Fdocs\u002Fgetting-started\u002Fconfiguration","配置","Nuxt 提供了合理的默认配置，让你高效开发。",{"path":17,"title":18,"description":19},"\u002Fdocs\u002Fgetting-started\u002Fviews","视图","Nuxt 提供了多个组件层来实现应用的用户界面。",{"path":21,"title":22,"description":23},"\u002Fdocs\u002Fgetting-started\u002Fassets","资源","Nuxt 为你的资源提供了两种处理方式。",{"path":25,"title":26,"description":27},"\u002Fdocs\u002Fgetting-started\u002Fstyling","样式","了解如何为你的 Nuxt 应用添加样式。",{"path":29,"title":30,"description":31},"\u002Fdocs\u002Fgetting-started\u002Frouting","路由","Nuxt 的文件系统路由会为 pages\u002F 目录中的每个文件创建一条路由。",{"path":33,"title":34,"description":35},"\u002Fdocs\u002Fgetting-started\u002Fseo-meta","SEO 与 Meta","借助强大的 head 配置、composables 和组件，改善你的 Nuxt 应用的 SEO。",{"path":37,"title":38,"description":39},"\u002Fdocs\u002Fgetting-started\u002Ftransitions","过渡","使用 Vue 或浏览器原生的 View Transitions，在页面和布局之间应用过渡效果。",{"path":41,"title":42,"description":43},"\u002Fdocs\u002Fgetting-started\u002Fdata-fetching","数据获取","Nuxt 提供了用于处理应用内数据获取的 composables。",{"path":45,"title":46,"description":47},"\u002Fdocs\u002Fgetting-started\u002Fstate-management","状态管理","Nuxt 提供了强大的状态管理库和 useState composable，用于创建响应式且对 SSR 友好的共享状态。",{"path":49,"title":50,"description":51},"\u002Fdocs\u002Fgetting-started\u002Ferror-handling","错误处理","了解如何在 Nuxt 中捕获和处理错误。",{"path":53,"title":54,"description":55},"\u002Fdocs\u002Fgetting-started\u002Fserver","Server","利用 Nuxt 的服务端框架构建全栈应用。你可以从数据库或其他服务端获取数据、创建 API，甚至生成像站点地图或 RSS 这样的静态服务端内容——全部来自同一个代码库。",{"path":57,"title":58,"description":59},"\u002Fdocs\u002Fgetting-started\u002Flayers","Layers","Nuxt 提供了一套强大的系统，允许你扩展默认文件、配置以及更多内容。",{"path":61,"title":62,"description":63},"\u002Fdocs\u002Fgetting-started\u002Fprerendering","Prerendering","Nuxt 允许在构建时静态渲染某些页面，以改善特定的性能或 SEO 指标。",{"path":65,"title":66,"description":67},"\u002Fdocs\u002Fgetting-started\u002Fdeployment","Deployment","了解如何将你的 Nuxt 应用部署到任何托管提供商。",{"path":69,"title":70,"description":71},"\u002Fdocs\u002Fgetting-started\u002Ftesting","Testing","如何测试你的 Nuxt 应用。",{"path":73,"title":74,"description":75},"\u002Fdocs\u002Fgetting-started\u002Fupgrade","Upgrade Guide","了解如何升级到最新的 Nuxt 版本。",{"path":77,"title":78,"description":79},"\u002Fdocs\u002Fdirectory-structure\u002Fnuxt",".nuxt","Nuxt 在开发阶段使用 .nuxt\u002F 目录来生成你的 Vue 应用。",{"path":81,"title":82,"description":83},"\u002Fdocs\u002Fdirectory-structure\u002Foutput",".output","Nuxt 在为生产环境构建应用时创建 .output\u002F 目录。",{"path":85,"title":86,"description":87},"\u002Fdocs\u002Fdirectory-structure\u002Fapp\u002Fassets","assets","assets\u002F 目录用于添加所有将由构建工具处理的网站资源。",{"path":89,"title":90,"description":91},"\u002Fdocs\u002Fdirectory-structure\u002Fapp\u002Fcomponents","components","components\u002F 目录用于存放你所有的 Vue 组件。",{"path":93,"title":94,"description":95},"\u002Fdocs\u002Fdirectory-structure\u002Fapp\u002Fcomposables","composables","使用 composables\u002F 目录将你的 Vue 组合式函数自动导入到应用中。",{"path":97,"title":98,"description":99},"\u002Fdocs\u002Fdirectory-structure\u002Fapp\u002Flayouts","layouts","Nuxt 提供了一个布局框架，用于将通用的 UI 模式提取为可复用的布局。",{"path":101,"title":102,"description":103},"\u002Fdocs\u002Fdirectory-structure\u002Fapp\u002Fmiddleware","middleware","Nuxt 提供中间件，用于在导航到特定路由前运行代码。",{"path":105,"title":106,"description":107},"\u002Fdocs\u002Fdirectory-structure\u002Fapp\u002Fpages","pages","Nuxt 提供基于文件的路由，用于在 Web 应用中创建路由。",{"path":109,"title":110,"description":111},"\u002Fdocs\u002Fdirectory-structure\u002Fapp\u002Fplugins","plugins","Nuxt 拥有一个插件系统，用于在创建 Vue 应用时使用 Vue 插件等。",{"path":113,"title":114,"description":115},"\u002Fdocs\u002Fdirectory-structure\u002Fapp\u002Futils","utils","使用 utils\u002F 目录在你的应用中自动导入工具函数。",{"path":117,"title":118,"description":119},"\u002Fdocs\u002Fdirectory-structure\u002Fapp\u002Fapp","app.vue","app.vue 文件是你 Nuxt 应用的主组件。",{"path":121,"title":122,"description":123},"\u002Fdocs\u002Fdirectory-structure\u002Fapp\u002Fapp-config","app.config.ts","使用 App Config 文件在应用内部暴露响应式配置。",{"path":125,"title":126,"description":127},"\u002Fdocs\u002Fdirectory-structure\u002Fapp\u002Ferror","error.vue","error.vue 文件是你 Nuxt 应用中的错误页面。",{"path":129,"title":130,"description":131},"\u002Fdocs\u002Fdirectory-structure\u002Fcontent","content","使用 content\u002F 目录为你的应用创建一个基于文件的 CMS。",{"path":133,"title":134,"description":135},"\u002Fdocs\u002Fdirectory-structure\u002Flayers","layers","使用 layers\u002F 目录在你的应用中组织和自动注册本地 layers。",{"path":137,"title":138,"description":139},"\u002Fdocs\u002Fdirectory-structure\u002Fmodules","modules","使用 modules\u002F 目录在你的应用中自动注册本地模块。",{"path":141,"title":142,"description":143},"\u002Fdocs\u002Fdirectory-structure\u002Fnode_modules","node_modules","包管理器将项目的依赖存储在 node_modules\u002F 目录中。",{"path":145,"title":146,"description":147},"\u002Fdocs\u002Fdirectory-structure\u002Fpublic","public","public\u002F 目录用于提供网站的静态资源。",{"path":149,"title":150,"description":151},"\u002Fdocs\u002Fdirectory-structure\u002Fserver","server","server\u002F 目录用于为你的应用注册 API 和服务端处理器。",{"path":153,"title":154,"description":155},"\u002Fdocs\u002Fdirectory-structure\u002Fshared","shared","使用 shared\u002F 目录在 Vue 应用和 Nitro 服务端之间共享功能。",{"path":157,"title":158,"description":159},"\u002Fdocs\u002Fdirectory-structure\u002Fenv",".env",".env 文件用于指定构建\u002F开发时的环境变量。",{"path":161,"title":162,"description":163},"\u002Fdocs\u002Fdirectory-structure\u002Fgitignore",".gitignore",".gitignore 文件用于指定 git 应当忽略的、有意不跟踪的文件。",{"path":165,"title":166,"description":167},"\u002Fdocs\u002Fdirectory-structure\u002Fnuxtignore",".nuxtignore",".nuxtignore 文件用于让 Nuxt 在构建阶段忽略项目根目录中的文件。",{"path":169,"title":170,"description":171},"\u002Fdocs\u002Fdirectory-structure\u002Fnuxtrc",".nuxtrc",".nuxtrc 文件允许你用扁平语法定义 Nuxt 配置。",{"path":173,"title":174,"description":175},"\u002Fdocs\u002Fdirectory-structure\u002Fnuxt-config","nuxt.config.ts","只需要一个 nuxt.config 文件，即可轻松配置 Nuxt。",{"path":177,"title":178,"description":179},"\u002Fdocs\u002Fdirectory-structure\u002Fpackage","package.json","package.json 文件包含你应用的所有依赖和脚本。",{"path":181,"title":182,"description":183},"\u002Fdocs\u002Fdirectory-structure\u002Ftsconfig","tsconfig.json","了解 Nuxt 如何在项目的不同部分管理 TypeScript 配置。",{"path":185,"title":186,"description":187},"\u002Fdocs\u002Fdirectory-structure","Nuxt 目录结构","了解 Nuxt 应用的目录结构以及如何使用它。",{"path":189,"title":190,"description":191},"\u002Fdocs\u002Fguide","Nuxt 指南","通过深入的指南了解 Nuxt 的工作原理。",{"path":193,"title":194,"description":195},"\u002Fdocs\u002Fguide\u002Fconcepts\u002Frendering","渲染模式","了解 Nuxt 中可用的不同渲染模式。",{"path":197,"title":198,"description":199},"\u002Fdocs\u002Fguide\u002Fconcepts\u002Fvuejs-development","Vue.js 开发","Nuxt 使用 Vue.js，并添加了组件自动导入、基于文件的路由以及支持 SSR 的组合式函数等特性。",{"path":201,"title":202,"description":203},"\u002Fdocs\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","Nuxt 生命周期","理解 Nuxt 应用的生命周期，可以帮助你更深入地了解框架是如何运作的，尤其是在服务端渲染和客户端渲染两方面。",{"path":205,"title":206,"description":207},"\u002Fdocs\u002Fguide\u002Fconcepts\u002Fauto-imports","自动导入","Nuxt 会自动导入组件、组合式函数、辅助函数和 Vue API。",{"path":209,"title":210,"description":211},"\u002Fdocs\u002Fguide\u002Fconcepts\u002Fserver-engine","服务端引擎","Nuxt 由一个全新的服务端引擎驱动：Nitro。",{"path":213,"title":214,"description":215},"\u002Fdocs\u002Fguide\u002Fconcepts\u002Fmodules","模块","Nuxt 提供了一个模块系统来扩展框架核心并简化集成。",{"path":217,"title":218,"description":219},"\u002Fdocs\u002Fguide\u002Fconcepts\u002Fesm","ES 模块","Nuxt 使用原生的 ES 模块。",{"path":221,"title":222,"description":223},"\u002Fdocs\u002Fguide\u002Fconcepts\u002Ftypescript","TypeScript","Nuxt 完全类型化，并提供了有用的快捷方式，确保你在编码时能获取准确的类型信息。",{"path":225,"title":226,"description":227},"\u002Fdocs\u002Fguide\u002Fconcepts\u002Fcode-style","代码风格","Nuxt 开箱即用地支持 ESLint",{"path":229,"title":230,"description":231},"\u002Fdocs\u002Fguide\u002Fbest-practices\u002Fdevcontainers","Dev Containers","在开发容器中设置或打开 Nuxt 项目，以获得一致开发环境。",{"path":233,"title":234,"description":235},"\u002Fdocs\u002Fguide\u002Fbest-practices\u002Fhydration","Nuxt and Hydration","为什么修复水合问题很重要",{"path":237,"title":238,"description":239},"\u002Fdocs\u002Fguide\u002Fbest-practices\u002Fperformance","Nuxt performance","提升 Nuxt 应用性能的最佳实践。",{"path":241,"title":242,"description":243},"\u002Fdocs\u002Fguide\u002Fbest-practices\u002Fplugins","Nuxt Plugins","使用 Nuxt 插件时的最佳实践。",{"path":245,"title":246,"description":247},"\u002Fdocs\u002Fguide\u002Fai\u002Fmcp","Nuxt MCP Server","借助 Model Context Protocol 支持，在你的 AI 助手中使用 Nuxt 文档。",{"path":249,"title":250,"description":251},"\u002Fdocs\u002Fguide\u002Fai\u002Fllms-txt","Nuxt LLMs.txt","如何让 Cursor、Windsurf、GitHub Copilot、ChatGPT 和 Claude 等 AI 工具理解 Nuxt 的概念、API 和最佳实践。",{"path":253,"title":254,"description":255},"\u002Fdocs\u002Fguide\u002Fmodules\u002Fgetting-started","创建你的第一个模块","学习如何使用官方启动模板创建你的第一个 Nuxt 模块。",{"path":257,"title":258,"description":259},"\u002Fdocs\u002Fguide\u002Fmodules\u002Fmodule-anatomy","理解模块结构","学习 Nuxt 模块是如何构成的，以及如何定义它们。",{"path":261,"title":262,"description":263},"\u002Fdocs\u002Fguide\u002Fmodules\u002Frecipes-basics","添加插件、组件等","学习如何从你的模块注入插件、组件、组合式函数和服务端路由。",{"path":265,"title":266,"description":267},"\u002Fdocs\u002Fguide\u002Fmodules\u002Fmodule-dependencies","模块依赖","声明对其它模块的依赖，并带有版本约束和配置合并。",{"path":269,"title":270,"description":271},"\u002Fdocs\u002Fguide\u002Fmodules\u002Frecipes-advanced","使用钩子与扩展类型","在你的模块中掌握生命周期钩子、虚拟文件和 TypeScript 声明。",{"path":273,"title":274,"description":275},"\u002Fdocs\u002Fguide\u002Fmodules\u002Ftesting","测试你的模块","学习如何对你的 Nuxt 模块进行单元、集成和 E2E 测试。",{"path":277,"title":278,"description":279},"\u002Fdocs\u002Fguide\u002Fmodules\u002Fbest-practices","遵循最佳实践","使用这些指南构建高性能且可维护的 Nuxt 模块。",{"path":281,"title":282,"description":283},"\u002Fdocs\u002Fguide\u002Fmodules\u002Fecosystem","发布与分享你的模块","加入 Nuxt 模块生态，并将你的模块发布到 npm。",{"path":285,"title":286,"description":287},"\u002Fdocs\u002Fguide\u002Fmodules","Module Author Guide","学习如何创建 Nuxt 模块，以集成、增强或扩展任意 Nuxt 应用。",{"path":289,"title":290,"description":291},"\u002Fdocs\u002Fguide\u002Frecipes\u002Fcustom-routing","自定义路由","在 Nuxt 中，你的路由由 pages 目录内文件的结构定义。不过，由于底层使用了 vue-router，Nuxt 提供了几种在你的项目中添加自定义路由的方式。",{"path":293,"title":294,"description":295},"\u002Fdocs\u002Fguide\u002Frecipes\u002Fvite-plugin","在 Nuxt 中使用 Vite 插件","学习如何将 Vite 插件集成到你的 Nuxt 项目中。",{"path":297,"title":298,"description":299},"\u002Fdocs\u002Fguide\u002Frecipes\u002Fcustom-usefetch","Nuxt 中的自定义 useFetch","如何在 Nuxt 中创建用于调用你外部 API 的自定义 fetcher。",{"path":301,"title":302,"description":303},"\u002Fdocs\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","会话与鉴权","鉴权是 Web 应用中极其常见的需求。本配方将向你展示如何在你的 Nuxt 应用中实现基本的用户注册与鉴权。",{"path":305,"title":306,"description":307},"\u002Fdocs\u002Fguide\u002Fgoing-further\u002Fevents","创建自定义事件","Nuxt 提供了一个由 hookable 驱动的强大事件系统。",{"path":309,"title":310,"description":311},"\u002Fdocs\u002Fguide\u002Fgoing-further\u002Fexperimental-features","实验性特性","启用 Nuxt 实验性特性以解锁新的可能性。",{"path":313,"title":314,"description":315},"\u002Fdocs\u002Fguide\u002Fgoing-further\u002Ffeatures","特性开关","启用或禁用可选的 Nuxt 特性，以解锁新的可能性。",{"path":317,"title":318,"description":319},"\u002Fdocs\u002Fguide\u002Fgoing-further\u002Finternals","Nuxt 是如何工作的？","Nuxt 是一个极简但高度可定制的框架，用于构建 Web 应用。",{"path":321,"title":322,"description":323},"\u002Fdocs\u002Fguide\u002Fgoing-further\u002Fruntime-config","运行时配置","Nuxt 提供了一套运行时配置 API，以在你的应用内暴露配置和密钥。",{"path":325,"title":326,"description":327},"\u002Fdocs\u002Fguide\u002Fgoing-further\u002Fnightly-release-channel","Nightly 发布通道","nightly 发布通道允许使用直接从仓库最新提交构建的 Nuxt。",{"path":329,"title":330,"description":331},"\u002Fdocs\u002Fguide\u002Fgoing-further\u002Fhooks","生命周期钩子","Nuxt 提供了一个强大的钩子系统，可使用钩子扩展几乎每个方面。",{"path":333,"title":334,"description":335},"\u002Fdocs\u002Fguide\u002Fgoing-further\u002Fkit","Nuxt Kit","@nuxt\u002Fkit 提供了面向模块作者的功能。",{"path":337,"title":338,"description":339},"\u002Fdocs\u002Fguide\u002Fgoing-further\u002Fnuxt-app","NuxtApp","在 Nuxt 中，你可以在组合式函数、组件和插件中访问运行时应用上下文。",{"path":341,"title":342,"description":343},"\u002Fdocs\u002Fguide\u002Fgoing-further\u002Flayers","编写 Nuxt Layers","Nuxt 提供了一个强大的系统，允许你扩展默认文件、配置等等。",{"path":345,"title":346,"description":347},"\u002Fdocs\u002Fguide\u002Fgoing-further\u002Fbuilders","创建 Builder","了解 Nuxt builder 是如何工作的，以及如何编写你自己的 builder。",{"path":349,"title":350,"description":351},"\u002Fdocs\u002Fguide\u002Fgoing-further\u002Fdebugging","调试","在 Nuxt 中，你可以直接在浏览器中以及你的 IDE 里开始调试你的应用。",{"path":353,"title":354,"description":354},"\u002Fdocs\u002Fguide\u002Fgoing-further","",{"path":356,"title":357,"description":358},"\u002Fdocs\u002Fapi\u002Fcomponents\u002Fclient-only","\u003CClientOnly>","使用 \u003CClientOnly> 组件仅在客户端渲染组件。",{"path":360,"title":361,"description":362},"\u002Fdocs\u002Fapi\u002Fcomponents\u002Fdev-only","\u003CDevOnly>","使用 \u003CDevOnly> 组件仅在开发期间渲染组件。",{"path":364,"title":365,"description":366},"\u002Fdocs\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","\u003CNuxtClientFallback>","Nuxt 提供了 \u003CNuxtClientFallback> 组件，当其任意子组件在 SSR 中触发错误时，在客户端渲染其内容",{"path":368,"title":369,"description":370},"\u002Fdocs\u002Fapi\u002Fcomponents\u002Fnuxt-picture","\u003CNuxtPicture>","Nuxt 提供了 \u003CNuxtPicture> 组件来处理自动图像优化。",{"path":372,"title":373,"description":374},"\u002Fdocs\u002Fapi\u002Fcomponents\u002Fteleports","\u003CTeleport>","\u003CTeleport> 组件将组件传送到 DOM 中的另一个位置。",{"path":376,"title":377,"description":378},"\u002Fdocs\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","\u003CNuxtRouteAnnouncer>","\u003CNuxtRouteAnnouncer> 组件添加一个带有页面标题的隐藏元素，用于向辅助技术播报路由变化。",{"path":380,"title":381,"description":382},"\u002Fdocs\u002Fapi\u002Fcomponents\u002Fnuxt-time","\u003CNuxtTime>","\u003CNuxtTime> 组件以本地化友好的格式显示时间，并保持服务端-客户端一致。",{"path":384,"title":385,"description":386},"\u002Fdocs\u002Fapi\u002Fcomponents\u002Fnuxt-announcer","\u003CNuxtAnnouncer>","\u003CNuxtAnnouncer> 组件添加一个隐藏元素，用于向辅助技术播报动态内容变化。",{"path":388,"title":389,"description":390},"\u002Fdocs\u002Fapi\u002Fcomponents\u002Fnuxt-page","\u003CNuxtPage>","\u003CNuxtPage> 组件用于显示位于 pages\u002F 目录中的页面。",{"path":392,"title":393,"description":394},"\u002Fdocs\u002Fapi\u002Fcomponents\u002Fnuxt-layout","\u003CNuxtLayout>","Nuxt 提供了 \u003CNuxtLayout> 组件，用于在页面和错误页面上显示布局。",{"path":396,"title":397,"description":398},"\u002Fdocs\u002Fapi\u002Fcomponents\u002Fnuxt-link","\u003CNuxtLink>","Nuxt 提供了 \u003CNuxtLink> 组件来处理应用内的各类链接。",{"path":400,"title":401,"description":402},"\u002Fdocs\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","\u003CNuxtLoadingIndicator>","在页面导航之间显示进度条。",{"path":404,"title":405,"description":406},"\u002Fdocs\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","\u003CNuxtErrorBoundary>","\u003CNuxtErrorBoundary> 组件处理其默认插槽中发生的客户端错误。",{"path":408,"title":409,"description":410},"\u002Fdocs\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","\u003CNuxtWelcome>","\u003CNuxtWelcome> 组件用于欢迎通过启动模板创建的新项目的用户。",{"path":412,"title":413,"description":414},"\u002Fdocs\u002Fapi\u002Fcomponents\u002Fnuxt-island","\u003CNuxtIsland>","Nuxt 提供了 \u003CNuxtIsland> 组件，用于渲染无客户端 JS 的非交互式组件。",{"path":416,"title":417,"description":418},"\u002Fdocs\u002Fapi\u002Fcomponents\u002Fnuxt-img","\u003CNuxtImg>","Nuxt 提供了 \u003CNuxtImg> 组件来处理自动图像优化。",{"path":420,"title":421,"description":422},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fcreate-use-async-data","createUseAsyncData","一个工厂函数，用于创建带有预定义默认选项的自定义 useAsyncData 组合式函数。",{"path":424,"title":425,"description":426},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fcreate-use-fetch","createUseFetch","一个工厂函数，用于创建带有预定义默认选项的自定义 useFetch 组合式函数。",{"path":428,"title":429,"description":430},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fon-prehydrate","onPrehydrate","使用 onPrehydrate 在 Nuxt 对页面进行 hydration 之前的客户端立即运行回调。",{"path":432,"title":433,"description":434},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-announcer","useAnnouncer","一个用于向屏幕阅读器播报消息的组合式函数。",{"path":436,"title":437,"description":438},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-app-config","useAppConfig","访问在项目中定义的可响应 app config。",{"path":440,"title":441,"description":442},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-async-data","useAsyncData","useAsyncData 以 SSR 友好的方式提供对异步解析数据的访问。",{"path":444,"title":445,"description":446},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-cookie","useCookie","useCookie 是一个 SSR 友好的组合式函数，用于读写 cookie。",{"path":448,"title":449,"description":450},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-error","useError","useError 组合式函数返回正在被处理的全局 Nuxt 错误。",{"path":452,"title":453,"description":454},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-fetch","useFetch","使用 SSR 友好的组合式函数从 API 端点获取数据。",{"path":456,"title":457,"description":458},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-head","useHead","useHead 用于自定义 Nuxt 应用各个页面的 head 属性。",{"path":460,"title":461,"description":462},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-head-safe","useHeadSafe","处理用户输入时提供 head 数据的推荐方式。",{"path":464,"title":465,"description":466},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-hydration","useHydration","允许完全控制 hydration 周期，以便从服务端设置和接收数据。",{"path":468,"title":469,"description":470},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-layout","useLayout","useLayout 返回为当前路由解析出的布局。",{"path":472,"title":473,"description":474},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data","useLazyAsyncData","该组合式函数包装 useAsyncData，会在 handler 解析之前立即触发导航。",{"path":476,"title":477,"description":478},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","useLazyFetch","该组合式函数是对 useFetch 的封装，会在 handler 解析之前立即触发导航。",{"path":480,"title":481,"description":482},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","useLoadingIndicator","该组合式函数让你访问应用页面的加载状态。",{"path":484,"title":485,"description":486},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","useNuxtApp","访问 Nuxt 应用的共享运行时上下文。",{"path":488,"title":489,"description":490},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","useNuxtData","访问数据获取组合式函数的当前缓存值。",{"path":492,"title":493,"description":494},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","usePreviewMode","使用 usePreviewMode 检查并控制 Nuxt 的预览模式",{"path":496,"title":497,"description":498},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-request-event","useRequestEvent","使用 useRequestEvent 组合式函数访问传入的请求事件。",{"path":500,"title":501,"description":502},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","useRequestFetch","使用 useRequestFetch 组合式函数为服务端 fetch 请求转发请求上下文和请求头。",{"path":504,"title":505,"description":506},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-request-header","useRequestHeader","使用 useRequestHeader 访问某个特定的传入请求头。",{"path":508,"title":509,"description":510},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-request-headers","useRequestHeaders","使用 useRequestHeaders 访问传入的请求头。",{"path":512,"title":513,"description":514},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-request-url","useRequestURL","使用 useRequestURL 组合式函数访问传入的请求 URL。",{"path":516,"title":517,"description":518},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-response-header","useResponseHeader","使用 useResponseHeader 设置服务端响应头。",{"path":520,"title":521,"description":522},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-route","useRoute","useRoute 组合式函数返回当前路由。",{"path":524,"title":525,"description":526},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","useRouteAnnouncer","该组合式函数监视页面标题变化，并相应地更新播报消息。",{"path":528,"title":529,"description":530},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-router","useRouter","useRouter 组合式函数返回 router 实例。",{"path":532,"title":533,"description":534},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","useRuntimeConfig","使用 useRuntimeConfig 组合式函数访问运行时配置变量。",{"path":536,"title":537,"description":538},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","useRuntimeHook","在 Nuxt 应用中注册一个运行时钩子，并确保在作用域销毁时被正确清理。",{"path":540,"title":541,"description":542},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","useSeoMeta","useSeoMeta 组合式函数让你可以将站点的 SEO meta 标签定义为一个扁平对象，并提供完整的 TypeScript 支持。",{"path":544,"title":545,"description":546},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta","useServerSeoMeta","useServerSeoMeta 组合式函数让你可以将站点的 SEO meta 标签定义为一个扁平对象，并提供完整的 TypeScript 支持。",{"path":548,"title":549,"description":550},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-state","useState","useState 组合式函数创建一个可响应的、SSR 友好的共享状态。",{"path":552,"title":553,"description":554},"\u002Fdocs\u002Fapi\u002Futils\u002Fdollarfetch","$fetch","Nuxt 使用 ofetch 全局暴露了 $fetch 辅助函数，用于发起 HTTP 请求。",{"path":556,"title":557,"description":558},"\u002Fdocs\u002Fapi\u002Futils\u002Fabort-navigation","abortNavigation","abortNavigation 是一个辅助函数，用于阻止导航的发生，并在设置了参数时抛出错误。",{"path":560,"title":561,"description":562},"\u002Fdocs\u002Fapi\u002Futils\u002Fadd-route-middleware","addRouteMiddleware","addRouteMiddleware() 是一个在你的应用中动态添加中间件的辅助函数。",{"path":564,"title":565,"description":566},"\u002Fdocs\u002Fapi\u002Futils\u002Fcall-once","callOnce","在 SSR 或 CSR 期间只运行一次给定的函数或代码块。",{"path":568,"title":569,"description":570},"\u002Fdocs\u002Fapi\u002Futils\u002Fclear-error","clearError","clearError 组合式函数清除所有已处理的错误。",{"path":572,"title":573,"description":574},"\u002Fdocs\u002Fapi\u002Futils\u002Fclear-nuxt-data","clearNuxtData","删除 useAsyncData 和 useFetch 的缓存数据、错误状态和挂起的 promise。",{"path":576,"title":577,"description":578},"\u002Fdocs\u002Fapi\u002Futils\u002Fclear-nuxt-state","clearNuxtState","删除 useState 的缓存状态。",{"path":580,"title":581,"description":582},"\u002Fdocs\u002Fapi\u002Futils\u002Fcreate-error","createError","创建一个带有附加元数据的错误对象。",{"path":584,"title":585,"description":586},"\u002Fdocs\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component","defineLazyHydrationComponent","使用特定策略定义一个懒加载 hydration 组件。",{"path":588,"title":589,"description":590},"\u002Fdocs\u002Fapi\u002Futils\u002Fdefine-nuxt-component","defineNuxtComponent","defineNuxtComponent() 是一个用于使用 Options API 定义类型安全组件的辅助函数。",{"path":592,"title":593,"description":594},"\u002Fdocs\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","defineNuxtPlugin","defineNuxtPlugin() 是一个用于创建 Nuxt 插件的辅助函数。",{"path":596,"title":597,"description":598},"\u002Fdocs\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware","defineNuxtRouteMiddleware","使用 defineNuxtRouteMiddleware 辅助函数创建命名路由中间件。",{"path":600,"title":601,"description":602},"\u002Fdocs\u002Fapi\u002Futils\u002Fdefine-page-meta","definePageMeta","为你的页面组件定义元数据。",{"path":604,"title":605,"description":606},"\u002Fdocs\u002Fapi\u002Futils\u002Fdefine-route-rules","defineRouteRules","在页面层面定义用于混合渲染的路由规则。",{"path":608,"title":609,"description":610},"\u002Fdocs\u002Fapi\u002Futils\u002Fnavigate-to","navigateTo","navigateTo 是一个用于以编程方式导航用户的辅助函数。",{"path":612,"title":613,"description":614},"\u002Fdocs\u002Fapi\u002Futils\u002Fon-before-route-leave","onBeforeRouteLeave","onBeforeRouteLeave 组合式函数允许在组件内部注册一个路由守卫。",{"path":616,"title":617,"description":618},"\u002Fdocs\u002Fapi\u002Futils\u002Fon-before-route-update","onBeforeRouteUpdate","onBeforeRouteUpdate 组合式函数允许在组件内部注册一个路由守卫。",{"path":620,"title":621,"description":622},"\u002Fdocs\u002Fapi\u002Futils\u002Fon-nuxt-ready","onNuxtReady","onNuxtReady 组合式函数允许在你的应用完成初始化之后运行一个回调。",{"path":624,"title":625,"description":626},"\u002Fdocs\u002Fapi\u002Futils\u002Fprefetch-components","prefetchComponents","Nuxt 提供了用于在预取组件方面给予你控制的工具。",{"path":628,"title":629,"description":630},"\u002Fdocs\u002Fapi\u002Futils\u002Fpreload-components","preloadComponents","Nuxt 提供了用于在预加载组件方面给予你控制的工具。",{"path":632,"title":633,"description":634},"\u002Fdocs\u002Fapi\u002Futils\u002Fpreload-route-components","preloadRouteComponents","preloadRouteComponents 允许你手动预加载 Nuxt 应用中的单个页面。",{"path":636,"title":637,"description":638},"\u002Fdocs\u002Fapi\u002Futils\u002Fprerender-routes","prerenderRoutes","prerenderRoutes 向 Nitro 暗示预渲染一个额外的路由。",{"path":640,"title":641,"description":642},"\u002Fdocs\u002Fapi\u002Futils\u002Frefresh-cookie","refreshCookie","当 cookie 发生变化时，手动刷新 useCookie 的值",{"path":644,"title":645,"description":646},"\u002Fdocs\u002Fapi\u002Futils\u002Frefresh-nuxt-data","refreshNuxtData","刷新 Nuxt 中所有或特定的 asyncData 实例",{"path":648,"title":649,"description":650},"\u002Fdocs\u002Fapi\u002Futils\u002Freload-nuxt-app","reloadNuxtApp","reloadNuxtApp 会对页面执行一次硬刷新。",{"path":652,"title":653,"description":654},"\u002Fdocs\u002Fapi\u002Futils\u002Fset-page-layout","setPageLayout","setPageLayout 允许你动态更改页面的布局。",{"path":656,"title":657,"description":658},"\u002Fdocs\u002Fapi\u002Futils\u002Fset-response-status","setResponseStatus","setResponseStatus 设置响应的状态码（以及可选的 statusText）。",{"path":660,"title":661,"description":662},"\u002Fdocs\u002Fapi\u002Futils\u002Fshow-error","showError","Nuxt 提供了一种快速且简单的方式，在需要的时候显示全屏错误页。",{"path":664,"title":665,"description":666},"\u002Fdocs\u002Fapi\u002Futils\u002Fupdate-app-config","updateAppConfig","在运行时更新 App Config。",{"path":668,"title":669,"description":670},"\u002Fdocs\u002Fapi\u002Fcommands\u002Fadd","nuxt add","在你的 Nuxt 应用中快速搭建一个实体（文件）。",{"path":672,"title":673,"description":674},"\u002Fdocs\u002Fapi\u002Fcommands\u002Fanalyze","nuxt analyze","分析生产环境的打包产物或你的 Nuxt 应用。",{"path":676,"title":677,"description":678},"\u002Fdocs\u002Fapi\u002Fcommands\u002Fbuild","nuxt build","构建你的 Nuxt 应用。",{"path":680,"title":681,"description":682},"\u002Fdocs\u002Fapi\u002Fcommands\u002Fbuild-module","nuxt build-module","用于在发布前构建你的 Nuxt 模块的 Nuxt 命令。",{"path":684,"title":685,"description":686},"\u002Fdocs\u002Fapi\u002Fcommands\u002Fcleanup","nuxt cleanup","移除常见的 Nuxt 生成文件和缓存。",{"path":688,"title":689,"description":690},"\u002Fdocs\u002Fapi\u002Fcommands\u002Fdev","nuxt dev","dev 命令会在 http:\u002F\u002Flocalhost:3000 启动一个带有热模块替换（HMR）的开发服务器。",{"path":692,"title":693,"description":694},"\u002Fdocs\u002Fapi\u002Fcommands\u002Fdevtools","nuxt devtools","devtools 命令允许你基于每个项目启用或禁用 Nuxt DevTools。",{"path":696,"title":697,"description":698},"\u002Fdocs\u002Fapi\u002Fcommands\u002Fgenerate","nuxt generate","预渲染应用的每一个路由，并将结果存储为纯 HTML 文件。",{"path":700,"title":701,"description":702},"\u002Fdocs\u002Fapi\u002Fcommands\u002Finfo","nuxt info","info 命令会记录当前或指定 Nuxt 项目的相关信息。",{"path":704,"title":705,"description":706},"\u002Fdocs\u002Fapi\u002Fcommands\u002Finit","create nuxt","init 命令用于初始化一个全新的 Nuxt 项目。",{"path":708,"title":709,"description":710},"\u002Fdocs\u002Fapi\u002Fcommands\u002Fmodule","nuxt module","通过命令行搜索并向你的 Nuxt 应用添加模块。",{"path":712,"title":713,"description":714},"\u002Fdocs\u002Fapi\u002Fcommands\u002Fprepare","nuxt prepare","prepare 命令会在你的应用中创建一个 .nuxt 目录并生成类型。",{"path":716,"title":717,"description":718},"\u002Fdocs\u002Fapi\u002Fcommands\u002Fpreview","nuxt preview","preview 命令会启动一个服务器，用于在运行 build 命令后预览你的应用。",{"path":720,"title":721,"description":722},"\u002Fdocs\u002Fapi\u002Fcommands\u002Ftest","nuxt test","test 命令使用 @nuxt\u002Ftest-utils 运行测试。",{"path":724,"title":725,"description":726},"\u002Fdocs\u002Fapi\u002Fcommands\u002Ftypecheck","nuxt typecheck","typecheck 命令运行 vue-tsc 来全量检查你的应用类型。",{"path":728,"title":729,"description":730},"\u002Fdocs\u002Fapi\u002Fcommands\u002Fupgrade","nuxt upgrade","upgrade 命令将 Nuxt 升级到最新版本。",{"path":732,"title":733,"description":734},"\u002Fdocs\u002Fapi\u002Fkit\u002Fmodules","Modules","Nuxt Kit 提供了一系列工具，帮助你创建和使用模块。你可以使用这些工具来创建自己的模块，或复用已有的模块。",{"path":736,"title":737,"description":738},"\u002Fdocs\u002Fapi\u002Fkit\u002Fruntime-config","Runtime Config","Nuxt Kit 提供了一系列工具，帮助你访问和修改 Nuxt 运行时配置。",{"path":740,"title":741,"description":742},"\u002Fdocs\u002Fapi\u002Fkit\u002Ftemplates","Templates","Nuxt Kit 提供了一系列工具，帮助你处理模板。这些函数允许你在开发和构建期间生成额外的文件。",{"path":744,"title":745,"description":746},"\u002Fdocs\u002Fapi\u002Fkit\u002Fapp-config","App Config","Nuxt Kit 提供了一系列工具，帮助你访问和修改 Nuxt 应用配置。",{"path":748,"title":749,"description":750},"\u002Fdocs\u002Fapi\u002Fkit\u002Fnitro","Nitro","Nuxt Kit 提供了一系列工具，帮助你使用 Nitro。这些函数允许你添加服务器处理器、插件和预渲染路由。",{"path":752,"title":753,"description":754},"\u002Fdocs\u002Fapi\u002Fkit\u002Fresolving","Resolving","Nuxt Kit 提供了从 Nuxt 根目录或自定义基准路径解析路径的实用工具。",{"path":756,"title":757,"description":758},"\u002Fdocs\u002Fapi\u002Fkit\u002Flogging","Logging","Nuxt Kit 提供了一系列工具，帮助你使用日志记录。这些函数允许你以额外功能记录消息。",{"path":760,"title":761,"description":762},"\u002Fdocs\u002Fapi\u002Fkit\u002Fbuilder","Builder","Nuxt Kit 提供了一系列工具，帮助你使用构建器。这些函数允许你扩展 Vite 和 webpack 配置。",{"path":764,"title":765,"description":766},"\u002Fdocs\u002Fapi\u002Fkit\u002Fexamples","Examples","Nuxt Kit 工具的使用示例。",{"path":768,"title":58,"description":769},"\u002Fdocs\u002Fapi\u002Fkit\u002Flayers","Nuxt Kit 提供了帮助你处理层及其目录结构的工具。",{"path":771,"title":772,"description":773},"\u002Fdocs\u002Fapi\u002Fkit\u002Fprogrammatic","Programmatic Usage","Nuxt Kit 提供了一系列工具，帮助你以编程方式使用 Nuxt。这些函数允许你加载 Nuxt、构建 Nuxt，以及加载 Nuxt 配置。",{"path":775,"title":776,"description":777},"\u002Fdocs\u002Fapi\u002Fkit\u002Fcompatibility","Compatibility","Nuxt Kit 提供了一系列工具，帮助你检查模块与不同 Nuxt 版本的兼容性。",{"path":779,"title":780,"description":781},"\u002Fdocs\u002Fapi\u002Fkit\u002Fautoimports","Auto-imports","Nuxt Kit 提供了一系列工具，帮助你处理自动导入。这些函数允许你注册自己的 utils、composables 和 Vue API。",{"path":783,"title":784,"description":785},"\u002Fdocs\u002Fapi\u002Fkit\u002Fcomponents","Components","Nuxt Kit 提供了一系列工具，帮助你处理组件。你可以全局或局部注册组件，也可以添加要被扫描的目录。",{"path":787,"title":788,"description":789},"\u002Fdocs\u002Fapi\u002Fkit\u002Fcontext","Context","Nuxt Kit 提供了一系列工具，帮助你处理上下文。",{"path":791,"title":792,"description":793},"\u002Fdocs\u002Fapi\u002Fkit\u002Fpages","Pages","Nuxt Kit 提供了一系列工具，帮助你创建和使用页面。你可以使用这些工具来操作页面配置或定义路由规则。",{"path":795,"title":796,"description":797},"\u002Fdocs\u002Fapi\u002Fkit\u002Flayout","Layout","Nuxt Kit 提供了一系列工具，帮助你处理布局。",{"path":799,"title":800,"description":801},"\u002Fdocs\u002Fapi\u002Fkit\u002Fhead","Head","Nuxt Kit 提供了一系列工具，帮助你在模块中管理 head 配置。",{"path":803,"title":804,"description":805},"\u002Fdocs\u002Fapi\u002Fkit\u002Fplugins","Plugins","Nuxt Kit 提供了一系列工具，帮助你创建和使用插件。你可以使用这些函数向你的模块添加插件或插件模板。",{"path":807,"title":330,"description":808},"\u002Fdocs\u002Fapi\u002Fadvanced\u002Fhooks","Nuxt 提供了一套强大的钩子系统，可以通过钩子扩展几乎各个方面。",{"path":810,"title":811,"description":812},"\u002Fdocs\u002Fapi\u002Fadvanced\u002Fimport-meta","Import meta","使用 `import.meta` 了解你的代码运行在何处。",{"path":814,"title":815,"description":816},"\u002Fdocs\u002Fapi\u002Fnuxt-config","Nuxt 配置","发现你可以在 nuxt.config.ts 文件中使用的所有选项。",{"path":818,"title":819,"description":820},"\u002Fdocs\u002Fapi","Nuxt API 参考","探索所有 Nuxt 内部机制：组件、组合式函数、工具函数、命令等等。",{"path":822,"title":823,"description":824},"\u002Fdocs\u002Fcommunity\u002Fgetting-help","获取帮助","我们是一个友好的开发者社区，很乐意提供帮助。",{"path":826,"title":827,"description":828},"\u002Fdocs\u002Fcommunity\u002Freporting-bugs","报告 Bug","开源中最有价值的角色之一，就是花时间把 bug 报告得清楚明白。",{"path":830,"title":831,"description":832},"\u002Fdocs\u002Fcommunity\u002Fcontribution","贡献","Nuxt 是一个社区项目——因此我们欢迎各种形式的贡献！❤️",{"path":834,"title":835,"description":836},"\u002Fdocs\u002Fcommunity\u002Fframework-contribution","框架贡献","关于向框架仓库贡献的一些具体要点。",{"path":838,"title":839,"description":840},"\u002Fdocs\u002Fcommunity\u002Froadmap","路线图","Nuxt 在不断发展，新功能和模块一直在增加。",{"path":842,"title":843,"description":844},"\u002Fdocs\u002Fcommunity\u002Fchangelog","发布","发现 Nuxt 及 Nuxt 官方模块的最新发布。",{"path":846,"title":847,"description":848},"\u002Fdocs\u002Fbridge\u002Foverview","概述","缩小与 Nuxt 3 的差异，并减轻迁移到 Nuxt 3 的负担。",{"path":850,"title":14,"description":851},"\u002Fdocs\u002Fbridge\u002Fconfiguration","了解如何根据你的需求配置 Nuxt Bridge。",{"path":853,"title":222,"description":854},"\u002Fdocs\u002Fbridge\u002Ftypescript","了解如何在 Nuxt Bridge 中使用 TypeScript。",{"path":856,"title":857,"description":858},"\u002Fdocs\u002Fbridge\u002Fbridge-composition-api","旧版 Composition API","了解如何使用 Nuxt Bridge 迁移到 Composition API。",{"path":860,"title":861,"description":862},"\u002Fdocs\u002Fbridge\u002Fplugins-and-middleware","插件和中间件","了解如何从 Nuxt 2 迁移到 Nuxt Bridge 的新插件和中间件。",{"path":864,"title":865,"description":866},"\u002Fdocs\u002Fbridge\u002Fnuxt3-compatible-api","新的 Composition API","Nuxt Bridge 实现了与 Nuxt 3 兼容的组合式函数。",{"path":868,"title":869,"description":870},"\u002Fdocs\u002Fbridge\u002Fmeta","Meta 标签","了解如何从 Nuxt 2 迁移到 Nuxt Bridge 的新 meta 标签。",{"path":872,"title":322,"description":873},"\u002Fdocs\u002Fbridge\u002Fruntime-config","Nuxt 提供了一个运行时配置 API，用于在应用中暴露配置和密钥。",{"path":875,"title":749,"description":876},"\u002Fdocs\u002Fbridge\u002Fnitro","通过 Nuxt Bridge 为你的 Nuxt 2 应用激活 Nitro。",{"path":878,"title":879,"description":880},"\u002Fdocs\u002Fbridge\u002Fvite","Vite","通过 Nuxt Bridge 为你的 Nuxt 2 应用激活 Vite。",{"path":882,"title":847,"description":883},"\u002Fdocs\u002Fmigration\u002Foverview","Nuxt 3 是对 Nuxt 2 的完整重写，并且基于一套全新的底层技术。",{"path":885,"title":886,"description":887},"\u002Fdocs\u002Fmigration\u002Fbundling","构建工具","了解如何从 Nuxt 2 迁移到 Nuxt 3 的构建工具。",{"path":889,"title":890,"description":891},"\u002Fdocs\u002Fmigration\u002Fserver","服务器","了解如何从 Nuxt 2 迁移到 Nuxt 3 的服务器。",{"path":893,"title":14,"description":894},"\u002Fdocs\u002Fmigration\u002Fconfiguration","了解如何从 Nuxt 2 迁移到 Nuxt 3 的新配置。",{"path":896,"title":214,"description":897},"\u002Fdocs\u002Fmigration\u002Fmodule-authors","了解如何从 Nuxt 2 迁移到 Nuxt 3 模块。",{"path":899,"title":206,"description":900},"\u002Fdocs\u002Fmigration\u002Fauto-imports","Nuxt 3 采用最小摩擦的方式，即在任何可能的地方自动导入组件和组合式函数。",{"path":902,"title":869,"description":903},"\u002Fdocs\u002Fmigration\u002Fmeta","管理你的 meta 标签，从 Nuxt 2 到 Nuxt 3。",{"path":905,"title":861,"description":906},"\u002Fdocs\u002Fmigration\u002Fplugins-and-middleware","了解如何从 Nuxt 2 迁移到 Nuxt 3 的插件和中间件。",{"path":908,"title":909,"description":910},"\u002Fdocs\u002Fmigration\u002Fpages-and-layouts","页面和布局","了解如何从 Nuxt 2 迁移到 Nuxt 3 的页面和布局。",{"path":912,"title":913,"description":914},"\u002Fdocs\u002Fmigration\u002Fcomponent-options","组件选项","了解如何从 Nuxt 2 的组件选项迁移到 Nuxt 3 的组合式函数。",{"path":916,"title":322,"description":917},"\u002Fdocs\u002Fmigration\u002Fruntime-config","了解如何从 Nuxt 2 迁移到 Nuxt 3 的运行时配置。",{"path":919,"title":920,"description":921},"\u002Fdocs\u002Freadme","Nuxt 文档","本仓库包含 Nuxt 的文档，托管于 https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fgetting-started\u002Fintroduction",{"path":923,"title":924,"description":925},"\u002Fdocs\u002Ferrors\u002Fb5001","NUXT_B5001","缺少 compatibilityDate (兼容性日期)",{"path":927,"title":928,"description":929},"\u002Fdocs\u002Ferrors\u002Fb5003","NUXT_B5003","保留的 runtimeConfig.app 命名空间",{"path":931,"title":932,"description":933},"\u002Fdocs\u002Ferrors\u002Fb5004","NUXT_B5004","不支持外部配置文件",{"path":935,"title":936,"description":937},"\u002Fdocs\u002Ferrors\u002Fe1001","NUXT_E1001","在 Nuxt 上下文之外调用了组合式函数。",{"path":939,"title":940,"description":941},"\u002Fdocs\u002Ferrors\u002Fe1006","NUXT_E1006","onPrehydrate 未被构建流水线处理。",{"path":943,"title":944,"description":945},"\u002Fdocs\u002Ferrors\u002Fe1007","NUXT_E1007","编译期提示辅助函数在运行时被调用。",{"path":947,"title":948,"description":949},"\u002Fdocs\u002Ferrors\u002Fe2001","NUXT_E2001","外部导航未设置 external: true。",{"path":951,"title":952,"description":953},"\u002Fdocs\u002Ferrors\u002Fe2002","NUXT_E2002","使用了危险协议的导航。",{"path":955,"title":956,"description":957},"\u002Fdocs\u002Ferrors\u002Fe2003","NUXT_E2003","abortNavigation() 在中间件之外被调用。",{"path":959,"title":960,"description":961},"\u002Fdocs\u002Ferrors\u002Fe2004","NUXT_E2004","未知的路由中间件。",{"path":963,"title":964,"description":965},"\u002Fdocs\u002Ferrors\u002Fe2005","NUXT_E2005","在中间件内调用了 useRoute。",{"path":967,"title":968,"description":969},"\u002Fdocs\u002Ferrors\u002Fe2007","NUXT_E2007","在组件中于服务端调用了 setPageLayout。",{"path":971,"title":972,"description":973},"\u002Fdocs\u002Ferrors\u002Fe3001","NUXT_E3001","useFetch 的请求 URL 以 \"\u002F\u002F\" 开头。",{"path":975,"title":976,"description":977},"\u002Fdocs\u002Ferrors\u002Fe3008","NUXT_E3008","useAsyncData 的 key 必须是非空字符串。",{"path":979,"title":980,"description":981},"\u002Fdocs\u002Ferrors\u002Fe3009","NUXT_E3009","useAsyncData 的处理函数必须是一个函数。",{"path":983,"title":984,"description":985},"\u002Fdocs\u002Ferrors\u002Fe4012","NUXT_E4012","无法解析 island（岛）响应。",{"path":987,"title":988,"description":989},"\u002Fdocs\u002Ferrors\u002Fe4016","NUXT_E4016","嵌套页面无法显示，因为其父页面没有渲染 \u003CNuxtPage \u002F>。",{"path":991,"title":992,"description":993},"\u002Fdocs\u002Ferrors\u002Fe5001","NUXT_E5001","应用清单（app manifest）未启用。",{"path":995,"title":996,"description":997},"\u002Fdocs\u002Ferrors\u002Fe6001","NUXT_E6001","缺少 Unhead 实例。",{"path":999,"title":1000,"description":1001},"\u002Fdocs\u002Ferrors\u002Fe7001","NUXT_E7001","Payload URL 包含主机名。",{"path":1003,"title":1004,"description":1005},"\u002Fdocs\u002Ferrors\u002Fe7007","NUXT_E7007","useState 的初始化值必须是一个函数。",{"path":1007,"title":1008,"description":1009},"\u002Fdocs\u002Ferrors\u002Fe7008","NUXT_E7008","callOnce 的 fn 必须是一个函数。",{"path":1011,"title":1012,"description":1013},"\u002Fdocs\u002Ferrors\u002Fe7009","NUXT_E7009","useState 的 key 必须是一个字符串。",{"path":1015,"title":1016,"description":1017},"\u002Fdocs\u002Ferrors\u002Fe7010","NUXT_E7010","callOnce 的 key 必须是一个字符串。",{"id":1019,"title":453,"body":1020,"description":454,"extension":4261,"meta":4262,"navigation":4268,"path":452,"seo":4269,"stem":4270,"__hash__":4271},"docs\u002Fdocs\u002F4.api\u002F2.composables\u002Fuse-fetch.md",{"type":1021,"value":1022,"toc":4249},"minimark",[1023,1039,1042,1047,1051,1208,1212,1225,1227,1264,1266,1295,1315,1420,1427,1436,1704,1709,1712,1854,1874,1877,1961,2042,2044,2046,2056,2059,2072,2074,2087,2092,2095,2099,2114,2220,2227,2336,2339,3379,3382,3415,3866,3868,3883,3888,3960,3971,3974,3993,3995,3998,4000,4022,4184,4186,4202,4205,4235,4238,4242,4245],[1024,1025,1026,1027,1033,1034,1038],"p",{},"该组合式函数提供了对 ",[1028,1029,1030],"a",{"href":440},[1031,1032,441],"code",{}," 和 ",[1028,1035,1036],{"href":552},[1031,1037,553],{}," 的便捷封装。它会自动为请求生成 key，基于服务端路由提供请求 url 的类型提示，并推断 API 响应类型。",[1040,1041],"note",{},[1024,1043,1044,1046],{},[1031,1045,453],{}," 是一个组合式函数，意在 setup 函数、插件或路由中间件中直接调用。它返回可响应的组合式值，并处理将响应添加到 Nuxt payload 中，这样它们就可以从服务端传递到客户端，在页面 hydration 时无需在客户端重新获取数据。\n:",[1048,1049,1050],"h2",{"id":1050},"用法",[1052,1053,1058],"pre",{"className":1054,"code":1055,"filename":1056,"language":1057,"meta":354,"style":354},"language-vue shiki shiki-themes material-theme-lighter github-dark material-theme-palenight","\u003Cscript setup lang=\"ts\">\nconst { data, status, error, refresh, clear } = await useFetch('\u002Fapi\u002Fmodules', {\n  pick: ['title'],\n})\n\u003C\u002Fscript>\n","app\u002Fpages\u002Fmodules.vue","vue",[1031,1059,1060,1096,1163,1189,1198],{"__ignoreMap":354},[1061,1062,1065,1069,1073,1077,1080,1083,1087,1091,1093],"span",{"class":1063,"line":1064},"line",1,[1061,1066,1068],{"class":1067},"sF54B","\u003C",[1061,1070,1072],{"class":1071},"s6g6u","script",[1061,1074,1076],{"class":1075},"sXjFp"," setup",[1061,1078,1079],{"class":1075}," lang",[1061,1081,1082],{"class":1067},"=",[1061,1084,1086],{"class":1085},"s0jeK","\"",[1061,1088,1090],{"class":1089},"s-Aze","ts",[1061,1092,1086],{"class":1085},[1061,1094,1095],{"class":1067},">\n",[1061,1097,1099,1103,1106,1110,1113,1116,1118,1121,1123,1126,1128,1131,1134,1138,1142,1146,1150,1153,1156,1158,1160],{"class":1063,"line":1098},2,[1061,1100,1102],{"class":1101},"sV7Px","const",[1061,1104,1105],{"class":1067}," {",[1061,1107,1109],{"class":1108},"sJTDI"," data",[1061,1111,1112],{"class":1067},",",[1061,1114,1115],{"class":1108}," status",[1061,1117,1112],{"class":1067},[1061,1119,1120],{"class":1108}," error",[1061,1122,1112],{"class":1067},[1061,1124,1125],{"class":1108}," refresh",[1061,1127,1112],{"class":1067},[1061,1129,1130],{"class":1108}," clear",[1061,1132,1133],{"class":1067}," }",[1061,1135,1137],{"class":1136},"sXPRQ"," =",[1061,1139,1141],{"class":1140},"szyBz"," await",[1061,1143,1145],{"class":1144},"srJn9"," useFetch",[1061,1147,1149],{"class":1148},"smVNa","(",[1061,1151,1152],{"class":1085},"'",[1061,1154,1155],{"class":1089},"\u002Fapi\u002Fmodules",[1061,1157,1152],{"class":1085},[1061,1159,1112],{"class":1067},[1061,1161,1162],{"class":1067}," {\n",[1061,1164,1166,1170,1173,1176,1178,1181,1183,1186],{"class":1063,"line":1165},3,[1061,1167,1169],{"class":1168},"sOtFm","  pick",[1061,1171,1172],{"class":1067},":",[1061,1174,1175],{"class":1148}," [",[1061,1177,1152],{"class":1085},[1061,1179,1180],{"class":1089},"title",[1061,1182,1152],{"class":1085},[1061,1184,1185],{"class":1148},"]",[1061,1187,1188],{"class":1067},",\n",[1061,1190,1192,1195],{"class":1063,"line":1191},4,[1061,1193,1194],{"class":1067},"}",[1061,1196,1197],{"class":1148},")\n",[1061,1199,1201,1204,1206],{"class":1063,"line":1200},5,[1061,1202,1203],{"class":1067},"\u003C\u002F",[1061,1205,1072],{"class":1071},[1061,1207,1095],{"class":1067},[1209,1210],"tip",{"to":1211},"\u002Fdocs\u002Fguide\u002Frecipes\u002Fcustom-usefetch#custom-usefetch-with-createusefetch",[1024,1213,1214,1215,1218,1219,1221,1222,1224],{},"需要一个带有预定义默认值（如 ",[1031,1216,1217],{},"baseURL"," 或鉴权请求头）的自定义 ",[1031,1220,453],{},"？使用 ",[1031,1223,425],{}," 创建一个完全类型化的自定义组合式函数。\n:",[1040,1226],{},[1024,1228,1229,1230,1233,1234,1236,1237,1239,1240,1243,1244,1246,1247,1033,1250,1253,1254,1260,1261,1263],{},"你无需 ",[1031,1231,1232],{},"await"," ",[1031,1235,453],{},"。在服务端，无论哪种情况 Nuxt 都会等待 promise 解析完成后再渲染，因此返回的 HTML 始终包含数据。",[1031,1238,1232],{}," 影响的是调用之后发生的事情：使用它时，执行会暂停直到 ",[1031,1241,1242],{},"data"," 被填充，且客户端导航会阻塞直到数据就绪；不使用它时，执行立即继续，",[1031,1245,1242],{}," 在请求解析完成前保持其默认值，在客户端导航时你需要使用返回的 ",[1031,1248,1249],{},"status",[1031,1251,1252],{},"error"," ref 自行处理加载和错误状态。这与 ",[1028,1255,1257],{"href":1256},"#parameters",[1031,1258,1259],{},"lazy"," 选项效果类似，不过 ",[1031,1262,1259],{}," 是显式选择非阻塞导航的方式。\n:",[1040,1265],{},[1024,1267,1268,1270,1271,1033,1273,1275,1276,1279,1280,1283,1284,1287,1288,1033,1291,1294],{},[1031,1269,1242],{},"、",[1031,1272,1249],{},[1031,1274,1252],{}," 是 Vue ref，在 ",[1031,1277,1278],{},"\u003Cscript setup>"," 中通过 ",[1031,1281,1282],{},".value"," 访问它们的值，而 ",[1031,1285,1286],{},"refresh","\u002F",[1031,1289,1290],{},"execute",[1031,1292,1293],{},"clear"," 是普通函数。\n:",[1024,1296,1297,1298,1301,1302,1308,1309,1314],{},"使用 ",[1031,1299,1300],{},"query"," 选项，你可以为查询添加搜索参数。该选项继承自 ",[1028,1303,1307],{"href":1304,"rel":1305},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fofetch",[1306],"nofollow","unjs\u002Fofetch"," 并使用 ",[1028,1310,1313],{"href":1311,"rel":1312},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fufo",[1306],"unjs\u002Fufo"," 来创建 URL。对象会自动字符串化。",[1052,1316,1320],{"className":1317,"code":1318,"filename":1319,"language":1090,"meta":354,"style":354},"language-ts shiki shiki-themes material-theme-lighter github-dark material-theme-palenight","const param1 = ref('value1')\nconst { data, status, error, refresh } = await useFetch('\u002Fapi\u002Fmodules', {\n  query: { param1, param2: 'value2' },\n})\n","app\u002Fpages\u002Findex.vue",[1031,1321,1322,1345,1385,1414],{"__ignoreMap":354},[1061,1323,1324,1326,1329,1331,1334,1336,1338,1341,1343],{"class":1063,"line":1064},[1061,1325,1102],{"class":1101},[1061,1327,1328],{"class":1108}," param1",[1061,1330,1137],{"class":1136},[1061,1332,1333],{"class":1144}," ref",[1061,1335,1149],{"class":1148},[1061,1337,1152],{"class":1085},[1061,1339,1340],{"class":1089},"value1",[1061,1342,1152],{"class":1085},[1061,1344,1197],{"class":1148},[1061,1346,1347,1349,1351,1353,1355,1357,1359,1361,1363,1365,1367,1369,1371,1373,1375,1377,1379,1381,1383],{"class":1063,"line":1098},[1061,1348,1102],{"class":1101},[1061,1350,1105],{"class":1067},[1061,1352,1109],{"class":1108},[1061,1354,1112],{"class":1067},[1061,1356,1115],{"class":1108},[1061,1358,1112],{"class":1067},[1061,1360,1120],{"class":1108},[1061,1362,1112],{"class":1067},[1061,1364,1125],{"class":1108},[1061,1366,1133],{"class":1067},[1061,1368,1137],{"class":1136},[1061,1370,1141],{"class":1140},[1061,1372,1145],{"class":1144},[1061,1374,1149],{"class":1148},[1061,1376,1152],{"class":1085},[1061,1378,1155],{"class":1089},[1061,1380,1152],{"class":1085},[1061,1382,1112],{"class":1067},[1061,1384,1162],{"class":1067},[1061,1386,1387,1390,1392,1394,1396,1398,1401,1403,1406,1409,1411],{"class":1063,"line":1165},[1061,1388,1389],{"class":1168},"  query",[1061,1391,1172],{"class":1067},[1061,1393,1105],{"class":1067},[1061,1395,1328],{"class":1148},[1061,1397,1112],{"class":1067},[1061,1399,1400],{"class":1168}," param2",[1061,1402,1172],{"class":1067},[1061,1404,1405],{"class":1085}," '",[1061,1407,1408],{"class":1089},"value2",[1061,1410,1152],{"class":1085},[1061,1412,1413],{"class":1067}," },\n",[1061,1415,1416,1418],{"class":1063,"line":1191},[1061,1417,1194],{"class":1067},[1061,1419,1197],{"class":1148},[1024,1421,1422,1423,1426],{},"上面的示例会生成 ",[1031,1424,1425],{},"https:\u002F\u002Fapi.nuxt.com\u002Fmodules?param1=value1&param2=value2","。",[1024,1428,1429,1430,1435],{},"你也可以使用 ",[1028,1431,1434],{"href":1432,"rel":1433},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fofetch#%EF%B8%8F-interceptors",[1306],"拦截器","：",[1052,1437,1439],{"className":1317,"code":1438,"filename":1319,"language":1090,"meta":354,"style":354},"const { data, status, error, refresh, clear } = await useFetch('\u002Fapi\u002Fauth\u002Flogin', {\n  onRequest ({ request, options }) {\n    \u002F\u002F 设置请求头\n    \u002F\u002F 注意这依赖 ofetch >= 1.4.0——你可能需要刷新你的 lockfile\n    options.headers.set('Authorization', '...')\n  },\n  onRequestError ({ request, options, error }) {\n    \u002F\u002F 处理请求错误\n  },\n  onResponse ({ request, response, options }) {\n    \u002F\u002F 处理响应数据\n    localStorage.setItem('token', response._data.token)\n  },\n  onResponseError ({ request, response, options }) {\n    \u002F\u002F 处理响应错误\n  },\n})\n",[1031,1440,1441,1486,1509,1515,1520,1556,1562,1584,1590,1595,1618,1624,1659,1664,1686,1692,1697],{"__ignoreMap":354},[1061,1442,1443,1445,1447,1449,1451,1453,1455,1457,1459,1461,1463,1465,1467,1469,1471,1473,1475,1477,1480,1482,1484],{"class":1063,"line":1064},[1061,1444,1102],{"class":1101},[1061,1446,1105],{"class":1067},[1061,1448,1109],{"class":1108},[1061,1450,1112],{"class":1067},[1061,1452,1115],{"class":1108},[1061,1454,1112],{"class":1067},[1061,1456,1120],{"class":1108},[1061,1458,1112],{"class":1067},[1061,1460,1125],{"class":1108},[1061,1462,1112],{"class":1067},[1061,1464,1130],{"class":1108},[1061,1466,1133],{"class":1067},[1061,1468,1137],{"class":1136},[1061,1470,1141],{"class":1140},[1061,1472,1145],{"class":1144},[1061,1474,1149],{"class":1148},[1061,1476,1152],{"class":1085},[1061,1478,1479],{"class":1089},"\u002Fapi\u002Fauth\u002Flogin",[1061,1481,1152],{"class":1085},[1061,1483,1112],{"class":1067},[1061,1485,1162],{"class":1067},[1061,1487,1488,1492,1495,1499,1501,1504,1507],{"class":1063,"line":1098},[1061,1489,1491],{"class":1490},"syA7L","  onRequest",[1061,1493,1494],{"class":1067}," ({",[1061,1496,1498],{"class":1497},"ssIVr"," request",[1061,1500,1112],{"class":1067},[1061,1502,1503],{"class":1497}," options",[1061,1505,1506],{"class":1067}," })",[1061,1508,1162],{"class":1067},[1061,1510,1511],{"class":1063,"line":1165},[1061,1512,1514],{"class":1513},"sZqJ9","    \u002F\u002F 设置请求头\n",[1061,1516,1517],{"class":1063,"line":1191},[1061,1518,1519],{"class":1513},"    \u002F\u002F 注意这依赖 ofetch >= 1.4.0——你可能需要刷新你的 lockfile\n",[1061,1521,1522,1525,1528,1531,1533,1536,1538,1540,1543,1545,1547,1549,1552,1554],{"class":1063,"line":1200},[1061,1523,1524],{"class":1148},"    options",[1061,1526,1527],{"class":1067},".",[1061,1529,1530],{"class":1148},"headers",[1061,1532,1527],{"class":1067},[1061,1534,1535],{"class":1144},"set",[1061,1537,1149],{"class":1168},[1061,1539,1152],{"class":1085},[1061,1541,1542],{"class":1089},"Authorization",[1061,1544,1152],{"class":1085},[1061,1546,1112],{"class":1067},[1061,1548,1405],{"class":1085},[1061,1550,1551],{"class":1089},"...",[1061,1553,1152],{"class":1085},[1061,1555,1197],{"class":1168},[1061,1557,1559],{"class":1063,"line":1558},6,[1061,1560,1561],{"class":1067},"  },\n",[1061,1563,1565,1568,1570,1572,1574,1576,1578,1580,1582],{"class":1063,"line":1564},7,[1061,1566,1567],{"class":1490},"  onRequestError",[1061,1569,1494],{"class":1067},[1061,1571,1498],{"class":1497},[1061,1573,1112],{"class":1067},[1061,1575,1503],{"class":1497},[1061,1577,1112],{"class":1067},[1061,1579,1120],{"class":1497},[1061,1581,1506],{"class":1067},[1061,1583,1162],{"class":1067},[1061,1585,1587],{"class":1063,"line":1586},8,[1061,1588,1589],{"class":1513},"    \u002F\u002F 处理请求错误\n",[1061,1591,1593],{"class":1063,"line":1592},9,[1061,1594,1561],{"class":1067},[1061,1596,1598,1601,1603,1605,1607,1610,1612,1614,1616],{"class":1063,"line":1597},10,[1061,1599,1600],{"class":1490},"  onResponse",[1061,1602,1494],{"class":1067},[1061,1604,1498],{"class":1497},[1061,1606,1112],{"class":1067},[1061,1608,1609],{"class":1497}," response",[1061,1611,1112],{"class":1067},[1061,1613,1503],{"class":1497},[1061,1615,1506],{"class":1067},[1061,1617,1162],{"class":1067},[1061,1619,1621],{"class":1063,"line":1620},11,[1061,1622,1623],{"class":1513},"    \u002F\u002F 处理响应数据\n",[1061,1625,1627,1630,1632,1635,1637,1639,1642,1644,1646,1648,1650,1653,1655,1657],{"class":1063,"line":1626},12,[1061,1628,1629],{"class":1148},"    localStorage",[1061,1631,1527],{"class":1067},[1061,1633,1634],{"class":1144},"setItem",[1061,1636,1149],{"class":1168},[1061,1638,1152],{"class":1085},[1061,1640,1641],{"class":1089},"token",[1061,1643,1152],{"class":1085},[1061,1645,1112],{"class":1067},[1061,1647,1609],{"class":1148},[1061,1649,1527],{"class":1067},[1061,1651,1652],{"class":1148},"_data",[1061,1654,1527],{"class":1067},[1061,1656,1641],{"class":1148},[1061,1658,1197],{"class":1168},[1061,1660,1662],{"class":1063,"line":1661},13,[1061,1663,1561],{"class":1067},[1061,1665,1667,1670,1672,1674,1676,1678,1680,1682,1684],{"class":1063,"line":1666},14,[1061,1668,1669],{"class":1490},"  onResponseError",[1061,1671,1494],{"class":1067},[1061,1673,1498],{"class":1497},[1061,1675,1112],{"class":1067},[1061,1677,1609],{"class":1497},[1061,1679,1112],{"class":1067},[1061,1681,1503],{"class":1497},[1061,1683,1506],{"class":1067},[1061,1685,1162],{"class":1067},[1061,1687,1689],{"class":1063,"line":1688},15,[1061,1690,1691],{"class":1513},"    \u002F\u002F 处理响应错误\n",[1061,1693,1695],{"class":1063,"line":1694},16,[1061,1696,1561],{"class":1067},[1061,1698,1700,1702],{"class":1063,"line":1699},17,[1061,1701,1194],{"class":1067},[1061,1703,1197],{"class":1148},[1705,1706,1708],"h3",{"id":1707},"响应式-key-与共享状态","响应式 Key 与共享状态",[1024,1710,1711],{},"你可以使用计算 ref 或普通 ref 作为 URL，从而实现动态数据获取，并在 URL 变化时自动更新：",[1052,1713,1716],{"className":1054,"code":1714,"filename":1715,"language":1057,"meta":354,"style":354},"\u003Cscript setup lang=\"ts\">\nconst route = useRoute()\nconst id = computed(() => route.params.id)\n\n\u002F\u002F 当路由改变且 id 更新时，数据会自动重新获取\nconst { data: post } = await useFetch(() => `\u002Fapi\u002Fposts\u002F${id.value}`)\n\u003C\u002Fscript>\n","app\u002Fpages\u002F[id].vue",[1031,1717,1718,1738,1753,1785,1791,1796,1846],{"__ignoreMap":354},[1061,1719,1720,1722,1724,1726,1728,1730,1732,1734,1736],{"class":1063,"line":1064},[1061,1721,1068],{"class":1067},[1061,1723,1072],{"class":1071},[1061,1725,1076],{"class":1075},[1061,1727,1079],{"class":1075},[1061,1729,1082],{"class":1067},[1061,1731,1086],{"class":1085},[1061,1733,1090],{"class":1089},[1061,1735,1086],{"class":1085},[1061,1737,1095],{"class":1067},[1061,1739,1740,1742,1745,1747,1750],{"class":1063,"line":1098},[1061,1741,1102],{"class":1101},[1061,1743,1744],{"class":1108}," route",[1061,1746,1137],{"class":1136},[1061,1748,1749],{"class":1144}," useRoute",[1061,1751,1752],{"class":1148},"()\n",[1061,1754,1755,1757,1760,1762,1765,1767,1770,1773,1775,1777,1780,1782],{"class":1063,"line":1165},[1061,1756,1102],{"class":1101},[1061,1758,1759],{"class":1108}," id",[1061,1761,1137],{"class":1136},[1061,1763,1764],{"class":1144}," computed",[1061,1766,1149],{"class":1148},[1061,1768,1769],{"class":1067},"()",[1061,1771,1772],{"class":1101}," =>",[1061,1774,1744],{"class":1148},[1061,1776,1527],{"class":1067},[1061,1778,1779],{"class":1148},"params",[1061,1781,1527],{"class":1067},[1061,1783,1784],{"class":1148},"id)\n",[1061,1786,1787],{"class":1063,"line":1191},[1061,1788,1790],{"emptyLinePlaceholder":1789},true,"\n",[1061,1792,1793],{"class":1063,"line":1200},[1061,1794,1795],{"class":1513},"\u002F\u002F 当路由改变且 id 更新时，数据会自动重新获取\n",[1061,1797,1798,1800,1802,1805,1807,1810,1812,1814,1816,1818,1820,1822,1824,1827,1830,1833,1836,1838,1841,1844],{"class":1063,"line":1558},[1061,1799,1102],{"class":1101},[1061,1801,1105],{"class":1067},[1061,1803,1109],{"class":1804},"sP6_D",[1061,1806,1172],{"class":1067},[1061,1808,1809],{"class":1108}," post",[1061,1811,1133],{"class":1067},[1061,1813,1137],{"class":1136},[1061,1815,1141],{"class":1140},[1061,1817,1145],{"class":1144},[1061,1819,1149],{"class":1148},[1061,1821,1769],{"class":1067},[1061,1823,1772],{"class":1101},[1061,1825,1826],{"class":1085}," `",[1061,1828,1829],{"class":1089},"\u002Fapi\u002Fposts\u002F",[1061,1831,1832],{"class":1085},"${",[1061,1834,1835],{"class":1148},"id",[1061,1837,1527],{"class":1085},[1061,1839,1840],{"class":1148},"value",[1061,1842,1843],{"class":1085},"}`",[1061,1845,1197],{"class":1148},[1061,1847,1848,1850,1852],{"class":1063,"line":1564},[1061,1849,1203],{"class":1067},[1061,1851,1072],{"class":1071},[1061,1853,1095],{"class":1067},[1024,1855,1856,1857,1233,1859,1863,1864,1270,1866,1033,1868,1870,1871,1435],{},"自动生成的 key 对每个调用位置是唯一的，因此在不同组件中以相同的 URL 和选项调用 ",[1031,1858,453],{},[1860,1861,1862],"strong",{},"不会","共享状态，每次调用都会执行自己的请求。同一个组件的多个实例会共享状态，因为它们使用相同的调用位置。要在不同组件间共享相同的 ",[1031,1865,1242],{},[1031,1867,1252],{},[1031,1869,1249],{}," ref，请为每个调用提供相同的显式 ",[1031,1872,1873],{},"key",[1875,1876],"code-group",{},[1052,1878,1881],{"className":1054,"code":1879,"filename":1880,"language":1057,"meta":354,"style":354},"\u003Cscript setup lang=\"ts\">\n\u002F\u002F 与 ComponentB 共享数据——只发出一个请求\nconst { data } = await useFetch('\u002Fapi\u002Frandom', { key: 'random' })\n\u003C\u002Fscript>\n","app\u002Fcomponents\u002FComponentA.vue",[1031,1882,1883,1903,1908,1953],{"__ignoreMap":354},[1061,1884,1885,1887,1889,1891,1893,1895,1897,1899,1901],{"class":1063,"line":1064},[1061,1886,1068],{"class":1067},[1061,1888,1072],{"class":1071},[1061,1890,1076],{"class":1075},[1061,1892,1079],{"class":1075},[1061,1894,1082],{"class":1067},[1061,1896,1086],{"class":1085},[1061,1898,1090],{"class":1089},[1061,1900,1086],{"class":1085},[1061,1902,1095],{"class":1067},[1061,1904,1905],{"class":1063,"line":1098},[1061,1906,1907],{"class":1513},"\u002F\u002F 与 ComponentB 共享数据——只发出一个请求\n",[1061,1909,1910,1912,1914,1916,1918,1920,1922,1924,1926,1928,1931,1933,1935,1937,1940,1942,1944,1947,1949,1951],{"class":1063,"line":1165},[1061,1911,1102],{"class":1101},[1061,1913,1105],{"class":1067},[1061,1915,1109],{"class":1108},[1061,1917,1133],{"class":1067},[1061,1919,1137],{"class":1136},[1061,1921,1141],{"class":1140},[1061,1923,1145],{"class":1144},[1061,1925,1149],{"class":1148},[1061,1927,1152],{"class":1085},[1061,1929,1930],{"class":1089},"\u002Fapi\u002Frandom",[1061,1932,1152],{"class":1085},[1061,1934,1112],{"class":1067},[1061,1936,1105],{"class":1067},[1061,1938,1939],{"class":1168}," key",[1061,1941,1172],{"class":1067},[1061,1943,1405],{"class":1085},[1061,1945,1946],{"class":1089},"random",[1061,1948,1152],{"class":1085},[1061,1950,1133],{"class":1067},[1061,1952,1197],{"class":1148},[1061,1954,1955,1957,1959],{"class":1063,"line":1191},[1061,1956,1203],{"class":1067},[1061,1958,1072],{"class":1071},[1061,1960,1095],{"class":1067},[1052,1962,1965],{"className":1054,"code":1963,"filename":1964,"language":1057,"meta":354,"style":354},"\u003Cscript setup lang=\"ts\">\n\u002F\u002F 与 ComponentA 共享数据——只发出一个请求\nconst { data } = await useFetch('\u002Fapi\u002Frandom', { key: 'random' })\n\u003C\u002Fscript>\n","app\u002Fcomponents\u002FComponentB.vue",[1031,1966,1967,1987,1992,2034],{"__ignoreMap":354},[1061,1968,1969,1971,1973,1975,1977,1979,1981,1983,1985],{"class":1063,"line":1064},[1061,1970,1068],{"class":1067},[1061,1972,1072],{"class":1071},[1061,1974,1076],{"class":1075},[1061,1976,1079],{"class":1075},[1061,1978,1082],{"class":1067},[1061,1980,1086],{"class":1085},[1061,1982,1090],{"class":1089},[1061,1984,1086],{"class":1085},[1061,1986,1095],{"class":1067},[1061,1988,1989],{"class":1063,"line":1098},[1061,1990,1991],{"class":1513},"\u002F\u002F 与 ComponentA 共享数据——只发出一个请求\n",[1061,1993,1994,1996,1998,2000,2002,2004,2006,2008,2010,2012,2014,2016,2018,2020,2022,2024,2026,2028,2030,2032],{"class":1063,"line":1165},[1061,1995,1102],{"class":1101},[1061,1997,1105],{"class":1067},[1061,1999,1109],{"class":1108},[1061,2001,1133],{"class":1067},[1061,2003,1137],{"class":1136},[1061,2005,1141],{"class":1140},[1061,2007,1145],{"class":1144},[1061,2009,1149],{"class":1148},[1061,2011,1152],{"class":1085},[1061,2013,1930],{"class":1089},[1061,2015,1152],{"class":1085},[1061,2017,1112],{"class":1067},[1061,2019,1105],{"class":1067},[1061,2021,1939],{"class":1168},[1061,2023,1172],{"class":1067},[1061,2025,1405],{"class":1085},[1061,2027,1946],{"class":1089},[1061,2029,1152],{"class":1085},[1061,2031,1133],{"class":1067},[1061,2033,1197],{"class":1148},[1061,2035,2036,2038,2040],{"class":1063,"line":1191},[1061,2037,1203],{"class":1067},[1061,2039,1072],{"class":1071},[1061,2041,1095],{"class":1067},[1024,2043,1172],{},[1209,2045],{},[1024,2047,1297,2048,2050,2051,2055],{},[1031,2049,453],{}," 创建的 keyed 状态可以通过 ",[1028,2052,2053],{"href":488},[1031,2054,489],{}," 在你的 Nuxt 应用中获取。\n:",[2057,2058],"warning",{},[1024,2060,2061,2063,2064,2066,2067,2071],{},[1031,2062,453],{}," 是编译器转换的保留函数名，因此你不应该把自己的函数命名为 ",[1031,2065,453],{},"。要创建带有预定义选项的自定义变体，请改用 ",[1028,2068,2069],{"href":1211},[1031,2070,425],{},"。\n:",[2057,2073],{},[1024,2075,2076,2077,2079,2080,2082,2083,2086],{},"如果你遇到从 ",[1031,2078,453],{}," 解构出的 ",[1031,2081,1242],{}," 变量返回的是字符串而不是 JSON 解析对象，请确保你的组件没有导入类似 ",[1031,2084,2085],{},"import { useFetch } from '@vueuse\u002Fcore"," 的语句。\n:",[2088,2089],"video-accordion",{"title":2090,"video-id":2091},"观看 Alexander Lichter 关于避免错误使用 useFetch 的视频","njsGVmcWviY",[2093,2094],"read-more",{"to":41},[1705,2096,2098],{"id":2097},"响应式-fetch-选项","响应式 Fetch 选项",[1024,2100,2101,2102,1270,2105,1033,2108,2113],{},"fetch 选项可以作为响应式提供，支持 ",[1031,2103,2104],{},"computed",[1031,2106,2107],{},"ref",[1028,2109,2112],{"href":2110,"rel":2111},"https:\u002F\u002Fvuejs.org\u002Fguide\u002Fessentials\u002Fcomputed",[1306],"computed getters","。当响应式 fetch 选项更新时，它会使用更新后的解析值触发重新获取。",[1052,2115,2117],{"className":1317,"code":2116,"filename":1319,"language":1090,"meta":354,"style":354},"const searchQuery = ref('initial')\nconst { data } = await useFetch('\u002Fapi\u002Fsearch', {\n  query: { q: searchQuery },\n})\n\u002F\u002F 触发重新获取：\u002Fapi\u002Fsearch?q=new%20search\nsearchQuery.value = 'new search'\n",[1031,2118,2119,2141,2170,2189,2195,2200],{"__ignoreMap":354},[1061,2120,2121,2123,2126,2128,2130,2132,2134,2137,2139],{"class":1063,"line":1064},[1061,2122,1102],{"class":1101},[1061,2124,2125],{"class":1108}," searchQuery",[1061,2127,1137],{"class":1136},[1061,2129,1333],{"class":1144},[1061,2131,1149],{"class":1148},[1061,2133,1152],{"class":1085},[1061,2135,2136],{"class":1089},"initial",[1061,2138,1152],{"class":1085},[1061,2140,1197],{"class":1148},[1061,2142,2143,2145,2147,2149,2151,2153,2155,2157,2159,2161,2164,2166,2168],{"class":1063,"line":1098},[1061,2144,1102],{"class":1101},[1061,2146,1105],{"class":1067},[1061,2148,1109],{"class":1108},[1061,2150,1133],{"class":1067},[1061,2152,1137],{"class":1136},[1061,2154,1141],{"class":1140},[1061,2156,1145],{"class":1144},[1061,2158,1149],{"class":1148},[1061,2160,1152],{"class":1085},[1061,2162,2163],{"class":1089},"\u002Fapi\u002Fsearch",[1061,2165,1152],{"class":1085},[1061,2167,1112],{"class":1067},[1061,2169,1162],{"class":1067},[1061,2171,2172,2174,2176,2178,2181,2183,2186],{"class":1063,"line":1165},[1061,2173,1389],{"class":1168},[1061,2175,1172],{"class":1067},[1061,2177,1105],{"class":1067},[1061,2179,2180],{"class":1168}," q",[1061,2182,1172],{"class":1067},[1061,2184,2185],{"class":1148}," searchQuery ",[1061,2187,2188],{"class":1067},"},\n",[1061,2190,2191,2193],{"class":1063,"line":1191},[1061,2192,1194],{"class":1067},[1061,2194,1197],{"class":1148},[1061,2196,2197],{"class":1063,"line":1200},[1061,2198,2199],{"class":1513},"\u002F\u002F 触发重新获取：\u002Fapi\u002Fsearch?q=new%20search\n",[1061,2201,2202,2205,2207,2210,2212,2214,2217],{"class":1063,"line":1558},[1061,2203,2204],{"class":1148},"searchQuery",[1061,2206,1527],{"class":1067},[1061,2208,2209],{"class":1148},"value ",[1061,2211,1082],{"class":1136},[1061,2213,1405],{"class":1085},[1061,2215,2216],{"class":1089},"new search",[1061,2218,2219],{"class":1085},"'\n",[1024,2221,2222,2223,2226],{},"如果需要，你可以使用 ",[1031,2224,2225],{},"watch: false"," 关闭此行为：",[1052,2228,2230],{"className":1317,"code":2229,"filename":1319,"language":1090,"meta":354,"style":354},"const searchQuery = ref('initial')\nconst { data } = await useFetch('\u002Fapi\u002Fsearch', {\n  query: { q: searchQuery },\n  watch: false,\n})\n\u002F\u002F 不会触发重新获取\nsearchQuery.value = 'new search'\n",[1031,2231,2232,2252,2280,2296,2309,2315,2320],{"__ignoreMap":354},[1061,2233,2234,2236,2238,2240,2242,2244,2246,2248,2250],{"class":1063,"line":1064},[1061,2235,1102],{"class":1101},[1061,2237,2125],{"class":1108},[1061,2239,1137],{"class":1136},[1061,2241,1333],{"class":1144},[1061,2243,1149],{"class":1148},[1061,2245,1152],{"class":1085},[1061,2247,2136],{"class":1089},[1061,2249,1152],{"class":1085},[1061,2251,1197],{"class":1148},[1061,2253,2254,2256,2258,2260,2262,2264,2266,2268,2270,2272,2274,2276,2278],{"class":1063,"line":1098},[1061,2255,1102],{"class":1101},[1061,2257,1105],{"class":1067},[1061,2259,1109],{"class":1108},[1061,2261,1133],{"class":1067},[1061,2263,1137],{"class":1136},[1061,2265,1141],{"class":1140},[1061,2267,1145],{"class":1144},[1061,2269,1149],{"class":1148},[1061,2271,1152],{"class":1085},[1061,2273,2163],{"class":1089},[1061,2275,1152],{"class":1085},[1061,2277,1112],{"class":1067},[1061,2279,1162],{"class":1067},[1061,2281,2282,2284,2286,2288,2290,2292,2294],{"class":1063,"line":1165},[1061,2283,1389],{"class":1168},[1061,2285,1172],{"class":1067},[1061,2287,1105],{"class":1067},[1061,2289,2180],{"class":1168},[1061,2291,1172],{"class":1067},[1061,2293,2185],{"class":1148},[1061,2295,2188],{"class":1067},[1061,2297,2298,2301,2303,2307],{"class":1063,"line":1191},[1061,2299,2300],{"class":1168},"  watch",[1061,2302,1172],{"class":1067},[1061,2304,2306],{"class":2305},"si1Qm"," false",[1061,2308,1188],{"class":1067},[1061,2310,2311,2313],{"class":1063,"line":1200},[1061,2312,1194],{"class":1067},[1061,2314,1197],{"class":1148},[1061,2316,2317],{"class":1063,"line":1558},[1061,2318,2319],{"class":1513},"\u002F\u002F 不会触发重新获取\n",[1061,2321,2322,2324,2326,2328,2330,2332,2334],{"class":1063,"line":1564},[1061,2323,2204],{"class":1148},[1061,2325,1527],{"class":1067},[1061,2327,2209],{"class":1148},[1061,2329,1082],{"class":1136},[1061,2331,1405],{"class":1085},[1061,2333,2216],{"class":1089},[1061,2335,2219],{"class":1085},[1048,2337,2338],{"id":2338},"类型",[1052,2340,2343],{"className":1317,"code":2341,"filename":2342,"language":1090,"meta":354,"style":354},"export function useFetch\u003CResT, ErrorT = NuxtError\u003Cunknown>, DataT = ResT> (\n  url: string | Request | Ref\u003Cstring | Request> | (() => string | Request),\n  options?: UseFetchOptions\u003CResT, DataT>,\n): AsyncData\u003CDataT, ErrorT> & Promise\u003CAsyncData\u003CDataT, ErrorT>>\n\ntype UseFetchOptions\u003CResT, DataT = ResT> = {\n  key?: MaybeRefOrGetter\u003Cstring>\n  method?: MaybeRefOrGetter\u003Cstring>\n  query?: MaybeRefOrGetter\u003CSearchParams>\n  params?: MaybeRefOrGetter\u003CSearchParams>\n  body?: MaybeRefOrGetter\u003CRequestInit['body'] | Record\u003Cstring, any>>\n  headers?: MaybeRefOrGetter\u003CRecord\u003Cstring, string> | [key: string, value: string][] | Headers>\n  baseURL?: MaybeRefOrGetter\u003Cstring>\n  cache?: false | 'default' | 'force-cache' | 'no-cache' | 'no-store' | 'only-if-cached' | 'reload'\n  server?: boolean\n  lazy?: boolean\n  immediate?: boolean\n  getCachedData?: (key: string, nuxtApp: NuxtApp, ctx: AsyncDataRequestContext) => DataT | undefined\n  deep?: boolean\n  dedupe?: 'cancel' | 'defer'\n  timeout?: number\n  enabled?: MaybeRefOrGetter\u003Cboolean>\n  default?: () => DataT | Ref\u003CDataT>\n  transform?: (input: ResT) => DataT | Promise\u003CDataT>\n  pick?: string[]\n  $fetch?: typeof globalThis.$fetch\n  watch?: MultiWatchSources | false\n}\n\ntype AsyncDataRequestContext = {\n  \u002F** 该数据请求的原因 *\u002F\n  cause: 'initial' | 'refresh:manual' | 'refresh:hook' | 'watch'\n}\n\ntype AsyncData\u003CDataT, ErrorT> = {\n  data: Ref\u003CDataT | undefined>\n  pending: Ref\u003Cboolean>\n  refresh: (opts?: AsyncDataExecuteOptions) => Promise\u003Cvoid>\n  execute: (opts?: AsyncDataExecuteOptions) => Promise\u003Cvoid>\n  clear: () => void\n  error: Ref\u003CErrorT | undefined>\n  status: Ref\u003CAsyncDataRequestStatus>\n}\n\ninterface AsyncDataExecuteOptions {\n  dedupe?: 'cancel' | 'defer'\n  timeout?: number\n  signal?: AbortSignal\n}\n\ntype AsyncDataRequestStatus = 'idle' | 'pending' | 'success' | 'error'\n","Signature",[1031,2344,2345,2394,2446,2468,2510,2514,2539,2555,2570,2585,2600,2644,2697,2712,2775,2785,2794,2803,2850,2860,2884,2895,2912,2937,2970,2982,3001,3016,3022,3027,3038,3044,3085,3090,3095,3116,3137,3153,3184,3212,3227,3248,3265,3270,3275,3285,3306,3315,3326,3331,3336],{"__ignoreMap":354},[1061,2346,2347,2350,2353,2355,2357,2361,2363,2366,2368,2371,2373,2377,2380,2383,2385,2388,2391],{"class":1063,"line":1064},[1061,2348,2349],{"class":1140},"export",[1061,2351,2352],{"class":1101}," function",[1061,2354,1145],{"class":1144},[1061,2356,1068],{"class":1067},[1061,2358,2360],{"class":2359},"sJK67","ResT",[1061,2362,1112],{"class":1067},[1061,2364,2365],{"class":2359}," ErrorT",[1061,2367,1137],{"class":1136},[1061,2369,2370],{"class":2359}," NuxtError",[1061,2372,1068],{"class":1067},[1061,2374,2376],{"class":2375},"seQRr","unknown",[1061,2378,2379],{"class":1067},">,",[1061,2381,2382],{"class":2359}," DataT",[1061,2384,1137],{"class":1136},[1061,2386,2387],{"class":2359}," ResT",[1061,2389,2390],{"class":1067},">",[1061,2392,2393],{"class":1067}," (\n",[1061,2395,2396,2399,2401,2404,2407,2410,2412,2415,2417,2420,2422,2424,2426,2428,2431,2433,2435,2437,2439,2441,2444],{"class":1063,"line":1098},[1061,2397,2398],{"class":1497},"  url",[1061,2400,1172],{"class":1136},[1061,2402,2403],{"class":2375}," string",[1061,2405,2406],{"class":1136}," |",[1061,2408,2409],{"class":2359}," Request",[1061,2411,2406],{"class":1136},[1061,2413,2414],{"class":2359}," Ref",[1061,2416,1068],{"class":1067},[1061,2418,2419],{"class":2375},"string",[1061,2421,2406],{"class":1136},[1061,2423,2409],{"class":2359},[1061,2425,2390],{"class":1067},[1061,2427,2406],{"class":1136},[1061,2429,2430],{"class":1148}," (",[1061,2432,1769],{"class":1067},[1061,2434,1772],{"class":1101},[1061,2436,2403],{"class":2375},[1061,2438,2406],{"class":1136},[1061,2440,2409],{"class":2359},[1061,2442,2443],{"class":1148},")",[1061,2445,1188],{"class":1067},[1061,2447,2448,2451,2454,2457,2459,2461,2463,2465],{"class":1063,"line":1165},[1061,2449,2450],{"class":1497},"  options",[1061,2452,2453],{"class":1136},"?:",[1061,2455,2456],{"class":2359}," UseFetchOptions",[1061,2458,1068],{"class":1067},[1061,2460,2360],{"class":2359},[1061,2462,1112],{"class":1067},[1061,2464,2382],{"class":2359},[1061,2466,2467],{"class":1067},">,\n",[1061,2469,2470,2472,2474,2477,2479,2482,2484,2486,2488,2491,2494,2496,2499,2501,2503,2505,2507],{"class":1063,"line":1191},[1061,2471,2443],{"class":1067},[1061,2473,1172],{"class":1136},[1061,2475,2476],{"class":2359}," AsyncData",[1061,2478,1068],{"class":1067},[1061,2480,2481],{"class":2359},"DataT",[1061,2483,1112],{"class":1067},[1061,2485,2365],{"class":2359},[1061,2487,2390],{"class":1067},[1061,2489,2490],{"class":1136}," &",[1061,2492,2493],{"class":2359}," Promise",[1061,2495,1068],{"class":1067},[1061,2497,2498],{"class":2359},"AsyncData",[1061,2500,1068],{"class":1067},[1061,2502,2481],{"class":2359},[1061,2504,1112],{"class":1067},[1061,2506,2365],{"class":2359},[1061,2508,2509],{"class":1067},">>\n",[1061,2511,2512],{"class":1063,"line":1200},[1061,2513,1790],{"emptyLinePlaceholder":1789},[1061,2515,2516,2519,2521,2523,2525,2527,2529,2531,2533,2535,2537],{"class":1063,"line":1558},[1061,2517,2518],{"class":1101},"type",[1061,2520,2456],{"class":2359},[1061,2522,1068],{"class":1067},[1061,2524,2360],{"class":2359},[1061,2526,1112],{"class":1067},[1061,2528,2382],{"class":2359},[1061,2530,1137],{"class":1136},[1061,2532,2387],{"class":2359},[1061,2534,2390],{"class":1067},[1061,2536,1137],{"class":1136},[1061,2538,1162],{"class":1067},[1061,2540,2541,2544,2546,2549,2551,2553],{"class":1063,"line":1564},[1061,2542,2543],{"class":1804},"  key",[1061,2545,2453],{"class":1136},[1061,2547,2548],{"class":2359}," MaybeRefOrGetter",[1061,2550,1068],{"class":1067},[1061,2552,2419],{"class":2375},[1061,2554,1095],{"class":1067},[1061,2556,2557,2560,2562,2564,2566,2568],{"class":1063,"line":1586},[1061,2558,2559],{"class":1804},"  method",[1061,2561,2453],{"class":1136},[1061,2563,2548],{"class":2359},[1061,2565,1068],{"class":1067},[1061,2567,2419],{"class":2375},[1061,2569,1095],{"class":1067},[1061,2571,2572,2574,2576,2578,2580,2583],{"class":1063,"line":1592},[1061,2573,1389],{"class":1804},[1061,2575,2453],{"class":1136},[1061,2577,2548],{"class":2359},[1061,2579,1068],{"class":1067},[1061,2581,2582],{"class":2359},"SearchParams",[1061,2584,1095],{"class":1067},[1061,2586,2587,2590,2592,2594,2596,2598],{"class":1063,"line":1597},[1061,2588,2589],{"class":1804},"  params",[1061,2591,2453],{"class":1136},[1061,2593,2548],{"class":2359},[1061,2595,1068],{"class":1067},[1061,2597,2582],{"class":2359},[1061,2599,1095],{"class":1067},[1061,2601,2602,2605,2607,2609,2611,2614,2617,2619,2622,2624,2627,2630,2633,2635,2637,2639,2642],{"class":1063,"line":1620},[1061,2603,2604],{"class":1804},"  body",[1061,2606,2453],{"class":1136},[1061,2608,2548],{"class":2359},[1061,2610,1068],{"class":1067},[1061,2612,2613],{"class":2359},"RequestInit",[1061,2615,2616],{"class":1148},"[",[1061,2618,1152],{"class":1085},[1061,2620,2621],{"class":1089},"body",[1061,2623,1152],{"class":1085},[1061,2625,2626],{"class":1148},"] ",[1061,2628,2629],{"class":1136},"|",[1061,2631,2632],{"class":2359}," Record",[1061,2634,1068],{"class":1067},[1061,2636,2419],{"class":2375},[1061,2638,1112],{"class":1067},[1061,2640,2641],{"class":2375}," any",[1061,2643,2509],{"class":1067},[1061,2645,2646,2649,2651,2653,2655,2658,2660,2662,2664,2666,2668,2670,2672,2674,2676,2678,2680,2683,2685,2687,2690,2692,2695],{"class":1063,"line":1626},[1061,2647,2648],{"class":1804},"  headers",[1061,2650,2453],{"class":1136},[1061,2652,2548],{"class":2359},[1061,2654,1068],{"class":1067},[1061,2656,2657],{"class":2359},"Record",[1061,2659,1068],{"class":1067},[1061,2661,2419],{"class":2375},[1061,2663,1112],{"class":1067},[1061,2665,2403],{"class":2375},[1061,2667,2390],{"class":1067},[1061,2669,2406],{"class":1136},[1061,2671,1175],{"class":1148},[1061,2673,1873],{"class":2359},[1061,2675,1172],{"class":1067},[1061,2677,2403],{"class":2375},[1061,2679,1112],{"class":1067},[1061,2681,2682],{"class":2359}," value",[1061,2684,1172],{"class":1067},[1061,2686,2403],{"class":2375},[1061,2688,2689],{"class":1148},"][] ",[1061,2691,2629],{"class":1136},[1061,2693,2694],{"class":2359}," Headers",[1061,2696,1095],{"class":1067},[1061,2698,2699,2702,2704,2706,2708,2710],{"class":1063,"line":1661},[1061,2700,2701],{"class":1804},"  baseURL",[1061,2703,2453],{"class":1136},[1061,2705,2548],{"class":2359},[1061,2707,1068],{"class":1067},[1061,2709,2419],{"class":2375},[1061,2711,1095],{"class":1067},[1061,2713,2714,2717,2719,2721,2723,2725,2728,2730,2732,2734,2737,2739,2741,2743,2746,2748,2750,2752,2755,2757,2759,2761,2764,2766,2768,2770,2773],{"class":1063,"line":1666},[1061,2715,2716],{"class":1804},"  cache",[1061,2718,2453],{"class":1136},[1061,2720,2306],{"class":2375},[1061,2722,2406],{"class":1136},[1061,2724,1405],{"class":1085},[1061,2726,2727],{"class":1089},"default",[1061,2729,1152],{"class":1085},[1061,2731,2406],{"class":1136},[1061,2733,1405],{"class":1085},[1061,2735,2736],{"class":1089},"force-cache",[1061,2738,1152],{"class":1085},[1061,2740,2406],{"class":1136},[1061,2742,1405],{"class":1085},[1061,2744,2745],{"class":1089},"no-cache",[1061,2747,1152],{"class":1085},[1061,2749,2406],{"class":1136},[1061,2751,1405],{"class":1085},[1061,2753,2754],{"class":1089},"no-store",[1061,2756,1152],{"class":1085},[1061,2758,2406],{"class":1136},[1061,2760,1405],{"class":1085},[1061,2762,2763],{"class":1089},"only-if-cached",[1061,2765,1152],{"class":1085},[1061,2767,2406],{"class":1136},[1061,2769,1405],{"class":1085},[1061,2771,2772],{"class":1089},"reload",[1061,2774,2219],{"class":1085},[1061,2776,2777,2780,2782],{"class":1063,"line":1688},[1061,2778,2779],{"class":1804},"  server",[1061,2781,2453],{"class":1136},[1061,2783,2784],{"class":2375}," boolean\n",[1061,2786,2787,2790,2792],{"class":1063,"line":1694},[1061,2788,2789],{"class":1804},"  lazy",[1061,2791,2453],{"class":1136},[1061,2793,2784],{"class":2375},[1061,2795,2796,2799,2801],{"class":1063,"line":1699},[1061,2797,2798],{"class":1804},"  immediate",[1061,2800,2453],{"class":1136},[1061,2802,2784],{"class":2375},[1061,2804,2806,2809,2811,2813,2815,2817,2819,2821,2824,2826,2829,2831,2834,2836,2839,2841,2843,2845,2847],{"class":1063,"line":2805},18,[1061,2807,2808],{"class":1490},"  getCachedData",[1061,2810,2453],{"class":1136},[1061,2812,2430],{"class":1067},[1061,2814,1873],{"class":1497},[1061,2816,1172],{"class":1136},[1061,2818,2403],{"class":2375},[1061,2820,1112],{"class":1067},[1061,2822,2823],{"class":1497}," nuxtApp",[1061,2825,1172],{"class":1136},[1061,2827,2828],{"class":2359}," NuxtApp",[1061,2830,1112],{"class":1067},[1061,2832,2833],{"class":1497}," ctx",[1061,2835,1172],{"class":1136},[1061,2837,2838],{"class":2359}," AsyncDataRequestContext",[1061,2840,2443],{"class":1067},[1061,2842,1772],{"class":1101},[1061,2844,2382],{"class":2359},[1061,2846,2406],{"class":1136},[1061,2848,2849],{"class":2375}," undefined\n",[1061,2851,2853,2856,2858],{"class":1063,"line":2852},19,[1061,2854,2855],{"class":1804},"  deep",[1061,2857,2453],{"class":1136},[1061,2859,2784],{"class":2375},[1061,2861,2863,2866,2868,2870,2873,2875,2877,2879,2882],{"class":1063,"line":2862},20,[1061,2864,2865],{"class":1804},"  dedupe",[1061,2867,2453],{"class":1136},[1061,2869,1405],{"class":1085},[1061,2871,2872],{"class":1089},"cancel",[1061,2874,1152],{"class":1085},[1061,2876,2406],{"class":1136},[1061,2878,1405],{"class":1085},[1061,2880,2881],{"class":1089},"defer",[1061,2883,2219],{"class":1085},[1061,2885,2887,2890,2892],{"class":1063,"line":2886},21,[1061,2888,2889],{"class":1804},"  timeout",[1061,2891,2453],{"class":1136},[1061,2893,2894],{"class":2375}," number\n",[1061,2896,2898,2901,2903,2905,2907,2910],{"class":1063,"line":2897},22,[1061,2899,2900],{"class":1804},"  enabled",[1061,2902,2453],{"class":1136},[1061,2904,2548],{"class":2359},[1061,2906,1068],{"class":1067},[1061,2908,2909],{"class":2375},"boolean",[1061,2911,1095],{"class":1067},[1061,2913,2915,2918,2920,2923,2925,2927,2929,2931,2933,2935],{"class":1063,"line":2914},23,[1061,2916,2917],{"class":1490},"  default",[1061,2919,2453],{"class":1136},[1061,2921,2922],{"class":1067}," ()",[1061,2924,1772],{"class":1101},[1061,2926,2382],{"class":2359},[1061,2928,2406],{"class":1136},[1061,2930,2414],{"class":2359},[1061,2932,1068],{"class":1067},[1061,2934,2481],{"class":2359},[1061,2936,1095],{"class":1067},[1061,2938,2940,2943,2945,2947,2950,2952,2954,2956,2958,2960,2962,2964,2966,2968],{"class":1063,"line":2939},24,[1061,2941,2942],{"class":1490},"  transform",[1061,2944,2453],{"class":1136},[1061,2946,2430],{"class":1067},[1061,2948,2949],{"class":1497},"input",[1061,2951,1172],{"class":1136},[1061,2953,2387],{"class":2359},[1061,2955,2443],{"class":1067},[1061,2957,1772],{"class":1101},[1061,2959,2382],{"class":2359},[1061,2961,2406],{"class":1136},[1061,2963,2493],{"class":2359},[1061,2965,1068],{"class":1067},[1061,2967,2481],{"class":2359},[1061,2969,1095],{"class":1067},[1061,2971,2973,2975,2977,2979],{"class":1063,"line":2972},25,[1061,2974,1169],{"class":1804},[1061,2976,2453],{"class":1136},[1061,2978,2403],{"class":2375},[1061,2980,2981],{"class":1148},"[]\n",[1061,2983,2985,2988,2990,2993,2996,2998],{"class":1063,"line":2984},26,[1061,2986,2987],{"class":1804},"  $fetch",[1061,2989,2453],{"class":1136},[1061,2991,2992],{"class":1136}," typeof",[1061,2994,2995],{"class":1148}," globalThis",[1061,2997,1527],{"class":1067},[1061,2999,3000],{"class":1148},"$fetch\n",[1061,3002,3004,3006,3008,3011,3013],{"class":1063,"line":3003},27,[1061,3005,2300],{"class":1804},[1061,3007,2453],{"class":1136},[1061,3009,3010],{"class":2359}," MultiWatchSources",[1061,3012,2406],{"class":1136},[1061,3014,3015],{"class":2375}," false\n",[1061,3017,3019],{"class":1063,"line":3018},28,[1061,3020,3021],{"class":1067},"}\n",[1061,3023,3025],{"class":1063,"line":3024},29,[1061,3026,1790],{"emptyLinePlaceholder":1789},[1061,3028,3030,3032,3034,3036],{"class":1063,"line":3029},30,[1061,3031,2518],{"class":1101},[1061,3033,2838],{"class":2359},[1061,3035,1137],{"class":1136},[1061,3037,1162],{"class":1067},[1061,3039,3041],{"class":1063,"line":3040},31,[1061,3042,3043],{"class":1513},"  \u002F** 该数据请求的原因 *\u002F\n",[1061,3045,3047,3050,3052,3054,3056,3058,3060,3062,3065,3067,3069,3071,3074,3076,3078,3080,3083],{"class":1063,"line":3046},32,[1061,3048,3049],{"class":1804},"  cause",[1061,3051,1172],{"class":1136},[1061,3053,1405],{"class":1085},[1061,3055,2136],{"class":1089},[1061,3057,1152],{"class":1085},[1061,3059,2406],{"class":1136},[1061,3061,1405],{"class":1085},[1061,3063,3064],{"class":1089},"refresh:manual",[1061,3066,1152],{"class":1085},[1061,3068,2406],{"class":1136},[1061,3070,1405],{"class":1085},[1061,3072,3073],{"class":1089},"refresh:hook",[1061,3075,1152],{"class":1085},[1061,3077,2406],{"class":1136},[1061,3079,1405],{"class":1085},[1061,3081,3082],{"class":1089},"watch",[1061,3084,2219],{"class":1085},[1061,3086,3088],{"class":1063,"line":3087},33,[1061,3089,3021],{"class":1067},[1061,3091,3093],{"class":1063,"line":3092},34,[1061,3094,1790],{"emptyLinePlaceholder":1789},[1061,3096,3098,3100,3102,3104,3106,3108,3110,3112,3114],{"class":1063,"line":3097},35,[1061,3099,2518],{"class":1101},[1061,3101,2476],{"class":2359},[1061,3103,1068],{"class":1067},[1061,3105,2481],{"class":2359},[1061,3107,1112],{"class":1067},[1061,3109,2365],{"class":2359},[1061,3111,2390],{"class":1067},[1061,3113,1137],{"class":1136},[1061,3115,1162],{"class":1067},[1061,3117,3119,3122,3124,3126,3128,3130,3132,3135],{"class":1063,"line":3118},36,[1061,3120,3121],{"class":1804},"  data",[1061,3123,1172],{"class":1136},[1061,3125,2414],{"class":2359},[1061,3127,1068],{"class":1067},[1061,3129,2481],{"class":2359},[1061,3131,2406],{"class":1136},[1061,3133,3134],{"class":2375}," undefined",[1061,3136,1095],{"class":1067},[1061,3138,3140,3143,3145,3147,3149,3151],{"class":1063,"line":3139},37,[1061,3141,3142],{"class":1804},"  pending",[1061,3144,1172],{"class":1136},[1061,3146,2414],{"class":2359},[1061,3148,1068],{"class":1067},[1061,3150,2909],{"class":2375},[1061,3152,1095],{"class":1067},[1061,3154,3156,3159,3161,3163,3166,3168,3171,3173,3175,3177,3179,3182],{"class":1063,"line":3155},38,[1061,3157,3158],{"class":1490},"  refresh",[1061,3160,1172],{"class":1136},[1061,3162,2430],{"class":1067},[1061,3164,3165],{"class":1497},"opts",[1061,3167,2453],{"class":1136},[1061,3169,3170],{"class":2359}," AsyncDataExecuteOptions",[1061,3172,2443],{"class":1067},[1061,3174,1772],{"class":1101},[1061,3176,2493],{"class":2359},[1061,3178,1068],{"class":1067},[1061,3180,3181],{"class":2375},"void",[1061,3183,1095],{"class":1067},[1061,3185,3187,3190,3192,3194,3196,3198,3200,3202,3204,3206,3208,3210],{"class":1063,"line":3186},39,[1061,3188,3189],{"class":1490},"  execute",[1061,3191,1172],{"class":1136},[1061,3193,2430],{"class":1067},[1061,3195,3165],{"class":1497},[1061,3197,2453],{"class":1136},[1061,3199,3170],{"class":2359},[1061,3201,2443],{"class":1067},[1061,3203,1772],{"class":1101},[1061,3205,2493],{"class":2359},[1061,3207,1068],{"class":1067},[1061,3209,3181],{"class":2375},[1061,3211,1095],{"class":1067},[1061,3213,3215,3218,3220,3222,3224],{"class":1063,"line":3214},40,[1061,3216,3217],{"class":1490},"  clear",[1061,3219,1172],{"class":1136},[1061,3221,2922],{"class":1067},[1061,3223,1772],{"class":1101},[1061,3225,3226],{"class":2375}," void\n",[1061,3228,3230,3233,3235,3237,3239,3242,3244,3246],{"class":1063,"line":3229},41,[1061,3231,3232],{"class":1804},"  error",[1061,3234,1172],{"class":1136},[1061,3236,2414],{"class":2359},[1061,3238,1068],{"class":1067},[1061,3240,3241],{"class":2359},"ErrorT",[1061,3243,2406],{"class":1136},[1061,3245,3134],{"class":2375},[1061,3247,1095],{"class":1067},[1061,3249,3251,3254,3256,3258,3260,3263],{"class":1063,"line":3250},42,[1061,3252,3253],{"class":1804},"  status",[1061,3255,1172],{"class":1136},[1061,3257,2414],{"class":2359},[1061,3259,1068],{"class":1067},[1061,3261,3262],{"class":2359},"AsyncDataRequestStatus",[1061,3264,1095],{"class":1067},[1061,3266,3268],{"class":1063,"line":3267},43,[1061,3269,3021],{"class":1067},[1061,3271,3273],{"class":1063,"line":3272},44,[1061,3274,1790],{"emptyLinePlaceholder":1789},[1061,3276,3278,3281,3283],{"class":1063,"line":3277},45,[1061,3279,3280],{"class":1101},"interface",[1061,3282,3170],{"class":2359},[1061,3284,1162],{"class":1067},[1061,3286,3288,3290,3292,3294,3296,3298,3300,3302,3304],{"class":1063,"line":3287},46,[1061,3289,2865],{"class":1804},[1061,3291,2453],{"class":1136},[1061,3293,1405],{"class":1085},[1061,3295,2872],{"class":1089},[1061,3297,1152],{"class":1085},[1061,3299,2406],{"class":1136},[1061,3301,1405],{"class":1085},[1061,3303,2881],{"class":1089},[1061,3305,2219],{"class":1085},[1061,3307,3309,3311,3313],{"class":1063,"line":3308},47,[1061,3310,2889],{"class":1804},[1061,3312,2453],{"class":1136},[1061,3314,2894],{"class":2375},[1061,3316,3318,3321,3323],{"class":1063,"line":3317},48,[1061,3319,3320],{"class":1804},"  signal",[1061,3322,2453],{"class":1136},[1061,3324,3325],{"class":2359}," AbortSignal\n",[1061,3327,3329],{"class":1063,"line":3328},49,[1061,3330,3021],{"class":1067},[1061,3332,3334],{"class":1063,"line":3333},50,[1061,3335,1790],{"emptyLinePlaceholder":1789},[1061,3337,3339,3341,3344,3346,3348,3351,3353,3355,3357,3360,3362,3364,3366,3369,3371,3373,3375,3377],{"class":1063,"line":3338},51,[1061,3340,2518],{"class":1101},[1061,3342,3343],{"class":2359}," AsyncDataRequestStatus",[1061,3345,1137],{"class":1136},[1061,3347,1405],{"class":1085},[1061,3349,3350],{"class":1089},"idle",[1061,3352,1152],{"class":1085},[1061,3354,2406],{"class":1136},[1061,3356,1405],{"class":1085},[1061,3358,3359],{"class":1089},"pending",[1061,3361,1152],{"class":1085},[1061,3363,2406],{"class":1136},[1061,3365,1405],{"class":1085},[1061,3367,3368],{"class":1089},"success",[1061,3370,1152],{"class":1085},[1061,3372,2406],{"class":1136},[1061,3374,1405],{"class":1085},[1061,3376,1252],{"class":1089},[1061,3378,2219],{"class":1085},[1048,3380,3381],{"id":3381},"参数",[3383,3384,3385,3395],"ul",{},[3386,3387,3388,2430,3391,3394],"li",{},[1031,3389,3390],{},"URL",[1031,3392,3393],{},"string | Request | Ref\u003Cstring | Request> | () => string | Request",")：要获取的 URL 或请求。可以是字符串、Request 对象、Vue ref，或返回字符串\u002FRequest 的函数。支持动态端点的响应式。",[3386,3396,3397,3400,3401,3404,3405,3411,3412,3414],{},[1031,3398,3399],{},"options","（对象）：fetch 请求的配置。继承自 ",[1028,3402,1307],{"href":1304,"rel":3403},[1306]," 选项和 ",[1028,3406,3408],{"href":3407},"\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-async-data#parameters",[1031,3409,3410],{},"AsyncDataOptions","。所有选项可以是静态值、",[1031,3413,2107],{}," 或计算值。",[3416,3417,3418,3436],"table",{},[3419,3420,3421],"thead",{},[3422,3423,3424,3428,3430,3433],"tr",{},[3425,3426,3427],"th",{},"选项",[3425,3429,2338],{},[3425,3431,3432],{},"默认值",[3425,3434,3435],{},"描述",[3437,3438,3439,3457,3476,3495,3512,3528,3544,3559,3581,3599,3617,3635,3654,3683,3700,3721,3738,3757,3781,3805,3844],"tbody",{},[3422,3440,3441,3446,3451,3454],{},[3442,3443,3444],"td",{},[1031,3445,1873],{},[3442,3447,3448],{},[1031,3449,3450],{},"MaybeRefOrGetter\u003Cstring>",[3442,3452,3453],{},"自动生成",[3442,3455,3456],{},"用于去重的唯一 key。如果未提供，则从 URL、选项和源代码中的调用位置生成。",[3422,3458,3459,3464,3468,3473],{},[3442,3460,3461],{},[1031,3462,3463],{},"method",[3442,3465,3466],{},[1031,3467,3450],{},[3442,3469,3470],{},[1031,3471,3472],{},"'GET'",[3442,3474,3475],{},"HTTP 请求方法。",[3422,3477,3478,3482,3487,3490],{},[3442,3479,3480],{},[1031,3481,1300],{},[3442,3483,3484],{},[1031,3485,3486],{},"MaybeRefOrGetter\u003CSearchParams>",[3442,3488,3489],{},"-",[3442,3491,3492,3493,1426],{},"要附加到 URL 的查询\u002F搜索参数。别名：",[1031,3494,1779],{},[3422,3496,3497,3501,3505,3507],{},[3442,3498,3499],{},[1031,3500,1779],{},[3442,3502,3503],{},[1031,3504,3486],{},[3442,3506,3489],{},[3442,3508,3509,3511],{},[1031,3510,1300],{}," 的别名。",[3422,3513,3514,3518,3523,3525],{},[3442,3515,3516],{},[1031,3517,2621],{},[3442,3519,3520],{},[1031,3521,3522],{},"MaybeRefOrGetter\u003CRequestInit['body'] | Record\u003Cstring, any>>",[3442,3524,3489],{},[3442,3526,3527],{},"请求体。对象会自动字符串化。",[3422,3529,3530,3534,3539,3541],{},[3442,3531,3532],{},[1031,3533,1530],{},[3442,3535,3536],{},[1031,3537,3538],{},"MaybeRefOrGetter\u003CRecord\u003Cstring, string> | [key, value][] | Headers>",[3442,3540,3489],{},[3442,3542,3543],{},"请求头。",[3422,3545,3546,3550,3554,3556],{},[3442,3547,3548],{},[1031,3549,1217],{},[3442,3551,3552],{},[1031,3553,3450],{},[3442,3555,3489],{},[3442,3557,3558],{},"请求的基础 URL。",[3422,3560,3561,3566,3571,3573],{},[3442,3562,3563],{},[1031,3564,3565],{},"cache",[3442,3567,3568],{},[1031,3569,3570],{},"false | string",[3442,3572,3489],{},[3442,3574,3575,3576,1270,3578,3580],{},"缓存控制。布尔值禁用缓存，或使用 Fetch API 的值：",[1031,3577,2727],{},[1031,3579,2754],{}," 等。",[3422,3582,3583,3587,3591,3596],{},[3442,3584,3585],{},[1031,3586,150],{},[3442,3588,3589],{},[1031,3590,2909],{},[3442,3592,3593],{},[1031,3594,3595],{},"true",[3442,3597,3598],{},"是否在服务端获取。",[3422,3600,3601,3605,3609,3614],{},[3442,3602,3603],{},[1031,3604,1259],{},[3442,3606,3607],{},[1031,3608,2909],{},[3442,3610,3611],{},[1031,3612,3613],{},"false",[3442,3615,3616],{},"如果为 true，则在路由加载后解析（不阻塞导航）。",[3422,3618,3619,3624,3628,3632],{},[3442,3620,3621],{},[1031,3622,3623],{},"immediate",[3442,3625,3626],{},[1031,3627,2909],{},[3442,3629,3630],{},[1031,3631,3595],{},[3442,3633,3634],{},"如果为 false，则阻止请求立即发起。",[3422,3636,3637,3641,3646,3648],{},[3442,3638,3639],{},[1031,3640,2727],{},[3442,3642,3643],{},[1031,3644,3645],{},"() => DataT",[3442,3647,3489],{},[3442,3649,3650,3651,3653],{},"在 async 解析之前 ",[1031,3652,1242],{}," 默认值的工厂函数。",[3422,3655,3656,3669,3674,3676],{},[3442,3657,3658,1233,3661],{},[1031,3659,3660],{},"timeout",[3662,3663,3668],"badge",{"className":3664,"color":3666,"size":3667},[3665],"align-middle","info","xs","v4.2",[3442,3670,3671],{},[1031,3672,3673],{},"number",[3442,3675,3489],{},[3442,3677,3678,3679,3682],{},"在请求超时前等待的毫秒数（默认 ",[1031,3680,3681],{},"undefined","，表示不超时）",[3422,3684,3685,3690,3695,3697],{},[3442,3686,3687],{},[1031,3688,3689],{},"transform",[3442,3691,3692],{},[1031,3693,3694],{},"(input: DataT) => DataT | Promise\u003CDataT>",[3442,3696,3489],{},[3442,3698,3699],{},"解析后转换结果的函数。",[3422,3701,3702,3711,3716,3718],{},[3442,3703,3704,1233,3707],{},[1031,3705,3706],{},"getCachedData",[3662,3708,3710],{"className":3709,"color":3666,"size":3667},[3665],"v3.8",[3442,3712,3713],{},[1031,3714,3715],{},"(key, nuxtApp, ctx) => DataT | undefined",[3442,3717,3489],{},[3442,3719,3720],{},"返回缓存数据的函数。默认实现见下文。",[3422,3722,3723,3728,3733,3735],{},[3442,3724,3725],{},[1031,3726,3727],{},"pick",[3442,3729,3730],{},[1031,3731,3732],{},"string[]",[3442,3734,3489],{},[3442,3736,3737],{},"仅从结果中挑选指定的 key。",[3422,3739,3740,3744,3749,3751],{},[3442,3741,3742],{},[1031,3743,3082],{},[3442,3745,3746],{},[1031,3747,3748],{},"MultiWatchSources | false",[3442,3750,3489],{},[3442,3752,3753,3754,3756],{},"要监视并自动刷新的响应式源数组。",[1031,3755,3613],{}," 禁用监视。",[3422,3758,3759,3767,3771,3775],{},[3442,3760,3761,1233,3764],{},[1031,3762,3763],{},"deep",[3662,3765,3710],{"className":3766,"color":3666,"size":3667},[3665],[3442,3768,3769],{},[1031,3770,2909],{},[3442,3772,3773],{},[1031,3774,3613],{},[3442,3776,3777,3778,3780],{},"以深层 ref 对象形式返回数据。默认为 ",[1031,3779,3613],{}," 以获得更好性能（浅层 ref 对象）。",[3422,3782,3783,3792,3797,3802],{},[3442,3784,3785,1233,3788],{},[1031,3786,3787],{},"dedupe",[3662,3789,3791],{"className":3790,"color":3666,"size":3667},[3665],"v3.9",[3442,3793,3794],{},[1031,3795,3796],{},"'cancel' | 'defer'",[3442,3798,3799],{},[1031,3800,3801],{},"'cancel'",[3442,3803,3804],{},"避免同时对同一 key 多次获取。",[3422,3806,3807,3816,3820,3824],{},[3442,3808,3809,1233,3812],{},[1031,3810,3811],{},"enabled",[3662,3813,3815],{"className":3814,"color":3666,"size":3667},[3665],"v4.5",[3442,3817,3818],{},[1031,3819,2909],{},[3442,3821,3822],{},[1031,3823,3595],{},[3442,3825,3826,3827,3829,3830,1287,3832,3834,3835,3837,3838,3840,3841,3843],{},"控制请求是否可以运行的屏障。为 ",[1031,3828,3613],{}," 时，每次执行都会被阻塞（初始获取、",[1031,3831,1290],{},[1031,3833,1286],{}," 和 watch 触发），且从 ",[1031,3836,3595],{}," → ",[1031,3839,3613],{}," 切换会取消任何进行中的请求而不清除 ",[1031,3842,1242],{},"。重新启用不会自行重新获取。",[3422,3845,3846,3854,3859,3861],{},[3442,3847,3848,1233,3850],{},[1031,3849,553],{},[3662,3851,3853],{"className":3852,"color":3666,"size":3667},[3665],"v3.2",[3442,3855,3856],{},[1031,3857,3858],{},"typeof globalThis.$fetch",[3442,3860,3489],{},[3442,3862,3863,3864],{},"自定义 $fetch 实现。参见 ",[1028,3865,298],{"href":297},[1040,3867],{},[1024,3869,3870,3871,3873,3874,3876,3877,3879,3880,3882],{},"所有 fetch 选项都可以给定 ",[1031,3872,2104],{}," 或 ",[1031,3875,2107],{}," 值。这些会被监视，并在更新时使用任何新值自动发起新请求（除非 ",[1031,3878,3082],{}," 设为 ",[1031,3881,3613],{},"）。\n:",[1024,3884,3885],{},[1860,3886,3887],{},"getCachedData 默认值：",[1052,3889,3892],{"className":1317,"code":3890,"filename":3891,"language":1090,"meta":354,"style":354},"const getDefaultCachedData = (key, nuxtApp, ctx) => nuxtApp.isHydrating\n  ? nuxtApp.payload.data[key]\n  : nuxtApp.static.data[key]\n","Default getCachedData Implementation",[1031,3893,3894,3927,3944],{"__ignoreMap":354},[1061,3895,3896,3898,3902,3904,3906,3908,3910,3912,3914,3916,3918,3920,3922,3924],{"class":1063,"line":1064},[1061,3897,1102],{"class":1101},[1061,3899,3901],{"class":3900},"s5Y2e"," getDefaultCachedData",[1061,3903,1137],{"class":1136},[1061,3905,2430],{"class":1067},[1061,3907,1873],{"class":1497},[1061,3909,1112],{"class":1067},[1061,3911,2823],{"class":1497},[1061,3913,1112],{"class":1067},[1061,3915,2833],{"class":1497},[1061,3917,2443],{"class":1067},[1061,3919,1772],{"class":1101},[1061,3921,2823],{"class":1148},[1061,3923,1527],{"class":1067},[1061,3925,3926],{"class":1148},"isHydrating\n",[1061,3928,3929,3932,3934,3936,3939,3941],{"class":1063,"line":1098},[1061,3930,3931],{"class":1136},"  ?",[1061,3933,2823],{"class":1148},[1061,3935,1527],{"class":1067},[1061,3937,3938],{"class":1148},"payload",[1061,3940,1527],{"class":1067},[1061,3942,3943],{"class":1148},"data[key]\n",[1061,3945,3946,3949,3951,3953,3956,3958],{"class":1063,"line":1165},[1061,3947,3948],{"class":1136},"  :",[1061,3950,2823],{"class":1148},[1061,3952,1527],{"class":1067},[1061,3954,3955],{"class":1148},"static",[1061,3957,1527],{"class":1067},[1061,3959,3943],{"class":1148},[1024,3961,3962,3963,3966,3967,3970],{},"这仅在 ",[1031,3964,3965],{},"nuxt.config"," 中启用了 ",[1031,3968,3969],{},"experimental.payloadExtraction"," 时才会缓存数据。",[1048,3972,3973],{"id":3973},"返回值",[1024,3975,3976,3977,3980,3981,3983,3984,3986,3987,3989,3990,3992],{},"该组合式函数返回一个可以 await 的 ",[1031,3978,3979],{},"Promise","，这使得可以在 ",[1031,3982,1278],{}," 中直接使用 ",[1031,3985,1242],{},"（即会有一个值存在，而不是 undefined）。你也可以在不 await 返回值的情况下直接解构这些值，这种情况下直到获取完成之前 ",[1031,3988,1242],{}," 在 ",[1031,3991,1278],{}," 中可能仍为 undefined。",[1209,3994],{},[1024,3996,3997],{},"即使你不 await 返回值，在 SSR 期间 Nuxt 也会等待请求完成并将解析后的数据发送到客户端。\n:",[1040,3999],{},[1024,4001,4002,4003,4006,4007,4009,4010,4014,4015,3989,4017,4019,4020,2071],{},"如果你没有在服务端获取数据（例如使用 ",[1031,4004,4005],{},"server: false","），那么数据在 hydration 完成之前",[1860,4008,1862],{},"被获取。这意味着即使在客户端 await ",[1028,4011,4012],{"href":452},[1031,4013,453],{},"，",[1031,4016,1242],{},[1031,4018,1278],{}," 中也会保持 ",[1031,4021,3681],{},[3416,4023,4024,4035],{},[3419,4025,4026],{},[3422,4027,4028,4031,4033],{},[3425,4029,4030],{},"名称",[3425,4032,2338],{},[3425,4034,3435],{},[3437,4036,4037,4051,4068,4082,4096,4118,4150],{},[3422,4038,4039,4043,4048],{},[3442,4040,4041],{},[1031,4042,1242],{},[3442,4044,4045],{},[1031,4046,4047],{},"Ref\u003CDataT | undefined>",[3442,4049,4050],{},"异步 fetch 的结果。",[3422,4052,4053,4057,4062],{},[3442,4054,4055],{},[1031,4056,1286],{},[3442,4058,4059],{},[1031,4060,4061],{},"(opts?: AsyncDataExecuteOptions) => Promise\u003Cvoid>",[3442,4063,4064,4065,4067],{},"手动刷新数据的函数。默认情况下，Nuxt 会等待一次 ",[1031,4066,1286],{}," 完成之后才能再次执行。",[3422,4069,4070,4074,4078],{},[3442,4071,4072],{},[1031,4073,1290],{},[3442,4075,4076],{},[1031,4077,4061],{},[3442,4079,4080,3511],{},[1031,4081,1286],{},[3422,4083,4084,4088,4093],{},[3442,4085,4086],{},[1031,4087,1252],{},[3442,4089,4090],{},[1031,4091,4092],{},"Ref\u003CErrorT | undefined>",[3442,4094,4095],{},"如果数据获取失败的错误对象。",[3422,4097,4098,4102,4107],{},[3442,4099,4100],{},[1031,4101,1249],{},[3442,4103,4104],{},[1031,4105,4106],{},"Ref\u003C'idle' | 'pending' | 'success' | 'error'>",[3442,4108,4109,4110,1270,4112,1270,4114,1033,4116,1426],{},"数据请求的状态。用它来区分 ",[1031,4111,3350],{},[1031,4113,3359],{},[1031,4115,3368],{},[1031,4117,1252],{},[3422,4119,4120,4124,4129],{},[3442,4121,4122],{},[1031,4123,3359],{},[3442,4125,4126],{},[1031,4127,4128],{},"Ref\u003Cboolean>",[3442,4130,4131,4132,4134,4135,4141,4142,4144,4145,4147,4148,1426],{},"请求进行中为 ",[1031,4133,3595],{},"。配合 ",[1028,4136,4138],{"href":4137},"\u002Fdocs\u002Fguide\u002Fgoing-further\u002Fexperimental-features#pendingwhenidle",[1031,4139,4140],{},"experimental.pendingWhenIdle","，当 ",[1031,4143,1249],{}," 为 ",[1031,4146,3350],{}," 且没有可用缓存数据时也为 ",[1031,4149,3595],{},[3422,4151,4152,4156,4161],{},[3442,4153,4154],{},[1031,4155,1293],{},[3442,4157,4158],{},[1031,4159,4160],{},"() => void",[3442,4162,4163,4164,4166,4167,4169,4170,4173,4174,4166,4176,4178,4179,3879,4181,4183],{},"将 ",[1031,4165,1242],{}," 重置为 ",[1031,4168,3681],{},"（或提供了 ",[1031,4171,4172],{},"options.default()"," 时为其值），",[1031,4175,1252],{},[1031,4177,3681],{},"，将 ",[1031,4180,1249],{},[1031,4182,3350],{},"，并取消任何挂起的请求。",[1209,4185],{},[1024,4187,4188,4189,4191,4192,1270,4195,1033,4198,4201],{},"如果你没有 await 返回值，来自 ",[1031,4190,3979],{}," 的函数（",[1031,4193,4194],{},"then",[1031,4196,4197],{},"catch",[1031,4199,4200],{},"finally","）可以被安全解构。\n:",[1705,4203,4204],{"id":4204},"状态值",[3383,4206,4207,4220,4225,4230],{},[3386,4208,4209,4211,4212,4215,4216,4219],{},[1031,4210,3350],{},"：请求尚未开始（例如 ",[1031,4213,4214],{},"{ immediate: false }"," 或服务端渲染时的 ",[1031,4217,4218],{},"{ server: false }","）",[3386,4221,4222,4224],{},[1031,4223,3359],{},"：请求进行中",[3386,4226,4227,4229],{},[1031,4228,3368],{},"：请求成功完成",[3386,4231,4232,4234],{},[1031,4233,1252],{},"：请求失败",[1705,4236,4237],{"id":4237},"示例",[4239,4240],"link-example",{"to":4241},"\u002Fdocs\u002Fexamples\u002Fadvanced\u002Fuse-custom-fetch-composable",[4239,4243],{"to":4244},"\u002Fdocs\u002Fexamples\u002Ffeatures\u002Fdata-fetching",[4246,4247,4248],"style",{},"html pre.shiki code .sF54B, html code.shiki .sF54B{--shiki-light:#39ADB5;--shiki-default:#E1E4E8;--shiki-dark:#89DDFF}html pre.shiki code .s6g6u, html code.shiki .s6g6u{--shiki-light:#E53935;--shiki-default:#85E89D;--shiki-dark:#F07178}html pre.shiki code .sXjFp, html code.shiki .sXjFp{--shiki-light:#9C3EDA;--shiki-default:#B392F0;--shiki-dark:#C792EA}html pre.shiki code .s0jeK, html code.shiki .s0jeK{--shiki-light:#39ADB5;--shiki-default:#9ECBFF;--shiki-dark:#89DDFF}html pre.shiki code .s-Aze, html code.shiki .s-Aze{--shiki-light:#91B859;--shiki-default:#9ECBFF;--shiki-dark:#C3E88D}html pre.shiki code .sV7Px, html code.shiki .sV7Px{--shiki-light:#9C3EDA;--shiki-default:#F97583;--shiki-dark:#C792EA}html pre.shiki code .sJTDI, html code.shiki .sJTDI{--shiki-light:#90A4AE;--shiki-default:#79B8FF;--shiki-dark:#BABED8}html pre.shiki code .sXPRQ, html code.shiki .sXPRQ{--shiki-light:#39ADB5;--shiki-default:#F97583;--shiki-dark:#89DDFF}html pre.shiki code .szyBz, html code.shiki .szyBz{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#F97583;--shiki-default-font-style:inherit;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .srJn9, html code.shiki .srJn9{--shiki-light:#6182B8;--shiki-default:#B392F0;--shiki-dark:#82AAFF}html pre.shiki code .smVNa, html code.shiki .smVNa{--shiki-light:#90A4AE;--shiki-default:#E1E4E8;--shiki-dark:#BABED8}html pre.shiki code .sOtFm, html code.shiki .sOtFm{--shiki-light:#E53935;--shiki-default:#E1E4E8;--shiki-dark:#F07178}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 .syA7L, html code.shiki .syA7L{--shiki-light:#E53935;--shiki-default:#B392F0;--shiki-dark:#F07178}html pre.shiki code .ssIVr, html code.shiki .ssIVr{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#FFAB70;--shiki-default-font-style:inherit;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sZqJ9, html code.shiki .sZqJ9{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sP6_D, html code.shiki .sP6_D{--shiki-light:#E53935;--shiki-default:#FFAB70;--shiki-dark:#F07178}html pre.shiki code .si1Qm, html code.shiki .si1Qm{--shiki-light:#FF5370;--shiki-default:#79B8FF;--shiki-dark:#FF9CAC}html pre.shiki code .sJK67, html code.shiki .sJK67{--shiki-light:#E2931D;--shiki-default:#B392F0;--shiki-dark:#FFCB6B}html pre.shiki code .seQRr, html code.shiki .seQRr{--shiki-light:#E2931D;--shiki-default:#79B8FF;--shiki-dark:#FFCB6B}html pre.shiki code .s5Y2e, html code.shiki .s5Y2e{--shiki-light:#90A4AE;--shiki-default:#B392F0;--shiki-dark:#BABED8}",{"title":354,"searchDepth":1165,"depth":1165,"links":4250},[4251,4255,4256,4257],{"id":1050,"depth":1098,"text":1050,"children":4252},[4253,4254],{"id":1707,"depth":1165,"text":1708},{"id":2097,"depth":1165,"text":2098},{"id":2338,"depth":1098,"text":2338},{"id":3381,"depth":1098,"text":3381},{"id":3973,"depth":1098,"text":3973,"children":4258},[4259,4260],{"id":4204,"depth":1165,"text":4204},{"id":4237,"depth":1165,"text":4237},"md",{"links":4263},[4264],{"label":4265,"icon":4266,"to":4267,"size":3667},"Source","i-simple-icons-github","https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fblob\u002Fmain\u002Fpackages\u002Fnuxt\u002Fsrc\u002Fapp\u002Fcomposables\u002Ffetch.ts",null,{"title":453,"description":454},"docs\u002F4.api\u002F2.composables\u002Fuse-fetch","BNiOyg5ihjJro83mSMFSwhyX5QbilskIc2eAD2v1dtU",1785179849982]