week 1
-
路由
- Next.js直接用目录结构来区分路由,而不是用类似 config 文件的方式
- 路由的结构就是 tree、subtree、leaf,典型的树状结构
- app router 和 pages router 不要混用,可以理解为 app 是 pages 的扩展,是基于 RSC 的。app 路由下的组件默认为RSC
- 有种(.)开头的文件夹,叫做拦截路由,可以在 a 页面跳转 b 页面时,拦截 b 页面的内容,一般用在弹窗的场景里比较多
-
数据获取
- form标签的 action 为什么可以放带有 use server 的server action?因为 react 18 中对 form 标签的 action 属性进行可扩展
-
api
- route.ts是什么东西?实际上改就是用来自定义请求方法的工具,比如一些基本的用户身份校验,就可以放在 route.ts 中去做。同时 next.js 还支持对不同 segment 提供不同的 route.js。
- 在 pages 路由中,放在 pages/api 下的文件相当于接口,会自动映射到/api/xxx。但是在 app路由中,通过 route handlers,可以在任意路由下通过创建 route.ts 来编写接口。同一个目录下不能同时存在 route.ts以及 page.tsx。也不应该同时用 api 路由和 route handlers。
-
Q&A
- 为什么在项目里打 log ,在开发者工具看不到,但是 terminal 里能看到?因为 Next.js 默认是服务端组件,组件的渲染是在服务端执行的,客户端能看到的时候,已经是 ssr 了