1<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/assets/styles-CYVyV2Ng.css" data-precedence="default"/><title>Agent èµæ â TanStack ä¸æææ¡£</title><meta name="description" content="Original bilingual TanStack learning paths for people and structured engineering references for AI agents."/><meta name="theme-color" content="#0a0a0c"/><meta property="og:site_name" content="TanStack Atlas"/><meta property="og:type" content="website"/><meta name="robots" content="index, follow"/><link rel="modulepreload" href="/assets/index-hLjVoo_m.js"/><link rel="modulepreload" href="/assets/i18n-CMbmrGSa.js"/><link rel="modulepreload" href="/assets/qss-B4cMWIbE.js"/><link rel="modulepreload" href="/assets/route-C6stfi0P.js"/><link rel="modulepreload" href="/assets/route-CLG_1kaG.js"/><link rel="modulepreload" href="/assets/Icons-B_6I98JM.js"/><link rel="modulepreload" href="/assets/schema-CCDEugzF.js"/><link rel="modulepreload" href="/assets/docs-navigation-BQJIrtXY.js"/><link rel="modulepreload" href="/assets/agents-CvHSucn9.js"/><link rel="modulepreload" href="/assets/CopyButton-Ddsz8opC.js"/><link rel="modulepreload" href="/assets/agent-content-DT1CIFOH.js"/><link rel="modulepreload" href="/assets/TopicCards-i7c-hDVF.js"/><link rel="icon" type="image/svg+xml" href="/favicon.svg"/><link rel="canonical" href="https://tanstack.edu.rich/zh-cn/agents"/><link rel="alternate" hrefLang="zh-CN" href="https://tanstack.edu.rich/zh-cn/agents"/><link rel="alternate" hrefLang="en" href="https://tanstack.edu.rich/en/agents"/><link rel="alternate" hrefLang="x-default" href="https://tanstack.edu.rich/zh-cn/agents"/>
1<script>try{var t=localStorage.getItem('atlas-theme');if(t!=='light'&&t!=='dark'){t=window.matchMedia('(prefers-color-scheme: light)').matches?'light':'dark'}document.documentElement.dataset.theme=t;var d=localStorage.getItem('atlas-design');if(d!=='a'&&d!=='b'&&d!=='c'){d='b'}document.documentElement.dataset.design=d}catch(e){document.documentElement.dataset.theme='dark';document.documentElement.dataset.design='b'}</script>
1</head><body><!--$--><div class="site-shell"><a class="skip-link" href="#main-content">è·³å°æ£æ</a><header class="site-header"><div class="site-header-inner"><a aria-label="TanStack ä¸æææ¡£é¦é¡µ" class="brand active" href="/zh-cn" data-status="active" aria-current="page"><span class="brand-mark" aria-hidden="true"><span></span><span></span></span><span class="brand-wordmark"><strong>TANSTACK</strong><small>ä¸æææ¡£</small></span></a><div class="header-actions"><a aria-label="æç´¢ææ¡£" href="/zh-cn/search" class="site-search-link"><svg viewBox="0 0 20 20" aria-hidden="true"><circle cx="8.5" cy="8.5" r="5.25" fill="none" stroke="currentColor" stroke-width="1.6"></circle><path d="m12.4 12.4 4 4" fill="none" stroke="currentColor" stroke-width="1.6"></path></svg><span>æç´¢ææ¡£</span><kbd>/</kbd></a><a class="source-link" href="https://tanstack.com" target="_blank" rel="noreferrer"><span>宿¹ææ¡£</span><svg viewBox="0 0 20 20" aria-hidden="true"><path d="M5 15 15 5M7 5h8v8" fill="none" stroke="currentColor" stroke-width="1.7"></path></svg></a><a class="locale-switch" href="/en/agents" hrefLang="en">EN</a><button type="button" class="theme-toggle" aria-label="忢ææä¸»é¢" title="忢ææä¸»é¢"><svg viewBox="0 0 24 24" aria-hidden="true" class="theme-icon-sun"><circle cx="12" cy="12" r="4.5" fill="none" stroke="currentColor" stroke-width="1.6"></circle><path d="M12 2.5v2.5M12 19v2.5M2.5 12H5m14 0h2.5M4.9 4.9l1.8 1.8m10.6 10.6 1.8 1.8M19.1 4.9l-1.8 1.8M6.7 17.3l-1.8 1.8" fill="none" stroke="currentColor" stroke-width="1.6"></path></svg><svg viewBox="0 0 24 24" aria-hidden="true" class="theme-icon-moon"><path d="M20.4 14.2A8.5 8.5 0 1 1 9.8 3.6a7 7 0 1 0 10.6 10.6z" fill="none" stroke="currentColor" stroke-width="1.6"></path></svg></button></div></div></header><nav class="docs-topbar" aria-label="ææ¡£ç®å½"><div class="docs-topbar-inner"><a href="/zh-cn">æ¦è§</a><a href="/zh-cn/learn">å
¥é¨æç¨</a><a data-active="true" href="/zh-cn/agents" data-status="active" aria-current="page">Agent ææ¡£</a><a href="/zh-cn/ecosystem">çæå°å¾</a><div class="docs-topbar-tools"><a href="/zh-cn/search">æç´¢ææ¡£</a><a href="/zh-cn/map">ç¥è¯å¾è°±</a><a href="/zh-cn/lab/issues">交äºå®éª</a><a href="/zh-cn/links">åæ
龿¥</a></div></div></nav><div class="docs-layout"><aside class="docs-sidebar"><nav class="docs-navigation" aria-label="ææ¡£ç®å½"><div class="docs-section-switch"><a href="/zh-cn">æ¦è§</a><a href="/zh-cn/learn">å
¥é¨æç¨</a><a data-active="true" href="/zh-cn/agents" data-status="active" aria-current="page">Agent ææ¡£</a></div><div class="docs-nav-list"><a data-active="true" href="/zh-cn/agents" data-status="active" aria-current="page"><span>ç´¢å¼ä¸ä½¿ç¨æ¹æ³</span></a></div><div class="docs-nav-group"><span><i class="docs-product-dot" style="background:#e84a2a"></i>Start<small>3</small></span><a href="/zh-cn/agents/start/server-function"><span>å建åªå¨æå¡ç«¯æ§è¡ç彿°</span></a><a href="/zh-cn/agents/start/server-route"><span>å建å¤é¨å¯è°ç¨ç Server Route</span></a><a href="/zh-cn/agents/start/middleware-chain"><span>å»ºç« Start Middleware æ§è¡é¾</span></a></div><div class="docs-nav-group"><span><i class="docs-product-dot" style="background:#d8ff3e"></i>Router<small>6</small></span><a href="/zh-cn/agents/router/file-route"><span>å建带路å¾åæ°çæä»¶è·¯ç±</span></a><a href="/zh-cn/agents/router/validated-search"><span>éªè¯å页ä¸çéåæ°</span></a><a href="/zh-cn/agents/router/route-error-boundary"><span>éç¦»è·¯ç± Loader 䏿¸²æé误</span></a><a href="/zh-cn/agents/router/typed-router-context"><span>建ç«ç±»åå Router Context</span></a><a href="/zh-cn/agents/router/navigation-blocker"><span>ä¿æ¤è表åç离页导èª</span></a><a href="/zh-cn/agents/router/auth-before-load"><span>ç¨ beforeLoad ä¿æ¤è·¯ç±åæ </span></a></div><div class="docs-nav-group"><span><i class="docs-product-dot" style="background:#4da3ff"></i>Query<small>8</small></span><a href="/zh-cn/agents/query/router-loader-or-query"><span>Router Loader è¿æ¯ Queryï¼</span></a><a href="/zh-cn/agents/query/loader-prefetch"><span>å¨è·¯ç± Loader ä¸é¢å Query</span></a><a href="/zh-cn/agents/query/mutation-cache-update"><span>ç¨ Mutation ååºæ´æ°ç¼å</span></a><a href="/zh-cn/agents/query/freshness-policy"><span>å®ä¹ Query æ°é²åº¦å¥çº¦</span></a><a href="/zh-cn/agents/query/abort-signal"><span>æ¶è´¹ Query ç AbortSignal</span></a><a href="/zh-cn/agents/query/infinite-cursor"><span>å»ºç«æççæ¸¸æ Infinite Query</span></a><a href="/zh-cn/agents/query/ssr-streaming"><span>é
ç½® Query SSR 䏿µå¼æ¢å¤</span></a><a href="/zh-cn/agents/query/optimistic-rollback"><span>å®ç°å¯åæ»çä¹è§æ´æ°</span></a></div><div class="docs-nav-group"><span><i class="docs-product-dot" style="background:#38bdf8"></i>Table<small>1</small></span><a href="/zh-cn/agents/table/server-grid-state"><span>åè°æå¡ç«¯è¡¨æ ¼çæåºä¸åé¡µç¶æ</span></a></div><div class="docs-nav-group"><span><i class="docs-product-dot" style="background:#fbbf24"></i>Form<small>1</small></span><a href="/zh-cn/agents/form/async-validation"><span>ä¸ºåæ®µå¼æ¥æ ¡éªå»ºç«å®å
¨è¾¹ç</span></a></div></nav></aside><div class="docs-stage"><details class="mobile-docs-menu"><summary>æµè§ææ¡£ç®å½</summary><div class="mobile-docs-menu-panel"><nav class="docs-navigation" aria-label="ææ¡£ç®å½"><div class="docs-section-switch"><a href="/zh-cn">æ¦è§</a><a href="/zh-cn/learn">å
¥é¨æç¨</a><a data-active="true" href="/zh-cn/agents" data-status="active" aria-current="page">Agent ææ¡£</a></div><div class="docs-nav-list"><a data-active="true" href="/zh-cn/agents" data-status="active" aria-current="page"><span>ç´¢å¼ä¸ä½¿ç¨æ¹æ³</span></a></div><div class="docs-nav-group"><span><i class="docs-product-dot" style="background:#e84a2a"></i>Start<small>3</small></span><a href="/zh-cn/agents/start/server-function"><span>å建åªå¨æå¡ç«¯æ§è¡ç彿°</span></a><a href="/zh-cn/agents/start/server-route"><span>å建å¤é¨å¯è°ç¨ç Server Route</span></a><a href="/zh-cn/agents/start/middleware-chain"><span>å»ºç« Start Middleware æ§è¡é¾</span></a></div><div class="docs-nav-group"><span><i class="docs-product-dot" style="background:#d8ff3e"></i>Router<small>6</small></span><a href="/zh-cn/agents/router/file-route"><span>å建带路å¾åæ°çæä»¶è·¯ç±</span></a><a href="/zh-cn/agents/router/validated-search"><span>éªè¯å页ä¸çéåæ°</span></a><a href="/zh-cn/agents/router/route-error-boundary"><span>éç¦»è·¯ç± Loader 䏿¸²æé误</span></a><a href="/zh-cn/agents/router/typed-router-context"><span>建ç«ç±»åå Router Context</span></a><a href="/zh-cn/agents/router/navigation-blocker"><span>ä¿æ¤è表åç离页导èª</span></a><a href="/zh-cn/agents/router/auth-before-load"><span>ç¨ beforeLoad ä¿æ¤è·¯ç±åæ </span></a></div><div class="docs-nav-group"><span><i class="docs-product-dot" style="background:#4da3ff"></i>Query<small>8</small></span><a href="/zh-cn/agents/query/router-loader-or-query"><span>Router Loader è¿æ¯ Queryï¼</span></a><a href="/zh-cn/agents/query/loader-prefetch"><span>å¨è·¯ç± Loader ä¸é¢å Query</span></a><a href="/zh-cn/agents/query/mutation-cache-update"><span>ç¨ Mutation ååºæ´æ°ç¼å</span></a><a href="/zh-cn/agents/query/freshness-policy"><span>å®ä¹ Query æ°é²åº¦å¥çº¦</span></a><a href="/zh-cn/agents/query/abort-signal"><span>æ¶è´¹ Query ç AbortSignal</span></a><a href="/zh-cn/agents/query/infinite-cursor"><span>å»ºç«æççæ¸¸æ Infinite Query</span></a><a href="/zh-cn/agents/query/ssr-streaming"><span>é
ç½® Query SSR 䏿µå¼æ¢å¤</span></a><a href="/zh-cn/agents/query/optimistic-rollback"><span>å®ç°å¯åæ»çä¹è§æ´æ°</span></a></div><div class="docs-nav-group"><span><i class="docs-product-dot" style="background:#38bdf8"></i>Table<small>1</small></span><a href="/zh-cn/agents/table/server-grid-state"><span>åè°æå¡ç«¯è¡¨æ ¼çæåºä¸åé¡µç¶æ</span></a></div><div class="docs-nav-group"><span><i class="docs-product-dot" style="background:#fbbf24"></i>Form<small>1</small></span><a href="/zh-cn/agents/form/async-validation"><span>ä¸ºåæ®µå¼æ¥æ ¡éªå»ºç«å®å
¨è¾¹ç</span></a></div></nav></div></details><div id="main-content" tabindex="-1"><main class="agents-index"><section class="agents-masthead"><div class="page-frame agents-masthead-grid"><div class="agents-title-block"><span class="eyebrow eyebrow-light">Agent ææ¡£</span><h1>为任å¡ååæå°ãæ£ç¡®çä¸ä¸æã</h1><p>è¿é没æåç»äººç±»çé¿ç¯æç¨ãæ¯ç¯èµæé½å£°æä»»å¡ãå
ãçæ¬ã约æãæå°å®ç°åéªè¯æ¹å¼ã</p></div><div class="agent-entry-command"><span>Agent å
¥å£</span><code>GET /zh-cn/llms.txt</code>
1<button class="copy-button" type="button" aria-live="polite"><svg viewBox="0 0 20 20" aria-hidden="true"><rect x="6" y="6" width="10" height="10" rx="1" fill="none" stroke="currentColor" stroke-width="1.4"></rect><path d="M13 6V4H4v9h2" fill="none" stroke="currentColor" stroke-width="1.4"></path></svg><span>Copy path</span></button></div><ol class="agent-sequence"><li><span>0<!-- -->1</span>è·å llms.txt</li><li><span>0<!-- -->2</span>æäº§åéæ©</li><li><span>0<!-- -->3</span>æ task åååç¯</li><li><span>0<!-- -->4</span>æ£æ¥ versionRange</li></ol></div></section><section class="agent-catalog page-frame"><header><span>CATALOG / <!-- -->19</span><div><h2>å¯ç¨ç¥è¯åå
</h2><p>åæ¶æä¾ HTML é
读页ä¸åå§ Markdownã</p></div></header><section class="agent-product-group"><div class="agent-product-label"><span class="product-dot" style="background-color:#e84a2a"></span><span>01</span><h3>TanStack Start</h3><p>å
¨æ åºç¨æ¡æ¶</p></div><div class="agent-doc-list"><a href="/zh-cn/agents/start/server-function" class="agent-doc-row"><span class="doc-kind doc-kind-recipe">recipe</span><span class="agent-doc-copy"><strong>å建åªå¨æå¡ç«¯æ§è¡ç彿°</strong><small>ä½¿ç¨ createServerFn å®ä¹åæºãç±»åå®å
¨çæå¡ç«¯ RPCã</small></span><span class="agent-doc-version">^1</span><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 12h15m-5-5 5 5-5 5" fill="none" stroke="currentColor" stroke-width="1.7"></path></svg></a><a href="/zh-cn/agents/start/server-route" class="agent-doc-row"><span class="doc-kind doc-kind-recipe">recipe</span><span class="agent-doc-copy"><strong>å建å¤é¨å¯è°ç¨ç Server Route</strong><small>ä¸ºç¬¬ä¸æ¹è°ç¨æ¹å»ºç«åç HTTP 端ç¹ï¼å¹¶æ¾å¼è¿åç¶æãç¼ååå®å
¨ååºã</small></span><span class="agent-doc-version">Start ^1 / Router ^1</span><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 12h15m-5-5 5 5-5 5" fill="none" stroke="currentColor" stroke-width="1.7"></path></svg></a><a href="/zh-cn/agents/start/middleware-chain" class="agent-doc-row"><span class="doc-kind doc-kind-contract">contract</span><span class="agent-doc-copy"><strong>å»ºç« Start Middleware æ§è¡é¾</strong><small>æç¡®è¯·æ±çº§ä¸å½æ°çº§ä½ç¨åï¼éè¿ next() ç»åä¸ä¸æï¼å¹¶ä¿ç认è¯å CSRF è¾¹çã</small></span><span class="agent-doc-version">^1</span><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 12h15m-5-5 5 5-5 5" fill="none" stroke="currentColor" stroke-width="1.7"></path></svg></a></div></section><section class="agent-product-group"><div class="agent-product-label"><span class="product-dot" style="background-color:#d8ff3e"></span><span>02</span><h3>TanStack Router</h3><p>ç±»åå®å
¨çè·¯ç±ä¸ URL ç¶æ</p></div><div class="agent-doc-list"><a href="/zh-cn/agents/router/file-route" class="agent-doc-row"><span class="doc-kind doc-kind-recipe">recipe</span><span class="agent-doc-copy"><strong>å建带路å¾åæ°çæä»¶è·¯ç±</strong><small>å¨ React åºç¨ä¸å建 /posts/$postIdï¼å¹¶ä»è·¯ç±å®ä¾è¯»åç±»åå®å
¨ç postIdã</small></span><span class="agent-doc-version">^1</span><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 12h15m-5-5 5 5-5 5" fill="none" stroke="currentColor" stroke-width="1.7"></path></svg></a><a href="/zh-cn/agents/router/validated-search" class="agent-doc-row"><span class="doc-kind doc-kind-recipe">recipe</span><span class="agent-doc-copy"><strong>éªè¯å页ä¸çéåæ°</strong><small>å°ä¸å¯ä¿¡ç URL æç´¢åæ°è½¬æ¢ä¸ºç¨³å®ãæç±»åçè·¯ç±è¾å
¥ã</small></span><span class="agent-doc-version">^1</span><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 12h15m-5-5 5 5-5 5" fill="none" stroke="currentColor" stroke-width="1.7"></path></svg></a><a href="/zh-cn/agents/router/route-error-boundary" class="agent-doc-row"><span class="doc-kind doc-kind-error">error</span><span class="agent-doc-copy"><strong>éç¦»è·¯ç± Loader 䏿¸²æé误</strong><small>为å
¨å± Router 设置é»è®¤é误ç»ä»¶ï¼å¹¶å¨éè¦ç¬ç«æ¢å¤çè·¯ç±ä¸è¦ç errorComponentã</small></span><span class="agent-doc-version">^1</span><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 12h15m-5-5 5 5-5 5" fill="none" stroke="currentColor" stroke-width="1.7"></path></svg></a><a href="/zh-cn/agents/router/typed-router-context" class="agent-doc-row"><span class="doc-kind doc-kind-contract">contract</span><span class="agent-doc-copy"><strong>建ç«ç±»åå Router Context</strong><small>卿 ¹è·¯ç±å£°æä¾èµï¼å¹¶éè¿ beforeLoad ä¸ºåæ è¿½å 坿¨å¯¼çæ´¾çä¸ä¸æã</small></span><span class="agent-doc-version">^1</span><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 12h15m-5-5 5 5-5 5" fill="none" stroke="currentColor" stroke-width="1.7"></path></svg></a><a href="/zh-cn/agents/router/navigation-blocker" class="agent-doc-row"><span class="doc-kind doc-kind-recipe">recipe</span><span class="agent-doc-copy"><strong>ä¿æ¤è表åç离页导èª</strong><small>ç¨ useBlocker ç resolver ç¶æå®ç°å¯è®¿é®ç离页确认ï¼å¹¶æèç¶ææ³¨å beforeunloadã</small></span><span class="agent-doc-version">^1</span><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 12h15m-5-5 5 5-5 5" fill="none" stroke="currentColor" stroke-width="1.7"></path></svg></a><a href="/zh-cn/agents/router/auth-before-load" class="agent-doc-row"><span class="doc-kind doc-kind-recipe">recipe</span><span class="agent-doc-copy"><strong>ç¨ beforeLoad ä¿æ¤è·¯ç±åæ </strong><small>å¨ pathless layout ä¸è¯»åç±»ååè®¤è¯ Contextï¼é»æ¢æªç»å½ç¨æ·å è½½åè·¯ç±ï¼å¹¶ä¿çç»è¿çº¦æçåè·³ URLã</small></span><span class="agent-doc-version">^1</span><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 12h15m-5-5 5 5-5 5" fill="none" stroke="currentColor" stroke-width="1.7"></path></svg></a></div></section><section class="agent-product-group"><div class="agent-product-label"><span class="product-dot" style="background-color:#4da3ff"></span><span>03</span><h3>TanStack Query</h3><p>æå¡ç«¯ç¶æä¸å¼æ¥æ°æ®</p></div><div class="agent-doc-list"><a href="/zh-cn/agents/query/router-loader-or-query" class="agent-doc-row"><span class="doc-kind doc-kind-decision">decision</span><span class="agent-doc-copy"><strong>Router Loader è¿æ¯ Queryï¼</strong><small>æ ¹æ®å¯¼èªå
³é®æ§åæ°æ®çå½å¨æéæ© LoaderãQuery æä¸¤è
ç»åã</small></span><span class="agent-doc-version">Query ^5 / Router ^1</span><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 12h15m-5-5 5 5-5 5" fill="none" stroke="currentColor" stroke-width="1.7"></path></svg></a><a href="/zh-cn/agents/query/loader-prefetch" class="agent-doc-row"><span class="doc-kind doc-kind-recipe">recipe</span><span class="agent-doc-copy"><strong>å¨è·¯ç± Loader ä¸é¢å Query</strong><small>为 SSR å建请æ±çº§ QueryClientï¼å¹¶è®© Loader ä¸ useSuspenseQuery 使ç¨ç¸å queryOptionsã</small></span><span class="agent-doc-version">Query ^5 / Router ^1</span><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 12h15m-5-5 5 5-5 5" fill="none" stroke="currentColor" stroke-width="1.7"></path></svg></a><a href="/zh-cn/agents/query/mutation-cache-update" class="agent-doc-row"><span class="doc-kind doc-kind-recipe">recipe</span><span class="agent-doc-copy"><strong>ç¨ Mutation ååºæ´æ°ç¼å</strong><small>å½åå
¥ååºå
å«å®æ´å®ä½æ¶ç¨ setQueryDataï¼æ æ³æ¨å¯¼æ£ç¡®ç¼åæ¶æ¹ç¨ invalidateQueriesã</small></span><span class="agent-doc-version">^5</span><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 12h15m-5-5 5 5-5 5" fill="none" stroke="currentColor" stroke-width="1.7"></path></svg></a><a href="/zh-cn/agents/query/freshness-policy" class="agent-doc-row"><span class="doc-kind doc-kind-contract">contract</span><span class="agent-doc-copy"><strong>å®ä¹ Query æ°é²åº¦å¥çº¦</strong><small>æ ¹æ®æ°æ®ååé¢ç设置 staleTimeï¼å¹¶ç¬ç«å³å® inactive ç¼åç gcTimeã</small></span><span class="agent-doc-version">^5</span><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 12h15m-5-5 5 5-5 5" fill="none" stroke="currentColor" stroke-width="1.7"></path></svg></a><a href="/zh-cn/agents/query/abort-signal" class="agent-doc-row"><span class="doc-kind doc-kind-contract">contract</span><span class="agent-doc-copy"><strong>æ¶è´¹ Query ç AbortSignal</strong><small>å° queryFn signal ä¼ å
¥åºå±è¯·æ±ï¼ä½¿åæ¶åæ¢ I/Oï¼å¹¶ä¿çæç¡®çç¼ååæ»è¯ä¹ã</small></span><span class="agent-doc-version">^5</span><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 12h15m-5-5 5 5-5 5" fill="none" stroke="currentColor" stroke-width="1.7"></path></svg></a><a href="/zh-cn/agents/query/infinite-cursor" class="agent-doc-row"><span class="doc-kind doc-kind-recipe">recipe</span><span class="agent-doc-copy"><strong>å»ºç«æççæ¸¸æ Infinite Query</strong><small>ç¨ä¸ä»½ queryKey ç®¡çæ´ä¸ªå表ï¼è®©æå¡ç«¯æ¸¸æ é©±å¨ pageParamï¼å¹¶ç¨ maxPages æ§å¶ç¼åä¸éåææ¬ã</small></span><span class="agent-doc-version">^5</span><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 12h15m-5-5 5 5-5 5" fill="none" stroke="currentColor" stroke-width="1.7"></path></svg></a><a href="/zh-cn/agents/query/ssr-streaming" class="agent-doc-row"><span class="doc-kind doc-kind-contract">contract</span><span class="agent-doc-copy"><strong>é
ç½® Query SSR 䏿µå¼æ¢å¤</strong><small>为æ¯ä¸ª SSR 请æ±å建 QueryClientï¼éè¿å®æ¹ Router éæè±æ°´ä¸æ¢å¤ï¼å¹¶æç¡®é»å¡åæµå¼æ¥è¯¢ã</small></span><span class="agent-doc-version">Query ^5 / Router ^1</span><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 12h15m-5-5 5 5-5 5" fill="none" stroke="currentColor" stroke-width="1.7"></path></svg></a><a href="/zh-cn/agents/query/optimistic-rollback" class="agent-doc-row"><span class="doc-kind doc-kind-recipe">recipe</span><span class="agent-doc-copy"><strong>å®ç°å¯åæ»çä¹è§æ´æ°</strong><small>åæ¶å²çªéåãä¿åç¼åå¿«ç
§ãä¸å¯ååå
¥è稿ï¼å¹¶å¨å¤±è´¥æ¶åæ»ã宿æ¶éæ°éªè¯ã</small></span><span class="agent-doc-version">^5</span><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 12h15m-5-5 5 5-5 5" fill="none" stroke="currentColor" stroke-width="1.7"></path></svg></a></div></section><section class="agent-product-group"><div class="agent-product-label"><span class="product-dot" style="background-color:#38bdf8"></span><span>04</span><h3>TanStack Table</h3><p>æ å¤´è¡¨æ ¼ä¸æ°æ®ç½æ ¼é»è¾</p></div><div class="agent-doc-list"><a href="/zh-cn/agents/table/server-grid-state" class="agent-doc-row"><span class="doc-kind doc-kind-contract">contract</span><span class="agent-doc-copy"><strong>åè°æå¡ç«¯è¡¨æ ¼çæåºä¸åé¡µç¶æ</strong><small>让 Table 管è§å¾ç¶æãQuery 管è¿ç¨æ°æ®ï¼å¹¶ç¨ manualSortingãmanualPagination ä¸ rowCount é¿å
åªå¤çå½å页ã</small></span><span class="agent-doc-version">Table ^8 / Query ^5</span><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 12h15m-5-5 5 5-5 5" fill="none" stroke="currentColor" stroke-width="1.7"></path></svg></a></div></section><section class="agent-product-group"><div class="agent-product-label"><span class="product-dot" style="background-color:#fbbf24"></span><span>05</span><h3>TanStack Form</h3><p>ç±»åå®å
¨ç表åç¶æä¸æ ¡éª</p></div><div class="agent-doc-list"><a href="/zh-cn/agents/form/async-validation" class="agent-doc-row"><span class="doc-kind doc-kind-contract">contract</span><span class="agent-doc-copy"><strong>ä¸ºåæ®µå¼æ¥æ ¡éªå»ºç«å®å
¨è¾¹ç</strong><small>å
åæ¥è¿æ»¤æ æè¾å
¥ï¼åç¨å
ç½® debounce æ§è¡å¼æ¥æ ¡éªï¼å¹¶ææååé¦ä¸æç»æå¡ç«¯éªè¯æç¡®åå¼ã</small></span><span class="agent-doc-version">^1</span><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 12h15m-5-5 5 5-5 5" fill="none" stroke="currentColor" stroke-width="1.7"></path></svg></a></div></section></section></main></div><footer class="docs-footer"><span>TanStack ä¸æææ¡£</span><p>åååè¯ç¥è¯åº · å
容ç±å®æ¹æºæ ¡éª</p><a href="/zh-cn/links">åæ
龿¥</a><a href="https://github.com/TanStack" target="_blank" rel="noreferrer">GitHub</a></footer></div></div><div class="design-switcher" role="group" aria-label="Design variant preview"><button type="button" data-active="true">A 䏿 </button><button type="button">B é¡¶æ </button><button type="button">C 鍿·</button></div></div>
1<script>(function(a,f){let l;try{l=JSON.parse(sessionStorage.getItem(a)||"{}")}catch{return}const n=l?.[f||history.state?.__TSR_key];let c=!1;for(const t in n){const e=n[t],o=e?.scrollX,s=e?.scrollY;if(Number.isFinite(o)&&Number.isFinite(s)){if(t==="window")scrollTo(o,s),c=!0;else if(t)try{const r=document.querySelector(t);r&&(r.scrollLeft=o,r.scrollTop=s)}catch{}}}if(c)return;const i=location.hash.slice(1);if(i){const t=history.state?.__hashScrollIntoViewOptions??!0;if(t){const e=document.getElementById(i);e&&e.scrollIntoView(t)}return}scrollTo(0,0)})("tsr-scroll-restoration-v1_3");document.currentScript.remove()</script>
1<!--/$-->
1<script class="$tsr" id="$tsr-stream-barrier">(self.$R=self.$R||{})["tsr"]=[];self.$_TSR={h(){this.hydrated=!0,this.c()},e(){this.streamEnded=!0,this.c()},c(){this.hydrated&&this.streamEnded&&(delete self.$_TSR,delete self.$R.tsr)},p(e){this.initialized?e():this.buffer.push(e)},buffer:[]};$_TSR.router=($R=>$R[0]={manifest:$R[1]={routes:$R[2]={__root__:$R[3]={preloads:$R[4]=["/assets/index-hLjVoo_m.js","/assets/i18n-CMbmrGSa.js","/assets/qss-B4cMWIbE.js"],scripts:$R[5]=[$R[6]={attrs:$R[7]={type:"module",async:!0,src:"/assets/index-hLjVoo_m.js"}}]},"/$locale":$R[8]={preloads:$R[9]=["/assets/route-C6stfi0P.js","/assets/route-CLG_1kaG.js","/assets/Icons-B_6I98JM.js","/assets/schema-CCDEugzF.js","/assets/docs-navigation-BQJIrtXY.js"]},"/$locale/agents/":$R[10]={preloads:$R[11]=["/assets/agents-CvHSucn9.js","/assets/CopyButton-Ddsz8opC.js","/assets/agent-content-DT1CIFOH.js","/assets/TopicCards-i7c-hDVF.js"]}}},matches:$R[12]=[$R[13]={i:"__root__�",u:1791013827630,s:"success",ssr:!0},$R[14]={i:"�$locale�zh-cn",u:1791013827630,s:"success",b:$R[15]={locale:"zh-cn"},ssr:!0},$R[16]={i:"�$locale�agents��zh-cn�agents�",u:1791013827633,s:"success",ssr:!0}],lastMatchId:"�$locale�agents��zh-cn�agents�",dehydratedData:$R[17]={queryStream:$R[18]=($R[19]=(stream) => new ReadableStream({ start(controller) { 2 stream.on({ 3 next(value) { 4 try { 5 controller.enqueue(value); 6 } catch (_error) {} 7 }, 8 throw(value) { 9 controller.error(value); 10 }, 11 return() { 12 try { 13 controller.close(); 14 } catch (_error) {} 15 } 16 }); 17} }))($R[20]=($R[21]=() => { 18 const buffer = []; 19 const listeners = []; 20 let alive = true; 21 let success = false; 22 let count = 0; 23 const internal = { 24 flush(value, mode, x) { 25 for (x = 0; x < count; x++) if (listeners[x]) listeners[x][mode](value); 26 }, 27 up(listener, x, z, current) { 28 for (x = 0, z = buffer.length; x < z; x++) { 29 current = buffer[x]; 30 if (!alive && x === z - 1) listener[success ? "return" : "throw"](current); 31 else listener.next(current); 32 } 33 }, 34 on(listener, temp) { 35 if (alive) { 36 temp = count++; 37 listeners[temp] = listener; 38 } 39 internal.up(listener); 40 return () => { 41 if (alive) { 42 listeners[temp] = listeners[count]; 43 listeners[count--] = void 0; 44 } 45 }; 46 } 47 }; 48 return { 49 __SEROVAL_STREAM__: true, 50 on(listener) { 51 return internal.on(listener); 52 }, 53 next(value) { 54 if (alive) { 55 buffer.push(value); 56 internal.flush(value, "next"); 57 } 58 }, 59 throw(value) { 60 if (alive) { 61 buffer.push(value); 62 internal.flush(value, "throw"); 63 alive = false; 64 success = false; 65 listeners.length = 0; 66 } 67 }, 68 return(value) { 69 if (alive) { 70 buffer.push(value); 71 internal.flush(value, "return"); 72 alive = false; 73 success = true; 74 listeners.length = 0; 75 } 76 } 77 }; 78})())}})($R["tsr"]);document.currentScript.remove()</script>
78<script type="module" async="" src="/assets/index-hLjVoo_m.js"></script>
78<script>($R=>$R[20].return(void 0))($R["tsr"]);$_TSR.e();document.currentScript.remove()</script>
78</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.