竞争者框架大战是JavaScript社区的热门话题,也是业界众多圣战之一。一开始是jQuery的出现,然后是AngularJS先是出现,再到现代框架的混战,战火愈演愈烈。如今,许多竞争对手,如Backbone或Sencha,都已半途而废:只留下大量必须维护的遗留代码。令人惊奇的是,其他幸存者,如jQuery,仍然拥有庞大的社区。其他的,比如Angular,似乎并没有像预期或承诺的那样起飞。jQuery它可能是现存最古老的竞争者。它非常流行,因为它解决了浏览器之间的互操作性,但它的应用程序很难扩展。今天,jQuery不是主流,也不是大多数项目的最佳选择。$(document).ready(()=>{$("#app").html("HelloWorld!");});AngularJS处于LTS模式,退居二线以支持其老大哥。但毫无疑问,这是框架生态系统的一次巨大飞跃,至今仍有很多人怀念它。但是,由于不再主动维护,它不再是竞争者。angular.module("app",[]).controller("HelloWorldCtrl",($scope)=>{$scope.message="HelloWorld!";});Angular在这里与React竞争。AngularJS很老,它存在性能和健壮性问题,随着React越来越好,许多程序员对它刮目相看。因此Angular通过ECMAScript6改进对AngularJS进行了现代化改造,试图完成与React的摊牌。angular.module("app",[]).controller("HelloWorldCtrl",($scope)=>{$scope.message="HelloWorld!";});Angular最突出的困难是其陡峭的学习曲线。它需要理解很多概念,而且不是一下子直接给你的,很多时候会让你绕道而行。学好Angular是很困难的:它继承了AngularJS的学习曲线,但有新的困难,如RxJS或分层依赖注入。原始照片由BenNader提供。另一方面,令人担忧的是Angular也违背了很多承诺。例如,从V2开始就期望有一种创建服务器呈现页面的简单方法,但截至2022年2月24日,如果没有JavaScript,Angular.io网站本身将无法运行。然而,这并不是Angular最大的问题。它最大的问题是碎片化和版本升级。升级版本非常困难,以至于用户不敢冒险升级他们的应用程序。在npm官网上可以看到老版本的用户很多。VueJSVue是许多需要比AngularJS性能更高、更稳定且更易于使用的框架的开发人员的答案。Vue的模板系统非常接近原始的Angular,也保持了AngularJS的简单性,同时它从React中获得了一些强大的功能。但是VueJS在版本1和2中遇到了一个严重的问题:它不能很好地处理数组,作者将此归咎于JavaScript对更新算法的选择不当。如果你不使用像Vuex或Redux这样的库,你可能会遇到严重的问题。您可以看到该应用程序在AngularJS中可用,但在VueJS中不可用。理论上,这个问题已经在版本3中得到修复。但是,将自己的错误归咎于他人在社区中是不合适的。SvelteJS是战争中日益壮大的竞争者,并正在做出巨大的承诺。它声称主要优点是将组件转换为命令式语言,根据他们的说法,这比React采用的声明式语言更好。<脚本>让世界=“世界”;
你好{this.world}
);然而,这个类有一些奇怪的地方。它类似于另一件事,对吧?有丝分裂你可能没有听说过它,但这就是让我写下这篇文章的原因。Mitosis是Angular的创建者MiskoHevery编写的最新框架。没错,它是继Angular之后Misko创建的又一个框架。从“@builder.io/mitosis”导入{useState};导出默认函数MyComponent(props){conststate=useState({world:"World",});返回