# @tanstack/vue-query 中文文档

规范地址：https://npmcn.com/package/%40tanstack/vue-query/

版本：5\.105\.2
npm 元数据更新时间：2026-11-02T13:55:30.891Z
中文译文更新时间：2026-11-02T15:41:49.116Z
软件包许可：MIT

本文由上游 README 机器翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40tanstack/vue-query
原文对照：https://npmcn.com/package/%40tanstack/vue-query/?lang=original
项目主页：https://tanstack.com/query
源码仓库：https://github.com/TanStack/query

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：1.6 MB，375 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：4 个
- peer 依赖：vue ^2\.6\.0 \|\| ^3\.3\.0，@vue/composition-api ^1\.1\.2
- 首次发布：2022-10-02T20:11:42.071Z
- 最新版本发布：2026-11-02T13:55:30.533Z
- 已发布版本数：491（近 12 个月 76 个）

## 中文简介

Vue中用于管理、缓存和同步异步和远程数据的钩子

## 安装

```sh
npm install @tanstack/vue-query
```

也可以使用：`pnpm add @tanstack/vue-query`、`yarn add @tanstack/vue-query`、`bun add @tanstack/vue-query`

## README

![TanStack Vue Query](https://tanstack.com/api/readme/query.png?framework=vue)

\[！\[Vue查询logo\](https://raw.githubusercontent.com/TanStack/query/main/packages/vue-query/media/vue-query.png)\]（https://github.com/TanStack/query/tree/main/packages/vue-query）

[![npm version](https://img.shields.io/npm/v/@tanstack/vue-query)](https://www.npmjs.com/package/@tanstack/vue-query) [![npm license](https://img.shields.io/npm/l/@tanstack/vue-query)](https://github.com/TanStack/query/blob/main/LICENSE) [![bundle size](https://img.shields.io/bundlephobia/minzip/@tanstack/vue-query)](https://bundlephobia.com/package/@tanstack/vue-query) [![npm](https://img.shields.io/npm/dm/@tanstack/vue-query)](https://www.npmjs.com/package/@tanstack/vue-query)

# Vue查询

Vue中用于获取、缓存和更新异步数据的钩子。

支持Vue 2。x通过 [vue-demi](https://github.com/vueuse/vue-demi)

# 文档

访问 [https://tanstack.com/query/latest/docs/vue/overview](https://tanstack.com/query/latest/docs/vue/overview)

# 快速的特点

-   传输/协议/后端无关的数据获取（REST, GraphQL, promises，等等！）
-   自动缓存+重新获取（stale-while-revalidate, Window Refocus, Polling/Realtime）
-   并行+相关查询
-   突变+响应式查询重取
-   多层缓存+自动垃圾收集
-   分页+基于游标的查询
-   Load-More +无限滚动查询w/滚动恢复
-   请求取消
-   (实验) [悬念](https://v3.vuejs.org/guide/migration/suspense.html#introduction) + Fetch-As-You-Render查询预取
-   （实验性）SSR支持
-   专用Devtools
-   [![npm bundle size](https://img.shields.io/bundlephobia/minzip/@tanstack/vue-query)](https://bundlephobia.com/package/@tanstack/vue-query) （取决于导入的特性）

# 快速入门

1.  安装 `vue-query`
    
    ```bash
    $ npm i @tanstack/vue-query
    ```
    
    或者
    
    ```bash
    $ pnpm add @tanstack/vue-query
    ```
    
    或者
    
    ```bash
    $ yarn add @tanstack/vue-query
    ```
    
    或者
    
    ```bash
    $ bun add @tanstack/vue-query
    ```
    
    > 如果您正在使用Vue 2.6，请确保也进行了设置 [@vue / composition-api](https://github.com/vuejs/composition-api)
    
2.  初始化 **Vue查询** 通过 **VueQueryPlugin**
    
    ```tsx
    import { createApp } from 'vue'
    import { VueQueryPlugin } from '@tanstack/vue-query'
    
    import App from './App.vue'
    
    createApp(App).use(VueQueryPlugin).mount('#app')
    ```
    
3.  使用查询
    
    ```tsx
    import { defineComponent } from 'vue'
    import { useQuery } from '@tanstack/vue-query'
    
    export default defineComponent({
      name: 'MyComponent',
      setup() {
        const query = useQuery({ queryKey: ['todos'], queryFn: getTodos })
    
        return {
          query,
        }
      },
    })
    ```
    
4.  如果您需要动态更新查询上的选项，请确保将它们作为响应变量传递
    
    ```tsx
    const id = ref(1)
    const enabled = ref(false)
    
    const query = useQuery({
      queryKey: ['todos', id],
      queryFn: () => getTodos(id),
      enabled,
    })
    ```

## 常见问题

### @tanstack/vue-query 是什么？

Vue中用于管理、缓存和同步异步和远程数据的钩子

### 如何安装 @tanstack/vue-query？

在项目目录运行 npm install @tanstack/vue-query，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：vue（^2\.6\.0 \|\| ^3\.3\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @tanstack/vue-query 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @tanstack/vue-query 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @tanstack/vue-query 可以商用吗？

@tanstack/vue-query 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @tanstack/vue-query 还在维护吗？

最新版本 5\.105\.2 发布于 2026/11/02（今天）；至今共发布 491 个版本，其中过去 12 个月发布了 76 个；首次发布于 2022/10/03。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

