说几点个人使用 nextjs 的感受

99 天前
MorningStar0  MorningStar0

网页: https://freezer-home.ashesborn.cloud/ 仓库: https://github.com/sadofriod/freezer-home

部署角度

目前体验基本满分。结合 vercel 基本不用任何配置,就能快速部署。并且使用 cloudflare 的域名后,也可以实现让国内访问。

开发体验角度

无法在 server component 里直接使用 hooks ,ref 和 react 的事件收集( onChange 这类)的功能,所以有些动画需要原生实现,失去了 react 的很多便利性。

SEO 角度

由于可以将大部分内容直接通过静态页面返回,所以确实带来了巨大的提升。但是官方文档对于 robots ,sitemap ,meta 标签的 keywords 之类的常见功能没有提供一个比较好的解决方案(目前还是采用字符串模版拼接的方式,或者是我没仔细看),理想的情况下希望能提供几个函数来收集每个路由下的信息来解决这个问题。

监控工具的集成角度

目前我集成了 google analytics 、tag manager 、google 站长工具。官方提供了一个集成的 component 配置比较简单。

server 负载角度

对于大部分网页访问量不高的情况不会有问题,但虽然提供了 server component 的渲染缓存,但对于接入数据的变动 server component 来说,还是存在部分 CPU 密集型的计算在 nodejs 的 server 中,在访问量比较大的时候,还是需要考虑。

总结

总的来说,对于我个人来讲,如果没有强烈的 SEO 需求,对于一般项目的话不会采用 nextjs 。server component 和 client component 的分离,迫使我在状态管理上要做更多思考和操作。而且对于首屏的渲染在现在协商缓存的基础下,也只有用户收到新版本的网页的时候会有差距,其他大部分情况下差距不大。

6199 次点击
所在节点   程序员  程序员
54 条回复
tpxcer
tpxcer
99 天前
那你的描述似乎 NUXT 比较舒服些。
zsj1029
zsj1029
99 天前
Astro 试试
lavard
lavard
99 天前
生态为王,nextjs + tailwindcss + shadcn/ui 这套太能打了,太适合目前的 AI 时代了,很多产品只要描述下就能生成。就是 React 19 大改了, 很多第三方库还没跟上,用 next15 又上 React 19 又有点尴尬 , 开发体验还没那么快升上去,等周边生态吧。
MorningStar0
MorningStar0
99 天前
@tpxcer 因为一直是 react 生态 nuxt 还没体验过
MorningStar0
MorningStar0
99 天前
@zsj1029 之前用过,怎么说呢,感觉开发体验有点原始
MorningStar0
MorningStar0
99 天前
@lavard 我是使用 MUI( https://mui.com/)这个库了,而且总感觉 css in js 比 tailwindcss 更适合 JSX 这种情况😂
snowlee
snowlee
99 天前
开发体验确实不太行,热更新慢而且老报错

如果不是考虑 SSR 还是用 Vite 开发舒服,生态完全可以自己选择,Vite + tailwindcss + shadcn/u,

或者 Vite + mui or antd+ styled-compoents 都不错
MorningStar0
MorningStar0
99 天前
@snowlee 我用 v15 ,现在在创建项目的时候可选 turbopack 了,所以热更新还挺快的。
snowlee
snowlee
99 天前
@MorningStar0 #8 15 确实没太了解。https://www.snowlee.site/ 我的博客是 13 搭建的,基本加个新页面就要重新启动,然后热更新真的比 vite 慢好多好多
Frankcox
Frankcox
99 天前
我是 SRE ,目前也刚刚开始自学 React 和 Next.js ,现在有个问题想请教下,React Next.js 开发时是需要明确区分服务端组件还是客户端组件吗?这些一般都是在设计的时候根据数据情况来进行区分吗?
MorningStar0
MorningStar0
99 天前
@Frankcox 是的,在 server component 中是无法使用 useEffect 和 useState 这些常用 hook 的。如果当前组件是 client component 需要在文件最顶部声明。
jun0205
jun0205
99 天前
觉得 nextjs 除了 api 比较好用,其它的算是把前端开发都变复杂了,然后开发环境是真慢,用 nextjs 主要还是为了使用 vercel
cwliang
cwliang
99 天前
用过一段时间,体验不是很舒服,如果不考虑 SEO ,我是不会用这玩意的。
13=>14=>15 每个版本变动很大,需要重新看文档。文档比较杂,同一个东西能看到好几种使用姿势。还有那个 NextAuth ,简直就是一坨。跑起来很吃内存,如果有内存泄漏问题,需要很强的 node.js 功底去排查,用起来成本挺高的
9ki
9ki
99 天前
不喜欢 next.js 的一个重要原因是它的脚手架又重又难用, 和基于 vite 的一堆 ssr 框架相比体验差太远了
witcan
99 天前
为什么我用最新版的 nextjs ,什么都不改,构建生产文件就报错,不知道是不是姿势不对
fescover
99 天前
试试 react-router v7, 一个框架集齐 spa, ssr, ssg
https://reactrouter.com/home

搭配 trpc, 全栈开发体验丝滑
https://github.com/SteveSuv/remix-t3-stack
monkeyWie
99 天前
我用 nextjs 不用它的 SSR ,我还是前后端分离,build 出来的静态文件放 CDN ,这样感觉最完美
zhengfan2016
99 天前
公司主用框架就是 nextjs ,实话说我觉得 op 对 nextjs 很大概率仅存于业余上的使用或者就不是专业的 react 前端,才能得出 server component 不好用的结论。server 组件优势就是可以把一些内容移到水合前就填充进白纸 html 里,加快首屏渲染速度。至于 hooks ,你完全可以分离拆组件,而且 nextjs 允许你客户端和服务端组件相互嵌套,你只要不通过 props 传递 JSX 就可以,其实是有一丢丢像 astro 的岛,每个客户端组件就是一个岛

推荐阅读国外其他前端 er 对 react 服务端的帖子: https://www.joshwcomeau.com/react/server-components/

我是工作经验 1.5 年的 react 前端,如果你工作年限比我大,那么你说得对😁
MorningStar0
99 天前
@zhengfan2016 不好评价 可以看看我 blog
zhwithsweet
99 天前
无所谓,我全都要 https://github.com/fisand/f3-app

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1099027

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX