{"version":"https://jsonfeed.org/version/1.1","title":"untitled","home_page_url":"https://elliot-personal-site-cms.hqy841440305.workers.dev","feed_url":"https://cms.elliothu.me/json/","description":"","icon":"https://cms.elliothu.me/assets/default/channel-image.png","favicon":"https://cms.elliothu.me/assets/default/channel-image.png","language":"en-us","items":[{"id":"CsUlOqq1Kij","title":"独立开发：NextJS 🐶 都不用","url":"https://cms.elliothu.me/i/%E7%8B%AC%E7%AB%8B%E5%BC%80%E5%8F%91-nextjs-%E9%83%BD%E4%B8%8D%E7%94%A8/","content_html":"<p>Next.js 作为 React 顶流，多少独立开发者选它当主力？作为一个 CTO + 资深独立开发者，在高强度用 Next.js 上线 N 个产品后，实在忍不住想激情开麦吐槽一下，细数它让人血压飙升的六宗罪。</p>\n<h2>1. 臃肿不堪：Vercel 全家桶的 KPI 填坑计划</h2>\n<p>说好的“开箱即用”呢？打开全是 Vercel 狠活！</p>\n<p>RSC、Edge Runtime、Middleware、Turbopack……独立开发者求的是快，只想简简单单写几个页面赶紧上线找 PMF，却被迫扛起火箭发射台，研究 cache 的 N 种 strategy。</p>\n<p>Dev server 被 Vite 吊打，项目大点 HMR 直接变 PPT。Turbopack 号称下一代构建系统，实则一堆坑解决不了，最后龟速 Webpack 真香了。</p>\n<p>美其名曰“前沿技术”，实则逼你用 Vercel 全家桶。独立开发者？都是 Vercel 的实验小白鼠罢了。</p>\n<h2>2. 性能欺诈：理想是朵花，现实烂泥巴</h2>\n<p>吹爆的 ISR、SSR、SSG 在现实中各种翻车。</p>\n<p>Serverless function 冷启动慢得要命，不如 Cloudflare Workers。</p>\n<p>很多时候 RSC 反而增加延迟，数据获取和组件嵌套拖垮体验。小心翼翼拆分 client/server component，结果一顿操作下来，用户只是觉得一次 loading 变成 N 次 loading，体验负优化。</p>\n<p>Cache 机制各种黑，复杂到堪比意大利面。相信每个 Next.js 用户都经历过：“咦，怎么没更新？”“咦，怎么更新了？”一大堆 Cache 下来，结果性能也没比直接 HTTP Cache 好到哪去。</p>\n<p>Vercel 用乡土黑魔法跑分，你用真金白银买服务器。说好的性能呢？</p>\n<h2>3. Vercel 生态绑架：甜蜜的毒药</h2>\n<p>Next.js 表面开源，实则 Vercel 亲儿子。在 Vercel 上部署确实很爽、很丝滑，但你一旦想跑路？各种专属优化、冷启动配置、图像优化、增量构建、CDN 缓存全都没有。DX 体验退回刀耕火种。要么跪着用 Vercel，要么哭着重写部署脚本。</p>\n<p>关键是 Vercel 这两年频频涨价，计价方式越来越“精细”，免费 Plan 越来越缩水。访问量稍微大一些，就要做好钱包被收割的准备。赛博菩萨 Cloudflare：就这？</p>\n<p>更狠的是，掏空 React 团队，把 React 事实上变成了自己控制的框架。比如 React 的新特性 RSC，明显就是给 Next.js“量身定制”的。用开源框架给自己商业产品做嫁衣，强绑 React 生态，其心可诛。</p>\n<p>收购 NuxtLabs 后，Vercel 左手 React、右手 Vue，实际上垄断 Web 生态的“云平台霸权”。希望 Vue 生态不要再被 Vercel 吸血。</p>\n<h2>4. 学习曲线：从入门到弃坑只需一版</h2>\n<p>App Router、RSC 概念轰炸，文档像拼图，找文档犹如解密藏宝图，令人精疲力尽。</p>\n<p>SSR、SSG、CSR、ISR、PPR 傻傻分不清，写 Next.js 犹如化身赛博孔乙己，研究 div 的十三种 render 方法。</p>\n<p><code>layout.ts</code>、<code>page.ts</code>、<code>route.ts</code> 文件一大堆，一个页面几十行代码拆成好几个文件，IDE 跳转点得手都酸了。</p>\n<p>刚学会 Pages Router？Vercel 反手强推 App Router，旧项目秒变技术债孤儿。</p>\n<p>API 今天还是 experimental，明天就 deprecated，犹如博主的时尚单品一样，让人每天充满新鲜感。</p>\n<p>Next.js 的版本号是日历，每月学废一个新功能。</p>\n<h2>5. 构建地狱：等 Build 像等初恋回微信</h2>\n<p>页面多点？构建时间指数爆炸。</p>\n<p>ISR 配置巨复杂，手动设置 revalidate 并处理缓存失效逻辑，调试到秃头。</p>\n<p>强推的 Turbopack 就是个扶不起的阿斗，速度不如 Vite，灵活性不如 Webpack。</p>\n<p>尤其是老项目从 Webpack 升级上来的，一大堆 build errors 好不容易修完了，结果发现还有一大堆 Webpack 插件不兼容，天都塌了。</p>\n<p>SSR 内存占用失控，小服务器想跑 Next.js，直接 OOM 升天。</p>\n<h2>6. 伪灵活：自由的牢笼，焊工的地狱</h2>\n<p>号称是框架，啥都给你做了，就是没有数据和状态管理。想用什么自己焊：外接状态库结合 Next 的迷之 Cache 和 Router，数据流变浆糊，慢慢 debug 去吧。</p>\n<p>想用 Next.js 做 SPA？别想不开了，数不完的坑等着你。你就说爸爸的大 SSR 快不快？</p>\n<p>路由想深度定制？<code>next.config.js</code> 炼狱等你，good luck。</p>\n<p>调试 SSR 错误像侦探破案，客户端和服务端日志随机二选一，让我在上班时也能体会到抽盲盒的快感，非常贴心。</p>\n<p>想用 Server Action 当后端？省省吧，各种限制和 anti-pattern。有那查文档的时间，不如老老实实用个后端框架一把梭干完了。</p>\n<p>用 Next.js 写代码心智负担过重，开发模式反直觉。写多了真的心累，只会想回归简简单单的“传统”React 开发模式。毕竟咱们写代码是为了变现，不是吃瘪。</p>\n<h2>血泪总结 + 救命建议</h2>\n<p>Next 刚出现时是最好用的框架。它普及了 SSR，也推动了社区的发展，不可否认有非常积极的历史意义。但现在，除非历史包袱重，否则真不推荐。下面是更好的方案：</p>\n<ul>\n<li><strong>轻量快迭代：</strong>Vite + React + TanStack（强推 Query + Router），丝滑优化，省下 90% 配置时间。</li>\n<li><strong>要 SSR/SSG：</strong>Remix / Astro，不绑架云平台，灵活、性能和 DX 我都要。</li>\n<li><strong>要 Server Action：</strong>试试 tRPC / oRPC，结合 TanStack Query。end-to-end TypeSafe 用在小型项目上简直爽得要命，还能无缝集成 Hono 等其他后端框架。</li>\n<li><strong>必须部署 Next.js：</strong>Cloudflare + next-on-pages。赛博菩萨免费额度每天十万次请求，够你白嫖到爽，付费也才 5 美元，跟不要钱一样。</li>\n<li><strong>要图像优化：</strong>直接 Cloudflare Images（5 美元/月），无缝集成 Next Image 组件，配合 R2 / S3，实在太方便。</li>\n</ul>\n<hr><p><a href=\"https://www.xiaohongshu.com/explore/687a8930000000001c0303db\">原始小红书笔记</a></p>","content_text":"Next.js 作为 React 顶流，多少独立开发者选它当主力？作为一个 CTO + 资深独立开发者，在高强度用 Next.js 上线 N 个产品后，实在忍不住想激情开麦吐槽一下，细数它让人血压飙升的六宗罪。\n\n1. 臃肿不堪：Vercel 全家桶的 KPI 填坑计划\n\n说好的“开箱即用”呢？打开全是 Vercel 狠活！\n\nRSC、Edge Runtime、Middleware、Turbopack……独立开发者求的是快，只想简简单单写几个页面赶紧上线找 PMF，却被迫扛起火箭发射台，研究 cache 的 N 种 strategy。\n\nDev server 被 Vite 吊打，项目大点 HMR 直接变 PPT。Turbopack 号称下一代构建系统，实则一堆坑解决不了，最后龟速 Webpack 真香了。\n\n美其名曰“前沿技术”，实则逼你用 Vercel 全家桶。独立开发者？都是 Vercel 的实验小白鼠罢了。\n\n2. 性能欺诈：理想是朵花，现实烂泥巴\n\n吹爆的 ISR、SSR、SSG 在现实中各种翻车。\n\nServerless function 冷启动慢得要命，不如 Cloudflare Workers。\n\n很多时候 RSC 反而增加延迟，数据获取和组件嵌套拖垮体验。小心翼翼拆分 client/server component，结果一顿操作下来，用户只是觉得一次 loading 变成 N 次 loading，体验负优化。\n\nCache 机制各种黑，复杂到堪比意大利面。相信每个 Next.js 用户都经历过：“咦，怎么没更新？”“咦，怎么更新了？”一大堆 Cache 下来，结果性能也没比直接 HTTP Cache 好到哪去。\n\nVercel 用乡土黑魔法跑分，你用真金白银买服务器。说好的性能呢？\n\n3. Vercel 生态绑架：甜蜜的毒药\n\nNext.js 表面开源，实则 Vercel 亲儿子。在 Vercel 上部署确实很爽、很丝滑，但你一旦想跑路？各种专属优化、冷启动配置、图像优化、增量构建、CDN 缓存全都没有。DX 体验退回刀耕火种。要么跪着用 Vercel，要么哭着重写部署脚本。\n\n关键是 Vercel 这两年频频涨价，计价方式越来越“精细”，免费 Plan 越来越缩水。访问量稍微大一些，就要做好钱包被收割的准备。赛博菩萨 Cloudflare：就这？\n\n更狠的是，掏空 React 团队，把 React 事实上变成了自己控制的框架。比如 React 的新特性 RSC，明显就是给 Next.js“量身定制”的。用开源框架给自己商业产品做嫁衣，强绑 React 生态，其心可诛。\n\n收购 NuxtLabs 后，Vercel 左手 React、右手 Vue，实际上垄断 Web 生态的“云平台霸权”。希望 Vue 生态不要再被 Vercel 吸血。\n\n4. 学习曲线：从入门到弃坑只需一版\n\nApp Router、RSC 概念轰炸，文档像拼图，找文档犹如解密藏宝图，令人精疲力尽。\n\nSSR、SSG、CSR、ISR、PPR 傻傻分不清，写 Next.js 犹如化身赛博孔乙己，研究 div 的十三种 render 方法。\n\nlayout.ts 、 page.ts 、 route.ts 文件一大堆，一个页面几十行代码拆成好几个文件，IDE 跳转点得手都酸了。\n\n刚学会 Pages Router？Vercel 反手强推 App Router，旧项目秒变技术债孤儿。\n\nAPI 今天还是 experimental，明天就 deprecated，犹如博主的时尚单品一样，让人每天充满新鲜感。\n\nNext.js 的版本号是日历，每月学废一个新功能。\n\n5. 构建地狱：等 Build 像等初恋回微信\n\n页面多点？构建时间指数爆炸。\n\nISR 配置巨复杂，手动设置 revalidate 并处理缓存失效逻辑，调试到秃头。\n\n强推的 Turbopack 就是个扶不起的阿斗，速度不如 Vite，灵活性不如 Webpack。\n\n尤其是老项目从 Webpack 升级上来的，一大堆 build errors 好不容易修完了，结果发现还有一大堆 Webpack 插件不兼容，天都塌了。\n\nSSR 内存占用失控，小服务器想跑 Next.js，直接 OOM 升天。\n\n6. 伪灵活：自由的牢笼，焊工的地狱\n\n号称是框架，啥都给你做了，就是没有数据和状态管理。想用什么自己焊：外接状态库结合 Next 的迷之 Cache 和 Router，数据流变浆糊，慢慢 debug 去吧。\n\n想用 Next.js 做 SPA？别想不开了，数不完的坑等着你。你就说爸爸的大 SSR 快不快？\n\n路由想深度定制？ next.config.js 炼狱等你，good luck。\n\n调试 SSR 错误像侦探破案，客户端和服务端日志随机二选一，让我在上班时也能体会到抽盲盒的快感，非常贴心。\n\n想用 Server Action 当后端？省省吧，各种限制和 anti-pattern。有那查文档的时间，不如老老实实用个后端框架一把梭干完了。\n\n用 Next.js 写代码心智负担过重，开发模式反直觉。写多了真的心累，只会想回归简简单单的“传统”React 开发模式。毕竟咱们写代码是为了变现，不是吃瘪。\n\n血泪总结 + 救命建议\n\nNext 刚出现时是最好用的框架。它普及了 SSR，也推动了社区的发展，不可否认有非常积极的历史意义。但现在，除非历史包袱重，否则真不推荐。下面是更好的方案：\n\n轻量快迭代： Vite + React + TanStack（强推 Query + Router），丝滑优化，省下 90% 配置时间。\n\n要 SSR/SSG： Remix / Astro，不绑架云平台，灵活、性能和 DX 我都要。\n\n要 Server Action： 试试 tRPC / oRPC，结合 TanStack Query。end-to-end TypeSafe 用在小型项目上简直爽得要命，还能无缝集成 Hono 等其他后端框架。\n\n必须部署 Next.js： Cloudflare + next-on-pages。赛博菩萨免费额度每天十万次请求，够你白嫖到爽，付费也才 5 美元，跟不要钱一样。\n\n要图像优化： 直接 Cloudflare Images（5 美元/月），无缝集成 Next Image 组件，配合 R2 / S3，实在太方便。\n\n原始小红书笔记","image":"https://static.elliothu.me/production/media/image-d9ba596e961fa5de76561deccdfb9b51.png","date_published":"2025-07-19T03:21:02.000Z","date_modified":"2026-09-30T05:17:42.352Z","language":"zh-Hans","_microfeed":{"slug":"独立开发-nextjs-都不用","web_url":"https://cms.elliothu.me/i/%E7%8B%AC%E7%AB%8B%E5%BC%80%E5%8F%91-nextjs-%E9%83%BD%E4%B8%8D%E7%94%A8/","json_url":"https://cms.elliothu.me/i/CsUlOqq1Kij/json/","rss_url":"https://cms.elliothu.me/i/CsUlOqq1Kij/rss/","guid":"CsUlOqq1Kij","status":"published","date_published_short":"Fri Jul 18 2025","date_published_ms":1752895262000}}],"_microfeed":{"publisher":{},"microfeed_version":"1.0.13","base_url":"https://cms.elliothu.me","categories":[],"subscribe_methods":[{"name":"RSS","type":"rss","url":"https://cms.elliothu.me/rss/","image":"https://cms.elliothu.me/assets/brands/subscribe/rss.png","enabled":true,"editable":false,"id":"dRUbO1ZtqDU"},{"name":"JSON","type":"json","url":"https://cms.elliothu.me/json/","image":"https://cms.elliothu.me/assets/brands/subscribe/json.png","enabled":true,"editable":false,"id":"gJeUy-adarl"}],"description_text":"","copyright":"©2026","itunes:type":"episodic","items_sort":"published_at","items_order":"desc"}}