字
字节笔记本
2026年5月3日
TanStack Start - Build from Scratch 从零构建
API中转
¥120
逐步构建一个完整的 TanStack Start 应用程序。
项目目标
构建一个基础的 TanStack Start Web 应用:服务首页、显示计数器、在服务端和客户端增加计数。
构建步骤
第一步:创建项目
bash
mkdir myApp
cd myApp
npm init -y第二步:TypeScript 配置
json
{
"compilerOptions": {
"jsx": "react-jsx",
"moduleResolution": "Bundler",
"module": "ESNext",
"target": "ES2022",
"skipLibCheck": true,
"strictNullChecks": true
}
}第三步:安装依赖
bash
npm i @tanstack/react-start @tanstack/react-router
npm i -D vite @vitejs/plugin-react typescript @types/react @types/react-dom @types/node vite-tsconfig-paths
npm i react react-dom第四步:配置 Vite
typescript
import { defineConfig } from 'vite'
import tsConfigPaths from 'vite-tsconfig-paths'
import { tanstackStart } from '@tanstack/react-start/plugin/vite'
import viteReact from '@vitejs/plugin-react'
export default defineConfig({
server: { port: 3000 },
plugins: [tsConfigPaths(), tanstackStart(), viteReact()],
})第五步:路由配置
tsx
import { createRouter } from '@tanstack/react-router'
import { routeTree } from './routeTree.gen'
export function getRouter() {
return createRouter({ routeTree, scrollRestoration: true })
}第六步:应用根节点
tsx
export const Route = createRootRoute({
head: () => ({
meta: [{ charSet: 'utf-8' }, { name: 'viewport', content: 'width=device-width, initial-scale=1' }],
}),
component: RootComponent,
})第七步:第一个路由
tsx
const getCount = createServerFn({ method: 'GET' }).handler(() => readCount())
const updateCount = createServerFn({ method: 'POST' })
.inputValidator((d: number) => d)
.handler(async ({ data }) => { await writeCount(data) })
export const Route = createFileRoute('/')({
component: Home,
loader: async () => await getCount(),
})相关资源
- TanStack Start 文档: https://tanstack.com/start/latest
- 路由指南: https://tanstack.com/start/latest/docs/guide/routing
分享: