[随笔] Server Action

本文同步自「我的 Memos - 随笔」,你也可访问 x.singee.me 查看我的全部碎碎念

最近在一个自己的小 Side Project 中使用了一下 Server Action,感受大概是

  1. 更多的其实是替换原来的 /api 路由,可以把它想做一个 TypeSafe 的 RPC,原来需要自己去定义 API 然后生成代码,这些 Server Action 直接帮你做了
  2. 因此,感觉原来用了 Next.js 的 /api 路由的,迁移到 Server Action 会有较大的体验提升
  3. Server Action 本质只能向前端发送一个 JSON Object,缺少了标准 HTTP/RPC 的 StatusCode 和 Headers 的能力,因此如果真的想去很好的用它可能 Server 和 Client 仍然需要包一层
  4. 目前 Server Action 实质上缺少触发前端状态更新的逻辑,如果很需要其实可以利用 WebSocket 或者利用「包的那层」来手搓,实现起来其实也不难
  5. 我遇到 Server Action 最主要的问题其实是它触发调用的那层做的事情实在是太多了,会触发很多 React 内部的状态转换逻辑,另外我发现它与 useReducer 一起用甚至还有 bug(哪怕是目前 Next.js 14 Stable 了)

综上,全栈项目玩玩可以,其余的…没啥必要