最近写点个人小项目,发现 Next.js 14 的 App Router 终于算是彻底稳了。以前搞前后端分离还得单独弄个 Node.js 服务端,现在直接把读写数据库的逻辑全塞进 Server Actions 里,一把梭的感觉确实爽。这篇就把基础的建站流程整理一下,当个脚手架备忘。
1. 一把梭建项目
我一般直接用下面这个命令,该带的 TypeScript 和 Tailwind 都带上了:
1 | npx create-next-app@latest my-blog --typescript --tailwind --eslint --app --src-dir |
2. 那个让人又爱又恨的 App Router
Next.js 14 强制推 App Router,刚开始从 Pages 迁过来确实有点蒙。说白了,它就是靠文件夹名字来定路由:
1 | src/app/ |
写个最简单的外壳(Layout):
1 | // src/app/layout.tsx |
3. 服务端组件 vs 客户端组件
这个是最容易搞混的。简单来说:
默认全是服务端组件。在服务端组件里,你不能用 useState,不能绑 onClick,但你可以直接读库!
1 | // 这是一个服务端组件,直接请求数据,不用写 useEffect! |
如果你的组件有个按钮需要点,或者要保存点状态,那就必须在文件最上面加一句 'use client':
1 | 'use client' // 没这句直接报错 |
4. 彻底抛弃 API 路由的 Server Actions
以前写个表单提交,还得专门去 /api/ 下面建个路由,前端再去 fetch。现在用 Server Actions,简直不要太爽:
1 | // app/blog/new/page.tsx |
5. 偶尔还是得写 API 的情况
如果是给小程序或者别人提供接口,还是得老老实实写 API 路由:
1 | // app/api/hello/route.ts |
其实玩熟了之后发现,Next.js 的思路就是尽量把活丢给服务器干,浏览器只负责展示和少量交互。虽然一开始有点折腾,但配合 Vercel 一键部署,一个人搞定全栈小项目确实非常快。
评论加载中…