跳到正文
cccskills
免费在 GitHub 公开

tanstack-start

TanStack Start (RC) full-stack React with server functions, SSR, Cloudflare Workers. Use for Next.js migration, edge rendering, or encountering hydration, auth, data pattern errors.

中文简介正在准备中。当前显示原文说明。

集成工具Cloudflare
查看安装方法

包含的文件(10)

  • SKILL.md6.4 KB
  • references/cloudflare-hosting-and-env.md2.6 KB
  • references/devtools-and-llm-support.md1.2 KB
  • references/execution-and-auth.md2.1 KB
  • references/navigation-and-preloading.md1.6 KB
  • references/quickstart-and-layout.md2.8 KB
  • references/rendering-modes.md2.0 KB
  • references/routing-and-data-loading.md2.3 KB
  • references/server-functions-and-middleware.md2.9 KB
  • scripts/bootstrap-cloudflare-start.sh1.1 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

TanStack Start (React) — RC-Ready Playbook

Full-stack React on TanStack Router with per-route SSR/CSR, file-based routing, server functions, and first-class Cloudflare Workers support.

Use this skill when

  • Building a greenfield React app that needs route-level SSR/CSR/SSG switches.
  • Migrating from Next.js/React Router while keeping file-based routing + API routes.
  • Shipping to edge runtimes (Workers) with typed server functions and bindings.
  • You want predictable routing with type-safe params/search + built-in preloading.

What’s inside

  • References: quickstart/layout, rendering modes, server functions, Cloudflare hosting, execution/auth, plus new routing/data/navigation/devtools guides.
  • Script: scripts/bootstrap-cloudflare-start.sh <app> scaffolds Start + Workers + binding types.
  • Troubleshooting: hydration, API routing, bindings, navigation/preloading failures.

Quick Start (React)

npm create @tanstack/start@latest my-app
cd my-app
npm run dev

Manual installs (all bundle targets are supported): add @tanstack/react-router + @tanstack/react-start with your bundler plugin (vite, webpack, or esbuild) per the official install guides.

Core layout reminder

  • app/routes/** file-based routes → router tree, automatic code-splitting + data preloading.
  • app/entry.client.tsx hydrates <StartClient />; app/entry.server.tsx wraps createServerEntry.
  • app/config.ts or app/start.ts sets defaultSsr, spaMode, middleware, and context.

Routing + Data Best Practices

  • Type-safe params & search: createFileRoute() infers path params; add validateSearch (zod) to parse and coerce search params.
  • Route matching order is deterministic (index → static → dynamic → splat); rely on this when adding catch-alls.
  • Loaders run once per location change; return plain data, throw redirect()/notFound() for control flow.
  • Data mutations: colocate action/server functions; keep loaders read-only and invalidate via router.invalidate() after mutation.
  • TanStack Query bridge: create a QueryClient in router context and ensureQueryData inside loaders to dedupe fetches.
  • Deferred/external data: stream partial data or read from external loaders; prefer suspense-friendly responses.
  • Head management: set head per route for <title>/meta; derive from loader data to keep SEO consistent.
  • Not-found/auth: throw notFound() or redirect() in loaders/middleware; use error boundaries for UX.

Example route (typed search + data-only SSR):

// app/routes/posts.$postId.tsx
import { createFileRoute, redirect } from '@tanstack/react-router'
import { z } from 'zod'

export const Route = createFileRoute('/posts/$postId')({
  validateSearch: z.object({ preview: z.boolean().optional() }),
  ssr: 'data-only',
  loader: async ({ params, search, context }) => {
    const post = await context.queryClient.ensureQueryData(['post', params.postId], () =>
      fetch(`/api/posts/${params.postId}?preview=${!!search.preview}`).then(r => r.json())
    )
    if (!post.published && !search.preview) throw redirect({ to: '/drafts' })
    return { post }
  },
})

Navigation, Preloading, and UX

  • Link prefetch defaults: <Link preload="intent"> (hover/focus) preloads route data/code; use preload="render" for above-the-fold routes.
  • Programmatic preloading: router.preloadRoute({ to, search }) to warm caches before navigation (e.g., on visibility).
  • Route masking: keep canonical URLs while showing user-friendly masks (e.g., /products?slug=abc masked as /p/abc).
  • Navigation blocking: protect unsaved forms with router.navigate({ to, replace, from }) blockers or useBlocker.
  • Scroll restoration: enable scrollRestoration to restore positions on back/forward; customize per route when using long lists.
  • Search param serialization: customize parse/stringify to keep numbers/dates stable and avoid stringified booleans.

Rendering & Performance

  • Per-route SSR: set ssr: true | false | 'data-only' on routes; defaultSsr config sets the baseline.
  • Code-splitting: file-based routes auto-split; add lazy/load for manual chunks on code-based routes.
  • Preloading strategy: pair preload="intent" links with defaultPreloadStaleTime to avoid over-fetching.
  • Render optimizations: keep loaders pure, memoize heavy components, and use pendingComponent for CSR routes to avoid layout shift.

Devtools, Linting, and LLM Support

  • Add <RouterDevtools /> during development to inspect matches, loader states, and preloading.
  • Enable the ESLint plugin @tanstack/eslint-plugin-router with the recommended config to enforce inference-sensitive property order (e.g., beforeLoad before loader).
  • LLM-aware routing: the Router exposes structured route metadata to LLM agents; keep descriptions concise in Route meta for better AI navigation.

Deployment Notes (Cloudflare-friendly)

  • Keep cloudflare({ viteEnvironment: { name: 'ssr' } }) first in Vite plugins so bindings reach server entry.
  • Regenerate bindings after changes: npm run cf-typegen.
  • For static-heavy sites, enable prerender to ship HTML to Workers Assets/Pages; exclude param routes or add explicit pages.

Ship Checklist

  • Routes load without hydration warnings (prefer ssr: 'data-only' for non-deterministic UI).
  • Search params validated with validateSearch and custom serializer where needed.
  • Link preloading configured for high-traffic routes; blockers added for unsaved forms.
  • ESLint plugin enabled (create-route-property-order rule) and npm run check passes.
  • Devtools verified locally; router.matches state looks correct.
  • Cloudflare bindings typed (cf-typegen) and streaming tested via curl -N.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

100+ animated React components (Aceternity UI) for Next.js with Tailwind. Use for hero sections, parallax, 3D effects, or encountering animation, shadcn CLI integration errors.

中文简介正在准备中。当前显示原文说明。

secondsky/claude-skills2312026年9月28日 更新

Secure API authentication with JWT, OAuth 2.0, API keys. Use for authentication systems, third-party integrations, service-to-service communication, or encountering token management, security headers, auth flow errors.

中文简介正在准备中。当前显示原文说明。

secondsky/claude-skills2312026年9月28日 更新

Creates comprehensive API changelogs documenting breaking changes, deprecations, and migration strategies for API consumers. Use when managing API versions, communicating breaking changes, or creating upgrade guides.

中文简介正在准备中。当前显示原文说明。

secondsky/claude-skills2312026年9月28日 更新

Verifies API contracts between services using consumer-driven contracts, schema validation, and tools like Pact. Use when testing microservices communication, preventing breaking changes, or validating OpenAPI specifications.

中文简介正在准备中。当前显示原文说明。

secondsky/claude-skills2312026年9月28日 更新

Master REST and GraphQL API design principles to build intuitive, scalable, and maintainable APIs that delight developers. Use when designing new APIs, reviewing API specifications, or establishing API design standards.

中文简介正在准备中。当前显示原文说明。

secondsky/claude-skills2312026年9月28日 更新

Implements standardized API error responses with proper status codes, logging, and user-friendly messages. Use when building production APIs, implementing error recovery patterns, or integrating error monitoring services.

中文简介正在准备中。当前显示原文说明。

secondsky/claude-skills2312026年9月28日 更新

查看 secondsky 的全部技能

报告此技能的问题