V2EX 10月28日 11:42
后端开发者前端踩坑记:PigeonPod Landing Page 的技术选型之路
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

一位后端开发者在为开源项目 PigeonPod 搭建 Landing Page 时,分享了从 React+Mantine 到 Next.js 再到 Astro 的踩坑经历。文章指出,网页应用与网站的技术选型截然不同,并深入剖析了 Next.js 对 Vercel 的深度绑定以及 Astro 对 CSS-in-JS 库的不兼容。作者强调,“无缝迁移”多为营销口号,并总结了不同框架的特性与局限,旨在帮助其他后端开发者少走弯路,看清前端技术选型的复杂性。

💡 **网页应用与网站的技术选型差异巨大**:文章开篇指出,作为后端开发者,最初尝试将 PigeonPod Web App 的技术栈(React + Mantine UI)直接用于 Landing Page,虽然初期 Lighthouse 评分不错,但很快发现无法被搜索引擎抓取。这揭示了构建交互复杂的 Web 应用与构建以内容展示和 SEO 为主的网站在技术需求上的根本不同,后者更需要真正的静态站点生成(SSG)能力。

🚀 **Next.js 是 Vercel 的“全家桶”,并非独立无忧**:作者在转向 SSG 时选择了 Next.js,但迁移至 Cloudflare 部署时发现,其图片优化等核心功能严重依赖 Vercel 平台,导致使用受限,付出了大量时间尝试 OpenNext 和静态导出等方案,均遇到不少问题。这表明 Next.js 的强大生态与其平台绑定紧密,选择 Next.js 往往意味着选择 Vercel 生态。

🎨 **Astro 性能至上,但对 CSS-in-JS 库兼容性有限**:在 Next.js 遭遇阻碍后,作者转向 Astro,因其默认 SSG 和支持 React 组件的特性而看好。然而,在迁移过程中,Astro 编译失败,最终发现其与 Mantine UI 等 CSS-in-JS 库存在不兼容问题。这说明 Astro 在追求极致性能的同时,也对某些前端生态(如特定 UI 库)存在限制。

⚠️ **“无缝迁移”是营销口号,需谨慎对待**:通过这次经历,作者深刻体会到前端框架之间所谓的“无缝迁移”往往是宣传口号,实际操作中可能充满陷阱和兼容性问题。因此,在技术选型时,应深入了解框架的特性、生态以及与其他技术的集成情况,而非盲目相信营销宣传。

兄弟们,是这样的,我原本是一个 CRUD 仔,最近做了个开源项目 PigeonPod 得到了不少朋友的喜欢。我就趁热打铁搞了个时髦的 Landing Page,结果在前端这块被结结实实地上了一课,想分享一下踩坑血泪史,希望能帮同样是后端背景的兄弟们省点时间。

故事是这样的:

    开局: 我用的是典型的“稳重派”,技术栈直接选了生态最强的 React + Mantine UI。心想这套搞熟了就能一招鲜吃遍天,PigeonPod 本体的 Web App 就是这套技术栈做的,用得很舒服。我就同样把代码改吧改吧直接做了 Landing Page ,很快做完上线,看着 Lighthouse 的 performance 92; Best Practices 100; SEO 85 的评分,感觉稳得很。转折: 一个月后,Google 上压根搜不到我的网站。这才被迫搞明白,我那套 pre-render 小伎俩在真爬虫面前就是个笑话,必须上真正的 SSG 。第一劫:Next.js 。 都说它是 React 的“亲哥”,无缝迁移。结果呢?花了好几个小时迁过去,准备部署到 Cloudflare 的时候才发现,这玩意儿跟 Vercel 是深度绑定的,图片优化之类的核心功能离了 Vercel 就废了。感觉自己被“PUA”了。试了 OpenNext 、静态导出,全都是坑,又浪费了大半天。第二劫:Astro 。 痛定思痛,决定换个思路。Astro 看起来简直是梦中情“框”:默认 SSG 、能用 React 组件、部署自由。结果呢?兴冲冲地把代码迁过去,一编译就报错。最后在官方文档里找到一句冰冷的 “Not a chance” —— Astro 和所有 CSS-in-JS 的 UI 库(比如我用的 Mantine )八字不合。

前前后后快两天时间,代码没写几行,算是把前端这些框架的哲学和门派给彻底搞懂了。

最后悟出几个道理:

把整个心路历程和技术上的思考都写成了文章,里面有更详细的踩坑细节和“暴论”,希望能帮大家看清前端这个“花花世界”。

博客原文链接在这儿: https://asimov.top/posts/react-vs-nextjs-vs-astro-for-backend-devs

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

前端开发 技术选型 PigeonPod React Mantine UI Next.js Astro SSG SEO Landing Page Backend Developer Frontend Development Tech Stack Choice Open Source Project
相关文章