译零 TransZero · TanStack Query 中文文档
主站

概述

更新于 2026-11-02 Lit 查看英文原文 ↗

重要:@tanstack/lit-query 包目前处于实验阶段,版本为 v0.1。Lit 适配器的 API 和文档将持续演进。若你在早期阶段将其用于生产环境,请将该包锁定到特定补丁版本,并有计划地升级。

@tanstack/lit-query 包是 TanStack Query 的 Lit 适配器。它为 Lit 应用提供响应式控制器(reactive controller)API,用于拉取、缓存、同步和更新服务端状态(server state)。

TanStack Query 管理服务端状态:即由远程系统拥有、通过异步方式拉取、在多个界面间共享、且可能随时被他人修改的数据。它处理缓存、请求去重(deduplication)、过期数据(stale data)、后台重新拉取(background refetching)、修改(mutations)、失效处理(invalidation)、分页(pagination)以及垃圾回收(garbage collection)。

Lit Query 通过 Lit 响应式控制器 暴露这些功能。Lit 响应式控制器挂载到 ReactiveControllerHost 上,通常是一个 LitElement。Lit Query 控制器订阅 QueryClient,在结果变更时请求宿主(host)更新,并随宿主生命周期自动清理。

核心 API

大多数 Lit 应用使用以下 API:

该适配器还从 @tanstack/lit-query 重新导出 TanStack Query Core API,因此 Lit 文档中的示例均以 @tanstack/lit-query 作为面向用户的导入路径。

首个查询

TypeScript
1import { LitElement, html } from 'lit'2import {3  QueryClient,4  QueryClientProvider,5  createQueryController,6} from '@tanstack/lit-query'7 8const queryClient = new QueryClient()9 10class AppQueryProvider extends QueryClientProvider {11  constructor() {12    super()13    this.client = queryClient14  }15}16 17customElements.define('app-query-provider', AppQueryProvider)18 19class RepoStats extends LitElement {20  private readonly repo = createQueryController(this, {21    queryKey: ['repoData'],22    queryFn: async () => {23      const response = await fetch(24        'https://api.github.com/repos/TanStack/query',25      )26      if (!response.ok) throw new Error('Failed to fetch repo data')27      return response.json() as Promise<{28        name: string29        description: string30        stargazers_count: number31      }>32    },33  })34 35  render() {36    const query = this.repo()37 38    if (query.isPending) return html`Loading...`39    if (query.isError) return html`Error: ${query.error.message}`40 41    return html`42      <h1>${query.data.name}</h1>43      <p>${query.data.description}</p>44      <strong>${query.data.stargazers_count} stars</strong>45    `46  }47}48 49customElements.define('repo-stats', RepoStats)

在查询消费者(query consumers)上方渲染上述提供器(provider):

HTML
1<app-query-provider>2  <repo-stats></repo-stats>3</app-query-provider>

状态说明

Lit 开发者工具(Devtools)尚不可用。请在适配器成熟过程中,借助缓存 API 和自动生成的 API 参考文档进行开发。

请先阅读 安装,再进入 快速开始;若你来自 React Query,则可参考 响应式控制器 vs Hook 指南。

本页为 TanStack Query 文档(Lit 版)的非官方中文翻译,原文由上游团队维护,遵循 MIT 许可。 译文如有偏差,以英文原文为准。

译自上游 59d11de