fescover
V2EX  ›  前端开发

Nextjs 一定走偏了

By fescover at 2023 年 7 月 23 日 · 5694 次点击
nextjs13 appdir 出来之后分成了 server component 和 client component ,两套不同的规则和写法,但是实际项目中又得考虑怎么拆分怎么嵌套,server component 无法使用事件监听、hooks 等(那同样是运行在服务端,人家 php 写 html 模板怎么就能用 onclick 呢),而 client component 无法使用 await fetch, form-action 等,同时路由规则,写法规则,api 也越来越多,极大增加了开发者的心智负担,只能说往服务端发展方向是正确的(反正最终目标就是 react+hooks 写法的 php ),但现阶段的 DX 非常差,在写完两个 appdir 项目后,决定暂时放弃 nextjs 了,等真正稳定下来再说。目前调研了几个其他方案,remix/qwik/astro ,惊喜地发现 qwik 解决了目前 nextjs 的大部分问题,大家也可以研究研究这个框架,很不错。
15 条回复  •  2023-07-26 11:22:27 +08:00
estk
   1
estk  
   2023 年 7 月 23 日 via iPhone
你可以继续用 pagesdir
theprimone
   2
theprimone  
   2023 年 7 月 23 日
还在用 pages router 呢,大佬都弃坑了 😂
amlee
   3
amlee  
   2023 年 7 月 23 日
appdir 的文档我都懒得看,继续用 pages
XCFOX
   4
XCFOX  
   2023 年 7 月 23 日
不管是可读性、维护成本、性能、SEO ,Remix 都完胜 Server Component:
https://remix.run/blog/react-server-components

个人完全不能理解 Server Component 有什么用。
原本大部分 SSR 的前端应用是为了支持 SEO ,结果 Server Component 都不支持 SEO ,那要 Server Component 有什么用?

另外就是 Server Component 强行整了两套不同的规则和写法。
隔壁 Nuxt.js( https://nuxt.com/docs/getting-started/data-fetching#usefetch ) 整的多好:直接在组件内 await fetch 。
Leonard
   5
Leonard  
   2023 年 7 月 23 日
我用 remix
ychost
   6
ychost  
   2023 年 7 月 23 日
最近再也巨硬的 Blazor ,挺好用的,真正的服务端一站式解决了,靠 Webhook 实现服务端 onlick
k9982874
   7
k9982874  
   2023 年 7 月 23 日 via Android
早前看 appdir 不支持 i18n 这一条就劝退了,不知道现在怎么样了
YY
   8
YY  
   2023 年 7 月 23 日
chatgpt 不会写 新版本,所以还是老版本更高效 /doge
sphawkcn
   9
sphawkcn  
   2023 年 7 月 23 日
Server Component 这个应该算是 React 的特性吧,只是 next.js 支持了这一特性而已。
bgm004
   10
bgm004  
   2023 年 7 月 23 日 via Android
主要是社区生态没有跟进,之前尝试过。遇到一些问题虽然解决了,但感觉不是最优解。社区对 rsc 的接受度好像一般。
forgottencoast
   11
forgottencoast  
   2023 年 7 月 23 日
@ychost
你说的是 Blazor Server 吧?
agdhole
   12
agdhole  
   2023 年 7 月 23 日
整个 react 路子都在乱走
laogui
   13
laogui  
   2023 年 7 月 23 日 via Android
qwik 又要学新的写法,推荐 remix ,可以继续用 react 。
ychost
   14
ychost  
   2023 年 7 月 25 日   ❤️ 1
@forgottencoast .NET 8 Preview Blazor 已经开始支持 Webassembly 和 Server 混合渲染了
22P
   15
22P  
   2023 年 7 月 26 日
@k9982874 现在 App router 有 i18n 的示例了,但是没给客户端组件解决办法,推荐使用 next-intl
© 2026 V2EX · 41ms · 3.9.8.5