From 22e7050b23f348dbd184e825ca15d6992e35c573 Mon Sep 17 00:00:00 2001 From: joyzhao Date: Mon, 29 Sep 2025 11:18:15 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=85=B3=E4=BA=8E?= =?UTF-8?q?=E9=80=89=E6=8B=A9=20Nuxt.js=20=E5=92=8C=20NestJS=20=E7=9A=84?= =?UTF-8?q?=E6=96=87=E7=AB=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/profile.jpg | Bin 24976 -> 0 bytes src/pages/zh/blog/posts/temp.md | 76 ++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+) delete mode 100644 public/profile.jpg create mode 100644 src/pages/zh/blog/posts/temp.md diff --git a/public/profile.jpg b/public/profile.jpg deleted file mode 100644 index 8b05d91d096269b0be5e7ca80e5d8aad335ca824..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24976 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 diff --git a/src/pages/zh/blog/posts/temp.md b/src/pages/zh/blog/posts/temp.md new file mode 100644 index 0000000..259c1cd --- /dev/null +++ b/src/pages/zh/blog/posts/temp.md @@ -0,0 +1,76 @@ +# 我为什么放弃 Next.js,选择 Nuxt.js 和 NestJS + +过去几年里,我尝试过很多 Node.js 框架和前端技术栈:**Express、Koa、Fastify、Hono.js**,以及前端的 **Next.js**。这些框架和工具都有各自的优点:轻量、灵活、性能好,社区里也有不少人推荐。然而,随着项目的深入,我逐渐发现了一个事实:**简单、快速实现、自己熟悉、生态完善、可扩展性好**,才是最重要的,而不是盲目追逐“最流行”或“性能最高”的框架。 + +## 为什么不是 Next.js? + +我也写过 React 和 Next.js,但总感觉生态太杂。尤其是 **状态管理**,从 Redux、MobX 到 Zustand、Jotai,再到 React Query、TanStack Query,每一种都有各自的优缺点,但选择过多反而让我心智负担加重。很多问题并不是没有解决方案,而是解决方案太多、没有统一的“最佳实践”。 + +相比之下,**NuxtJS 在 Vue 生态下要更工程化**。比如: + +* 内置路由、布局、服务端渲染等功能,不需要额外选型。 +* Vue 的响应式和 Pinia 状态管理简单好用,不需要反复对比。 +* 配合 Nuxt UI、TailwindCSS,可以快速构建出一致的前端体验。 + +对我来说,NuxtJS 的“约定优于配置”正好能让我聚焦在业务上,而不是被生态碎片化牵扯精力。 + +## 为什么选择 NestJS? + +很多人说 **NestJS 太重**,但我的实际体验是:**它恰到好处**。 + +* NestJS 自带 CLI,可以快速生成模块、控制器、服务,大大提升开发效率。 +* 内置依赖注入、装饰器模式,让代码组织更清晰、可维护。 +* 和 TypeScript 深度结合,不仅提高了开发体验,也减少了运行时错误。 +* 对数据库、认证、缓存、消息队列等都有完善的解决方案,遇到问题时社区文档和生态资源都很丰富。 + +更重要的是,在 **AI 辅助开发** 的今天,像 NestJS 和 NuxtJS 这种约定清晰、工程化程度高的框架,更容易被 AI 理解和提供正确的解决方案。相比一些过于灵活的轻量框架,AI 在这类框架上的“知识盲区”更少。 + +## 两套技术方案 + +结合我的经验和实际需求,我总结出了两套适合的技术栈: + +### 1. 轻量级方案(业务简单) + +* **NuxtJS** +* **Drizzle ORM** +* **Nuxt UI** +* **TailwindCSS** + +适合快速原型、简单应用、验证市场。 + +### 2. 完整方案(业务复杂) + +* **NestJS** +* **NuxtJS** +* **Zod** +* **Drizzle ORM** +* **Redis** +* **Postgres** +* **Nuxt UI** +* **TailwindCSS** + +适合需要后端独立、扩展性强的项目,可以通过微服务、缓存、消息队列等方式支撑更复杂的业务。 + +## 性能并不是唯一的答案 + +很多人推崇 **Hono.js**、**Elysia.js** 等轻量框架,说它们“简单、快、性能好”。确实,在 Hello World 或简单 API 的场景下,它们的性能数据很漂亮。但在真实的生产环境里,**性能瓶颈往往不在框架**,而在: + +* 数据库查询优化 +* 缓存策略 +* 多实例部署 +* 微服务架构 +* 负载均衡与扩展能力 + +这时候,单一框架的“性能优势”几乎可以忽略。真正决定系统表现的,是整体架构设计和资源利用。 + +## 结论 + +我的体会是:**技术选型没有绝对的好坏,关键在于适合自己和项目需求**。 +对我来说,NestJS + NuxtJS 这套组合: + +* 工程化、生态完善,能快速实现功能。 +* 熟悉度高,减少了心智负担。 +* 易于扩展,能应对简单和复杂的业务场景。 +* 在 AI 辅助的今天,更容易获得准确支持。 + +因此,哪怕有人说它们“重”或“不如某某框架”,我依然会坚持:**适合自己的,才是最好的技术栈**。