第六章:React 19 Actions 与乐观交互
本章基线是 React 19 稳定版和普通 Vite 客户端项目。Actions 把一次提交期间的异步工作、pending 与结果更新组织在一起;它们不会自动提供数据库、鉴权、幂等或 Server Function 编译支持。
阅读顺序
- Actions 与 pending 状态:先让表单提交拥有明确输入、结果与 pending,再跟踪前一次结果怎样进入下一项队列。
- 乐观更新与回滚:再让界面先显示预期结果,并在权威结果到达后确认或撤回。
- 表单、Server Action 与边界:最后区分浏览器提交、客户端函数 Action 和框架提供的 Server Function。
完成后你会得到数量提交表单、可失败的乐观任务列表、双意图表单。每个例子都能直接放入 Vite 的 App.jsx,不使用 canary API 或第三方依赖。
本章成果
- pending 只覆盖所属表单/Action,错误是可显示的数据,提交按钮是表单后代。
- 乐观项有临时身份和 pending 标记;失败后回到权威 state,错误仍可见。能解释为什么恢复整份旧数组可能撤销别人的成功提交。
- 能解释为何在 Vite 文件里写
"use server"不会凭空创建服务端端点,且客户端校验绝不能充当权限控制。
答案见本章答案册。