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

为什么我应该立即放弃React而改用Vue?

时间:2023-03-17 22:00:28 科技观察

Vue.js现在在Github上的星数比React还多。这个框架的流行度越来越高,这非常令人惊讶,因为它没有像Facebook(React)或Google(Angular)这样的大公司的支持。在这篇文章中,我将阐述我对Vue的流行以及为什么它可以超越竞争对手的一些想法。由于Vue的设计理念和功能与React非常相似,我将对两者进行比较并说明为什么React(尽管它是一个很好的框架)经常具有欺骗性。我本人是一个从事多年开发的老web前端程序员。目前正在辞职做自己的web前端私人定制课程。各种框架整理好,送给每一位前端小伙伴。想要获取的可以关注我的头条号,后台私信我:前端,即可免费获取。一、Web开发的发展20世纪90年代,写网站就是纯HTML,加上一些简单的CSS样式。好处是它非常简单。缺点是它缺少很多功能。然后是PHP,我们高兴地写了这样的代码:虽然代码在今天看起来很糟糕,但在当时是一个巨大的进步。这个进展一直到现在都没有改变:选择一门我们喜欢的新语言,新框架,直到有一天更好的竞争者出现。在React出现之前,我使用了Ember。然后我切换到React,它把所有东西都当作Web组件的方式、它的虚拟DOM和高效的渲染令人耳目一新。虽然并非一切都是完美的,但它是代码编写方式的巨大改进。然后我决定改用Vue.js而不是React。React并不可怕,但我发现它笨拙且难以掌握,而且代码在某些地方似乎完全不合逻辑。而Vue解决这些问题的方式让我感到轻松。让我来告诉你为什么。2.性能先说性能。每个Web开发人员都面临带宽限制,因此网页的大小很重要。页面越小越好。而现在,由于移动浏览器的流行,这个问题比几年前更加相关。我们来看一组数字:Vue库的大小是25.6KB。要让React的架构实现类似的功能,需要ReactDOM+ReactRouter+React等插件,共48.8KB。Vue一分。实际性能如下图所示:可以看到,这些性能测试表明,Vue比React使用的内存更少,运行速度更快。Vue的渲染管道速度更快,这在构建复杂的应用程序时非常有用。项目渲染效率更高,无需过多考虑优化代码,可以将更多精力花在对项目真正有用的功能上。它还在移动设备上表现良好,因此无需算法即可使其在手机上呈现得更流畅。从React切换到Vue.js时,您无需在大小和性能上做出妥协。你可以两者兼得。3.学习曲线学习React还不错。很高兴整个库都是围绕Web组件构建的。React的核心很不错也很稳定,但是我一直没弄清楚它的高级路由配置。这么多路由库的版本是干什么用的?当前版本是4(+React-router-dom),但我最终使用了v3。一旦你选择了版本,它仍然可以很好地工作,但学习曲线非常痛苦。第三方库大多数现代框架都具有相同的设计理念:一个简单的、低功能的核心,附加的库对其进行扩充。如果其他库也能以同样的方式轻松集成,那么构建技术栈就会非常简单。在我看来,这一步的简单直接非常重要。React和Vue都有一套工具来帮助你启动项目和配置各种工具。在React生态系统中,掌握各种库可能很困难,因为通常有多个库试图解决同一个问题。在这个问题上,React和Vue都做得很好。代码清晰度在我看来,React的代码清晰度很差。JSX允许在代码中嵌入HTML代码,这在代码清晰度方面是一场灾难。你也会遇到其他问题。从组件模板调用方法往往会导致无法访问this,结果不得不手动绑定:有时React会变得完全不合逻辑……考虑到应用中很可能会用到很多条件判断,JSX方法很哦不。循环的写法更像是一个玩笑。当然你可以改变模板系统,将JSX从React堆栈中移除,在Vue中使用JSX,但这不是学习框架时的第一种学习方式,因此这里不再讨论。另一点是Vue不要求您使用setState或类似的东西。当然,你还是要在data方法中定义所有的state属性,但是如果忘记定义,那么console会提示。其余的将在内部自动处理,您只需修改组件中的值,就像使用普通的Javascript对象一样。React有很多错误。即使实际原理很简单,这些错误也会减慢学习速度。至于简单性,用Vue编写的代码比用其他框架编写的代码要小得多。这是Vue框架最好的地方之一。一切都很简单,复杂的功能只需几行简洁易懂的代码就可以写出来。使用其他框架,您需要多编写10%、20%甚至50%的代码。你不需要学习太多来使用Vue。一切都是直观的。编写Vue.js代码是最接近表达思想的方式。Vue的这种易用性是一个非常好的工具,可以很容易地接受Vue并促进团队沟通。无论您是需要更改技术堆栈的其他部分,在紧急情况下向您的团队添加更多人员,还是解释您的产品,Vue都可以为您节省时间和金钱。时间估计也很容易,因为实现一个功能所花费的时间不会比开发人员估计的时间长,从而减少误解、错误或乐观估计。Vue需要理解的概念更少,更容易与项目经理沟通。4.结论无论从体积、性能、简单性还是学习曲线方面,拥抱Vue.js绝对是现在最好的选择,它可以同时解决时间和金钱的问题。它的轻量级和性能允许你在你的项目中同时使用两个框架(如Angular和Vue),因此更容易移植到Vue。至于社区和流行度,尽管Vue现在受到了很多关注,但很难说它达到了React的流行度。但是,一个没有大型IT公司支持的框架能够如此受欢迎,这本身就令人担忧。它的市场份额从一个默默无闻的项目迅速成长为前端开发领域最大的竞争者之一。Vue上的模块数量也在快速增长,即使找不到你需要的模块,自己写一个也不会花太长时间。该框架使理解、共享和编辑变得容易。不仅阅读别人的代码很容易,修改别人的实现也很容易。使用Vue,我可以在短短几个月内自信地处理子项目和外部人员对项目所做的更改。它节省了我的时间,让我可以专注于系统设计。React在设计上需要诸如setState之类的辅助函数,并且在编程时一定会有忘记使用它们的时候。编写模板也很费力,而且模板的编写方式会使项目难以理解和维护。考虑在更大的项目中使用这些框架,您需要在使用React时掌握其他库,并教您的团队如何使用它们。还要处理各种相关问题(A不喜欢这个库,B不了解那个库等)。Vue栈更简单,更适合团队。作为一名开发者,我感到快乐、自信和自由。作为项目经理,我可以更轻松地与我的团队进行计划和沟通。作为一名自由职业者,我节省了时间和金钱。当然,还有很多Vue没有涵盖的需求(特别是如果您正在构建本机应用程序)。React在这些领域做得很好,但EvanYou和Vue团队已经在着手解决这些问题。React因其出色的概念和这些概念的实现而广受欢迎。但是现在看来,它的概念是一团糟。在编写React代码时,你必须整天处理各种临时对策(请参阅“代码清晰度”部分),试图编写有意义的代码,结果却得到一个没人能理解的解决方案。即使是你自己,解决方案在几个月后也很难阅读。你必须努力工作才能发布一个项目,而你得到的只是一个无法维护、漏洞百出的东西,需要大量培训才能修改。这些都是任何人都不想在项目中看到的负面因素。为什么要处理所有这些麻烦?仅针对社区和第三方库?为了一小部分利益,我们要受那么多的苦,就连这一小部分利益,也越来越不重要了。React曾经让我的生活更轻松,但在某些方面让实现变得更加复杂。多年后,Vue终于让我自由了。它的实现和我想象中的开发非常相似,而且在开发过程中,除了需要实现什么,基本上不需要考虑其他的。它看起来很像原生JavaScript逻辑(没有setState,没有实现条件结构的特殊用法,也没有算法)。按照您想象的方式编写代码。它速度快,安全,让您开心。我很高兴看到Vue被越来越多的前端开发人员和公司所接受,我希望它能结束React的统治地位。