首页/分类/Web 开发

Web 开发

Next.js、React、TypeScript、前端工程化

专题

本专题收录 Web 开发 方向的文章和社区讨论,重点关注真实工程场景、工具选择、实践路径和风险边界。

页面会持续更新,适合作为学习路线、选型参考和技术复盘入口。

@dev-kai·1 分钟阅读·Web 开发

App Router 迁移半年,聊聊踩过的坑

把一个 Pages Router 项目分批迁到 App Router,前后折腾了快半年。最大的感受是:缓存边界和 "use client" 这两件事,文档轻描淡写,实际占了 80% 的坑。 中间遇到过几次经典翻车: 客户端组件里直接 fetch ,被默认缓存导致数据不刷新。 pa

#Next.js #React♥ 290 评论
@leo-codes·1 分钟阅读·Web 开发

Server Components 到底解决了什么问题?

看了不少文章,还是没完全 get 到 RSC 的核心价值。表面说是 "组件在服务端跑",但 SSR 不也能在服务端跑组件吗? 我自己理解下来,主要差在两点:RSC 是 "按组件粒度" 决定跑在哪,并且它能直接访问数据源,不用再走一层 API。组件树里零 JS 下发到客户端这点确实

#Next.js #React♥ 360 评论
@mistral42·1 分钟阅读·Web 开发

求助:useSearchParams 导致 hydration 报错

App Router 里用 useSearchParams 拿 query 参数,本地 dev 没事,prod 一打开就报 hydration mismatch,浏览器控制台一片红。 查了一圈说是它会让页面退化成客户端渲染,需要包一层 <Suspense 。包了之后报错没了,但首

#Next.js #React♥ 430 评论
@nova-builds·1 分钟阅读·Web 开发

RSC 里直接查数据库,会不会把 schema 暴露到前端?

团队里在推 RSC 直接调 Prisma 查数据,省掉一层 API route。但我心里一直有个疑问:这样写会不会把数据库 schema 间接带到客户端 bundle 里? 我试了下,只要不在 client component 里 import 那些查询函数,Prisma 的代码

#Next.js #TypeScript♥ 500 评论
@kai-hsu·1 分钟阅读·Web 开发

Server Actions 用了三个月,聊聊体验

项目里把表单提交全换成了 Server Actions,整体真香,但坑也不少。最大的爽点是省了 API route、省了手写 fetch,form 提交后直接拿到新数据重渲染。 不爽的地方: 错误处理有点别扭, useActionState 的返回值结构要自己约定。 上传文件场景

#Next.js #React♥ 570 评论
@raven·1 分钟阅读·Web 开发

ISR 在 tagging 页面经常不刷新,怎么办?

一个内容站,详情页用 ISR, revalidate 设成 60 秒。大部分页面 OK,但有些带多个 tag 的聚合页经常好几分钟都不更新。 后来发现是 CDN 层的 s maxage 把它兜住了,ISR 这边其实早就重新生成了,但边缘节点没回源。把 Cache Control

#Next.js♥ 640 评论
@han-dev·1 分钟阅读·Web 开发

Next.js 的 cache 像玄学,有人整理过一份心智模型吗?

Next 15 的缓存四件套——Data Cache、Full Route Cache、Router Cache、Request Memoize——文档看完了还是分不清。经常出现 "改了数据但页面没变" 或 "登录态串了" 的情况。 我自己总结了一个粗暴的判断法: 跨请求共享的数

#Next.js♥ 710 评论
@jiang-mu·1 分钟阅读·Web 开发

generateStaticParams + dynamicParams,到底用哪个?

动态路由 [slug] 这块, generateStaticParams 决定哪些路径在 build 时预生成, dynamicParams 控制其它路径能不能按需生成。这俩参数配合起来我一直没整明白。 试出来的结论: dynamicParams: true (默认):没列出来的

#Next.js♥ 780 评论
@zero-cool·1 分钟阅读·Web 开发

分享我的 Next.js 项目结构约定

团队规模上来之后,App Router 的目录约定变得越来越重要。分享一份我们用了一年的结构: 几个硬约定: app/ 下的 page 不写业务逻辑,只组装。 数据访问统一走 lib/db/ .server.ts ,文件名后缀卡边界。 Server Actions 放 featu

#Next.js #TypeScript♥ 850 评论