React 新文档骂战引发的的思考

2023-03-18 20:54:15 +08:00
 foolishcrab
昨天 react.dev 正式上线了,最大的变化是 CRA 从 react 文档中消失了,react 官方对"开始一个新的 react 项目"的首选建议居然是 nextjs remixjs 。这个事情引发了 Dan 和 yyx 以及很多开源社区活跃份子的友好“讨论”。

个人有几点想法想和大家讨论下,

1. React 曾经对自己的定位是 ui library ,现在官网 quick start 推荐居然选择这么重量级的框架你觉得合理吗?

2. React 或者说现在的前端体系现在对于前端纯新手的入门难度是不是到了地狱级?

3. SSR 的使用场景真的有那么大吗?你的公司或者个人业务中 SSR 给你带来了什么?

4. React 这种由大公司把控的开源项目,它们带来的技术风向值得投入多少注意力?
22625 次点击
所在节点    程序员
128 条回复
Livid
2023-03-19 09:53:06 +08:00
@DGideas 我们之前已经在多个地方向社区沟通过,不要把 AI 生成的内容发送到回复里。

你的账号已经被彻底 ban 。
mdn
2023-03-19 10:19:15 +08:00
meta 公司业务出现危机,裁了这么多人,维护肯定大不如前了

vercel/react yes
abcbuzhiming
2023-03-19 10:28:50 +08:00
当年 React 刚开始推 hook 的时候就有人提过,hook 这东西过于烧脑,不是对开发者友好的技术。当时没几个人信,都是使劲吹 hook 的。其实那时就能看出端倪,React 的技术路线开始偏向 [大牛们觉得好的东西] ,而不是 [平庸开发者] 觉得好的东西。所以现在它推荐你上更复杂的库,也没啥好奇怪的。因为复杂有逼格,这是普遍规律
privater
2023-03-19 10:41:13 +08:00
看了下 react.dev 网站,不过已经忘记之前的 beta 版推荐的起始工具是啥了。

个人一点看法:

CRA 确实太过时了,但是确实又有人真的在用,尤其是 Junior 刚刚学完课程那种,我甚至见过公司项目有 CRA 创建的连 eject 都没做,可以说是基本没有任何优化了。如果从这个角度来说,NextJs 虽然看着很重型,但是 NextJs 很多优化是 default 就启用的,例如拆散打包,图片优化,SSR oob 体验这比 CRA 那种看似为了照顾新人就隐藏大多核心内容,最终导致其实很多人不敢去探究底层和优化完全是两条相反的路径。

而且就像前面几楼说的 Nextjs 如果你不去管 Api route ,SSR 这些后端东西,只用 Page 下面的东西,它依然不过就是个 React + React Router 的东西,重吗?并不重。

CRA 另一个关键的问题是它的设计其实并不代表 React 的真正最优结构,尤其是初始空白 Html 文档的纯 Clien render 。Dan Abramov 自己几次三番都站出来说他建议新人不要用这个 CRA ,他的原话就是 "Every truly efficient React setup was custom, different, and unachievable with Create React App." Link: https://github.com/reactjs/react.dev/pull/5487#issuecomment-1409720741

最后再说回来 NextJs ,它是 Framework ,不是 UI library ,而一个 Framework 必然需要支持大量的应用场景,这就包括很多功能其实大部分人和公司确实用不上。但是如果它恰好符合某些公司的需求,那就是他们用这个 framework 的根本原因。

最后再说 SSR ,与其说 SSR 是为了解决性能问题( cache )不如说是为了搜索和分享 optimization ,因为如果是传统 client render 我们的 html 就是个空架子,而我们的内容全靠 js 执行后填充才有,而如果是搜索爬虫,他们是不会去执行 js ,所以导致你的 page rank 就很低,类似的,如果你用 fb ,tw ,微信分享也是,纯 client render 就没有那个预览图。因为这些分享的时候也是抓个网页回来截图,发现对面只是个空 html 文件,自然就什么都没有。
pursuer
2023-03-19 10:52:21 +08:00
一直用 preact 当组件框架,感觉还好,hooks 感觉会花太多精力在程序结构上,也没怎么用过,后面 react 会怎么搞我大概也不在意了。。
leonlu
2023-03-19 11:03:31 +08:00
@foolishcrab 关于 3 。楼主可以考察一下全球的大厂是否都接入了 webview/reactnative 一类的动态化能力。包体积大小是如何影响 app 分发成功率的。为什么在 gp/ap 严格审核的状态下依旧要上这项技术。然后也许发现 10%只是某个局部业务的现实,更广阔的世界也许远高于这个。所以 h5 占比真的没那么不堪,是业务发展节奏、研发成本和用户体验的平衡妥协折中。
boqiqita
2023-03-19 11:12:48 +08:00
前端娱乐圈嘛,除了不折腾前端效果的一些破事都想参合。
patrickyoung
2023-03-19 11:19:01 +08:00
@DGideas #14 实际为 #11 @Livid
terranboy
2023-03-19 11:19:13 +08:00
CRA 这一套下来 路由 + REDUX 之类的状态管理 就够学一阵子的了 , NEXT.JS 大大简化了 这方面的问题
morri
2023-03-19 11:20:56 +08:00
nextjs 就挺好,功能齐全、前后通吃、客服端渲染、服务端渲染都有。
patrickyoung
2023-03-19 11:25:14 +08:00
作为多年后端来说,前端因为谷歌砍刀部导致的业务持续性问题,Angular 我是不敢用的。就经验积累来说,需要到足够大的用户规模才能发现设计理念和架构的问题,这点上来说 Vue 是比不上 React 的 FB 这个好爹的。但是看了官方文档之后,我其实觉得现在前端除了多了工程化的组建复用之外,小型项目真不如几年前的老架构出活快,整一堆概念把人搞得云里雾里的,而不是减轻开发者的负担。所以我很不理解现在的前端…

PS.很多年前 Sublime 手写过不少 jQuery based 的网站,直接纯客户端渲染的
dw2693734d
2023-03-19 11:31:23 +08:00
nextjs 香的一匹
zhennann
2023-03-19 11:36:02 +08:00
react.dev 官方文档明确说明:
Next.js is a full-stack React framework.
Remix is a full-stack React framework with nested routing.
这说明前端框架都在尝试与后端结合,从而探索新的增长空间。但是,Next.js/Remix 目前的全栈概念更倾向于 BFF 的范畴,做博客、内容站等场景效果比较好,但是做业务系统会很不趁手。真正的面向业务层面的后端是需要准备一套基建的,比如,CRUD 、数据权限、消息推送、工作流引擎,数据字典,消息队列,通用认证体系,等等。如果不朝着这些基建生态努力,免不了陷入“高不成低不就”的境地。可以参考开源全栈框架 CabloyJS ,一直在朝这套基建努力迭代,https://cabloy.com/
Roojay
2023-03-19 11:50:47 +08:00
facebookw/react -> vercel/react
foolishcrab
2023-03-19 13:06:46 +08:00
@patrickyoung
我也是狂热追了一波新框架之后,回到一些老旧的技术栈上发现稳定性、实用性等等没有任何逊色,觉得有一点迷茫。

都说螺旋上升,js 开源社区近几年感觉只有旋转少有上升。
uni
2023-03-19 15:38:09 +08:00
如果我给新人推荐的话我也推荐直接上 next ,cra 根本就是个玩具绝大多数情况下根本无法直接使用啊,next 的“重量”对于前端所面临的业务要求来说并不算重啊,反而学习者直接看到真实的最佳实践这对学习才是最有利的
july1995
2023-03-19 15:54:39 +08:00
@AyaseEri 过于真实. 放在哪里,都说得过去.
zhuweiyou
2023-03-19 15:59:38 +08:00
cra 跑起来还得配置一堆 plugin 才能正常用,反观 next 跑起来就能开始写了,cra 才是重
windyskr
2023-03-19 16:01:28 +08:00
@Livid 这个方法感觉准确性不高。
yodhcn
2023-03-19 16:04:35 +08:00
web 的发展现在是越来越全家桶化了,不论是前端( next.js )还是后端( Spring )

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

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

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

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

© 2021 V2EX