当前位置: 首页 > 科技观察

React团队是技术领域的旋转门吗?

时间:2023-03-19 01:16:28 科技观察

大家好,我是Kason。在“SebastianMarkb?ge”之后,Hooks的发明者、React的另一位核心成员“AndrewClark”加入了Vercel,致力于Next.js的工作。“Andrew”在React团队时,他领导实现了React新的优先级算法Lane模型。加入Next.js后,他将作为外部参与者继续参与React新特性(如ServerComponent)的开发。其实从React的发展战略来看,React成员加入Vercel是水到渠成的结果。这对Next.js用户(普通开发者)、React成员和Vercel来说是一个双赢的局面。整个过程有点像政治上的旋转门。什么是旋转门?所谓“旋转门”,一般是指政府人员退休后加入企业,从事与政府关系相关的工作。例如,FDA(美国食品和药物管理局)负责药品审评的专家,退休后可能会加入制药公司。这种隐藏的职业发展路径会对在职医药审核专家的审核结果产生影响。毕竟,他从政府退休后可能想加入制药公司。在公共领域,旋转门可能会损害公共利益。但在开源世界中,类似的行为是一种双赢的策略。React的开发策略当我们想通过状态来渲染UI时,我们可以使用React。此时,React的定位是“一个渲染UI的库”。然而,当我们想要构建一个完整的应用时,仅仅使用React是不够的,还存在不足:状态管理方案数据请求方案路由方案……这时候React的定位就变成了“构建完整应用必备Meta”-framework”,开发者还需要在meta-framework的基础上,填写上述解决方案。随着上述解决方案的不断整合,“一个以React为meta-framework,包含上述最佳实践的框架解决方案”(如Gatsby、Next.js、Remix)逐渐涌现。当React与Vue、Angular竞争时,如何提升装机量?一开始,各大框架凭借自身特点吸引目标用户(语法、性能、上手难度……)。随着前端的发展,大而全的解决方案逐渐成为主流。此时,增加React的安装基数并不是因为e开发人员使用React,但由于开发人员使用Next.js(或其他类似的解决方案),而Next.js依赖于React。因此,React团队的开发方向逐渐转变:专注于“渲染UI的库”本身,为“上层框架面向开发者的特性”提供底层支持。在这样的策略驱动下,我们会发现一个很奇怪的现象:React18推出并发更新势头强劲,但相关API(如useTransition、useSyncExternalStore)的开发者很少使用。这是因为这些新的API不是给开发者用的,而是给上层框架用的。正因如此,React团队不建议大家直接使用React,而是推荐使用各种上层框架。旋转门React2020React圣诞特辑,走进React核心团队[1]文章中,React核心成员“RachelNabors”谈到了让她沮丧的事情——也许你已经忙了一年,但你的尝试并没有并没有给项目带来实际的进展(例如,2015年,团队曾尝试使用worker来提升性能,但以失败告终)。虽然小姐姐文末强调了——要有信念,但不能因为你没有新的特性输出就说明你没有提供价值。但如果有更稳妥的方式获得稳定的输出,何乐而不为呢?更安全的方法是与行业密切合作。与像Vercel这样的大型开源公司合作,可以确保React的新特性可以通过Next.js平台快速普及。与React本身教育开发者接受新特性的目的相比,前一种方式显然效率更高,成功率更高。随着合作的深入和我们自身的努力,Next.js逐渐成为React领域事实上最大的框架。React团队的几位成员也完成了从“大行业板块团队”到“独角兽企业核心业务”的转变。在这个转变中:Vercel获得了核心业务大佬加入React成员完成了职业发展Next.js开发人员获得更好的功能真是双赢。后记在这场三赢的过程中,谁是输家?答案是:竞品包括Nuxt(或背后的Vue)。近日,拥有10wYouTube粉丝的前端网红“Theo”在React文档仓库发起PR[2],号召React文档不要默认推荐CRA,而是优先使用Vite作为构建应用程序。这一呼吁得到了众多网友的响应。从开发者的角度来看,这个提议是中肯的,“丹”也做出了回应。不过,从商业的角度来看,如果React和Vercel有这么深的渊源,而Vercel又拥有Vite的竞品Turbopack,那才是CRA因为姓氏而不使用Vite的本质原因V,Vercel的V不是吗?参考资料[1]走进React核心团队:https://www.bekk.christmas/post/2020/24/inside-the-react-core-team。[2]公关:https://github.com/reactjs/reactjs.org/pull/5487。