回顾技术圈的2024尤雨溪喷React的“开年之战”

简介: 2024年初,前端开发社区因React新版文档引发激烈讨论。起因是Vue.js创始人尤雨溪在Twitter上批评React将复杂性转嫁给用户,未能有效减轻开发者的心智负担。此言迅速引发React和Vue社区的广泛辩论,开发者们对框架设计理念和用户体验展开了深刻反思。尽管争议逐渐平息,但这次事件促使大家更加关注框架设计的平衡与优化。

在2024年初,前端开发社区的一场激烈讨论围绕着React新版文档展开。这场讨论的导火索来自于Vue.js的创始人尤雨溪,他在Twitter上发表了对React新版文档的批评,认为React将复杂性转嫁给用户,未能有效地减轻使用该框架的心智负担。尤雨溪的言论迅速在React和Vue社区间引发了广泛的讨论,许多开发者开始针对React文档的设计哲学展开辩论,这一事件引起了前端开发者对框架设计理念和用户体验的深刻反思。

现在我们来回顾一下这场经典的事件。起初在2024年1月3日,一位名叫 Sixian 的用户,在 twitter 上表示了React这次更新特别的好,并且非常赞许~!而且获得了非常多的流量。

641.jpeg

不过在两天之后,也就是2024年1月5日,尤雨溪尤大终于看不下去了,于是就进行了抨击,其内容含义就是你不能啥都说好,坏的都说好,你这种感觉就像只“舔狗”。可以从文字看出来尤大很有素质就差直接骂娘了。

b29f198f13ee71e9f8387224a8225245.jpg

然后,尤大可能觉得越想越气,坏的都有人舔,我们这些努力写文档和优化的人还老被质疑,可能觉得非常的不爽,又非常委屈,然后连续补了很多枪。

fc05d92b397019e039d4e8bbbf6990e1.jpg

之后,尤大的言论遭到了技术圈的很多的人围观,本来 Vue 和 React 在理论情面上就属于“竞对”关系,于是各自的社区老炮们开始纷纷站队,于是愈演愈烈。

1736811948447.jpg

最后变成了各自社区直接怼对方框架的某些情况下的软肋~(说实话,如果当时参与的同学,可以拿到很多不错的面试题,比如:请你说明 vue/react 在 xxx 情况下出现的问题,如何解决?并说明原理)。腾讯新闻更以“2024 前端圈 “开年之战”为标题,给了个首页文章。

接下来我们来总结一下。


尤雨溪的观点

尤雨溪在Twitter上明确表示,他认为React的设计哲学存在问题。他指出,尽管React的文档中包含了大量的示例,帮助开发者识别并避开常见错误,但这种方式仍然无法解决根本问题。他认为,框架应当通过简化设计来减少用户的心智负担,而不是让开发者在文档中不断查找解决方案。

bb7e20f5-89b9-4cb9-b348-824e79c01a66.jpeg

尤雨溪进一步解释道,框架设计的真正目的是为了让开发者专注于业务逻辑,而不是处理与框架本身的复杂性相关的额外问题。他批评React将过多的责任放在了开发者身上,导致了不必要的学习成本和开发障碍。他认为,Vue的设计理念则更加注重开发者体验,尽可能降低了学习和使用的复杂性,使得开发者可以更加专注于核心业务。


React和Vue社区的反应

尤雨溪的批评引发了React和Vue社区的广泛讨论。在React社区,一些开发者对尤雨溪的言论表示反感,认为作为Vue的创始人,他不应该公开批评React的设计。尤其是,React在文档中所强调的灵活性和可组合性,一直以来是React的核心优势,很多开发者认为这种灵活性是React能够应对复杂项目和不同需求的关键。

1736778658016.jpg

然而,Vue社区则对此表示支持。Vue的设计理念注重简洁和易用,力求降低开发者的学习成本。许多Vue开发者认为,尤雨溪的批评揭示了React在设计上的一个盲点,即过度复杂化了框架的使用方式,使得开发者在实现功能时面临不必要的困扰。Vue开发者认为,框架不应该要求开发者通过繁琐的文档去应对复杂的设计问题,而是应该通过简化和优化框架本身的结构来减少这种复杂性。


最后结局如何?

这个事件最后并没有引起极大的冲突或决定性的结局,而是逐渐平息。React和Vue社区中的讨论主要围绕尤雨溪的批评观点展开,但并未改变两者之间的框架设计哲学对立。最后的结局就是下面的四种状态:

  1. 公开回应与澄清:虽然尤雨溪的批评引发了广泛讨论,但React团队和开发者并未针对他的言论作出正式回应或修改文档设计。React社区更多的是表达了对其设计哲学的坚持,即灵活性和可组合性是React框架的核心优势。React的设计团队表示,框架的设计本身就会带来一些学习曲线,但这并不意味着文档设计存在问题。
  2. Vue社区的支持:Vue社区的成员继续支持尤雨溪的观点,认为框架应当更多地关注简化使用,而不是过度依赖复杂的文档来弥补设计上的复杂性。然而,Vue团队并未做出任何重大改变,而是继续保持其简洁的设计哲学。
  3. 技术层面的共识:尽管两者在框架设计哲学上存在差异,但这场争论也促进了对前端框架设计原则的深入思考。开发者们对灵活性和易用性的平衡、文档的优化等问题进行了更多的讨论,并且意识到每个框架都有其适用的场景和开发者群体。
  4. 渐渐平息:随着时间的推移,争议逐渐平息。开发者们继续按照各自的需求选择合适的框架,而关于文档设计的讨论也未能引发更大的变革。尤雨溪的批评虽然受到关注,但并没有对React框架的设计方向或Vue的策略产生重大影响。

其实React新版文档的争议,不仅仅是React和Vue社区间的技术讨论,更是关于框架设计哲学的深刻反思。框架的设计不仅需要考虑灵活性和功能性,还需要注重开发者的体验。在高度灵活的框架设计中,如何平衡自由度和简洁性,减少开发者的心智负担,是一个值得深思的问题。

对于React来说,如何在保证框架灵活性的同时,进一步简化框架的设计,使得开发者能够更容易上手并高效开发,是React团队面临的一个重要挑战。而对于Vue而言,尽管它在设计上更加简洁易用,但如何在保持易用性的基础上,增强框架的灵活性和可扩展性,也是Vue团队需要不断优化的方向。

目录
相关文章
|
9月前
|
关系型数据库 MySQL 测试技术
记录一次后端接口抖动的排查过程
某天下午,测试新功能时发现页面接口偶尔变慢,平均十次调用中有三到四次出现3秒以上的延迟。排查了接口、数据库和服务器资源后未发现问题,最终锁定为K8s节点的负载均衡策略导致。测试环境仅有一个公网IP,SLB轮询四个Pod(其中三个为空),造成周期性延迟。移除空Pod后问题解决。
230 5
|
Web App开发 移动开发 前端开发
重磅推荐六款优秀的开源协作编辑工具
重磅推荐六款优秀的开源协作编辑工具
3057 0
重磅推荐六款优秀的开源协作编辑工具
|
缓存 Linux 开发工具
CentOS 7- 配置阿里镜像源
阿里镜像官方地址http://mirrors.aliyun.com/ 1、点击官方提供的相应系统的帮助 :2、查看不同版本的系统操作: 下载源1、安装wget yum install -y wget2、下载CentOS 7的repo文件wget -O /etc/yum.
255274 0
|
6月前
|
负载均衡 容灾 测试技术
弹性公网IP:云时代的”智能通讯管家“
弹性公网IP(Elastic IP)是云计算中实现网络资源灵活管理的重要工具。它如同可自由切换的“电话号码”,解耦了IP与物理设备的绑定,支持快速迁移、故障容灾和成本优化。通过网络地址转换(NAT)技术,弹性公网IP能在不同云服务器间无缝切换,适用于业务迁移、负载均衡扩展及A/B测试等场景。非凡云提供免费弹性公网IP服务,每个账户可申请3个IP,支持高频绑定/解绑操作,带宽独立调整,并配备API管理接口,助力用户实现高效网络资源配置。
318 10
|
9月前
|
机器人
WHALE来了,南大周志华团队做出更强泛化的世界模型
南大周志华团队提出WHALE框架,应对世界模型在具身环境中决策的泛化与不确定性估计挑战。WHALE包含行为条件和回溯-展开两项关键技术,提升模型适应不同行为模式及预测准确性。基于此框架的Whale-ST和Whale-X模型在模拟和真实机器人任务中表现出色,验证了其在视觉控制任务中的长时预测和泛化能力。论文:https://arxiv.org/pdf/2411.05619
210 40
|
12月前
|
前端开发 JavaScript API
2025年前端框架是该选vue还是react?有了大模型-例如通义灵码辅助编码,就不用纠结了!vue用的多选react,react用的多选vue
本文比较了Vue和React两大前端框架,从状态管理、数据流、依赖注入、组件管理等方面进行了详细对比。当前版本和下载量数据显示React更为流行,但Vue在国内用户量增长迅速。Vue 3通过组合式API提供了更灵活的状态管理和组件逻辑复用,适合中小型项目;React则更适合大型项目和复杂交互逻辑。文章还给出了选型建议,强调了多框架学习的重要性,认为技术问题已不再是选型的关键,熟悉各框架的最佳实践更为重要。
6844 1
|
12月前
|
机器学习/深度学习 前端开发 JavaScript
WebAssembly:让前端性能突破极限的秘密武器
WebAssembly(简称 WASM)作为前端开发的性能加速器,能够让代码像 C++ 一样在浏览器中高速运行,突破了 JavaScript 的性能瓶颈。本文详细介绍了 WebAssembly 的概念、工作原理以及其在前端性能提升中的关键作用。通过与 JavaScript 的配合,WASM 让复杂运算如图像处理、3D 渲染、机器学习等在浏览器中流畅运行。文章还探讨了如何逐步集成 WASM,展示其在网页游戏、高计算任务中的实际应用。WebAssembly 为前端开发者提供了新的可能性,是提升网页性能、优化用户体验的关键工具。
5210 2
WebAssembly:让前端性能突破极限的秘密武器
|
XML 前端开发 Java
Spring Boot中怎么使用BPMN
在Spring Boot中集成BPMN工作流,如Camunda,能实现业务流程自动化。以请假流程为例,步骤包括:创建Spring Boot项目并添加Camunda依赖;使用Camunda Modeler设计请假流程,涵盖提交申请、经理审批、HR记录及流程完成阶段;保存BPMN文件至`src/main/resources`目录,以便Camunda自动部署;实现流程逻辑,如通过REST API启动流程实例,并传递请假请求数据。整个过程展示了BPMN流程从设计到部署的完整周期,使业务流程自动化变得高效且直接。 **注意:**摘要已压缩至240字符内,部分内容被省略。
905 2
Spring Boot中怎么使用BPMN
|
JavaScript
Vue3 + Vite + TS项目引入iconfont图标(Svg方式)
前言 每一个项目都避免不了使用各种各样的图标,如果我们使用了 UI 组件库,比如说 ELement 等,那么组件库有一些封装好的图标供我们使用。但是项目是多变的和复杂的,组件库提供的图标很多时候不能满足需求,这个时候就需要我们自己引入想要的图标了。 今天介绍的便是如何将 iconfont 阿里图标库的图标引入到我们的 Vue3 项目中来!
5676 1
Vue3 + Vite + TS项目引入iconfont图标(Svg方式)