Remix 航运港宇宙
│
├── 文档壳
│ └── root.tsx
│ ├── Meta
│ ├── Links
│ ├── Scripts
│ ├── ScrollRestoration
│ └── Outlet
│
├── 泊位系统
│ └── routes/*
│ ├── 父子嵌套
│ ├── 动态参数 $id
│ ├── 索引页 _index
│ └── Pathless Route _group
│
├── 数据读取
│ └── loader()
│ ├── 服务端执行
│ ├── 返回可序列化数据
│ ├── useLoaderData 读取
│ └── 可抛 Response
│
├── 数据写入
│ └── action()
│ ├── 接收 formData
│ ├── 写数据库/改状态
│ ├── redirect
│ └── 自动 revalidate
│
├── 用户提交
│ ├── <Form> 主航线提交
│ └── useFetcher() 旁路局部提交
│
├── 网络感知 UI
│ ├── useNavigation
│ ├── fetcher.state
│ ├── optimistic UI
│ └── defer + Await
│
├── 可靠性
│ ├── ErrorBoundary
│ ├── Sessions/Cookies
│ └── 渐进增强
│
└── 核心哲学
├── Web 标准优先
├── URL 优先
├── 路由即业务边界
└── 让服务器状态与 UI 自动对齐如果你读完这一篇,脑子里已经不再是“Remix 有哪些 API”,而是出现这样一句话:
“我要给这条航线加一个新泊位,所以我需要一个路由模块,它自己负责读、写、展示、跳转和错误隔离。”
那你就真的入门了。