JavaScript 框架之战已经结束

简介: JavaScript 框架之战已经结束赢家只有一个。摄影:Markus Spiske on Unsplash选手框架之间的战争是JavaScript社区中的热门话题,也是该行业众多圣战之一。从一开始,随着jQuery,其次是AngularJS到现代框架,战争一直很激烈。许多人已经倒在了这条路上,比如Backbone或Sencha,留下了尸体:大量的遗留代码必须维护。其他幸存下来,比如jQuery,令人惊讶的是,它仍然有一个庞大的社区。其他的,如Angular,似乎没有像预期或承诺的那样起飞。jQuery它可能是现存年龄最大的参赛者。它非常受欢迎,因为它修复了浏览器之间的互操

JavaScript 框架之战已经结束

赢家只有一个。

摄影:Markus Spiske on Unsplash

选手

框架之间的战争是JavaScript社区中的热门话题,也是该行业众多圣战之一。从一开始,随着jQuery,其次是AngularJS到现代框架,战争一直很激烈。

许多人已经倒在了这条路上,比如Backbone或Sencha,留下了尸体:大量的遗留代码必须维护。其他幸存下来,比如jQuery,令人惊讶的是,它仍然有一个庞大的社区。其他的,如Angular,似乎没有像预期或承诺的那样起飞。

jQuery

它可能是现存年龄最大的参赛者。它非常受欢迎,因为它修复了浏览器之间的互操作性,但应用程序很难扩展。

如今,jQuery已经不是主流之一,也不是大多数项目的最佳选择。

AngularJS

它已经处于LTS模式,并且已经退休,以支持其老大哥。毫无疑问,这是框架生态系统的一次巨大飞跃,我们中的一些人仍然怀念它。

但是,由于它不再积极维护,因此它不再是参赛者。

它来到世界是为了与 React 竞争。AngularJS正在变老,它有性能问题,健壮性问题,随着React变得更好,许多程序员用羡慕的眼光看待React。Angular 对 AngularJS 进行了现代化改造,以利用 ECMAScript 6 的最后改进,并试图履行与 React 有效竞争的承诺。

Angular最突出的难度是其沉重的学习曲线。它需要很多概念,并不是一切都是直截了当的,它有很多死胡同。很好地学习Angular是很困难的:它继承了AngularJS的学习曲线,但遇到了新的困难,比如RxJS或分层依赖注入。

本·纳德尔的原始照片

Angular的其他担忧是它违背了很多承诺。例如,每个人都期望V2有一个简单的方法来创建服务器端呈现的页面,但是现在,2022年2月24日,Angular.io 网站本身在没有JavaScript的情况下无法工作。

但Angular最大的问题是碎片化和版本升级。升级版本非常困难;它是如此困难,以至于用户不会冒险升级其应用程序。可以在npm网站中看到。

有很多旧版本的用户。

VueJS

Vue是许多开发人员的答案,他们需要比AngularJS更高性能的东西,但比Angular更稳定,更易于使用。Vue在其模板系统中非常接近原始的Angular,保持了AngularJS的简单性,但与此同时,它从React获得了一些功能。

但是 VueJS 在版本 1 和 2 中遇到了一个严重的问题:它不能很好地处理数组,作者指责 JavaScript 对更新算法的选择不佳。如果您不使用像Vuex或Redux这样的库,则可能会遇到严重的问题。你可以在这里看到一个在AngularJS中工作的应用程序,但在VueJS中不起作用。

摘自 Vue 文档,他们指责 JavaScript 存在其更改检测算法的局限性。

从理论上讲,这个问题在版本3中得到了解决。但是,将自己的错误归咎于他人并不适合社区。

Sveltejs

它是战争中不断增长的竞争者,并且正在做出巨大的承诺。它声称它的主要优势是将组件翻译成命令式语言,根据他们的说法,它比React采用的声明性语言更好。

毫无疑问,它使用起来更简单,但是转换为命令式以及由此产生的组件并不像看起来那么容易预测。在某些情况下,SvelteJS无法正确检测变化。发生这种情况时,状态可能会损坏,并且视图未正确更新。这个问题引起了如此多的担忧,以至于很难证明SvelteJS中的任何项目都是合理的,就像过去使用VueJS一样。

https://twitter.com/drpicox/status/1496461071334490112

StencilJS

好吧,从技术上讲,它不是一个框架,尽管它是。StencilJS允许编写组件,并将其转换为其他框架。如今,它将组件转换为Angular,React,Vue和WebComponents组件。

但是,这个类有一些奇怪的东西。这真的类似于另一件事,对吧?

有丝分裂

你可能没有听说过它,但它是让我创建这篇文章的人。有丝分裂是由Angular的创建者Misko Hevery创建的最新框架。没错,Misko在Angular之后创建了另一个框架。

有丝分裂与StencilJS具有相同的目的,它将其组件转换为许多框架。顺便说一句,代码是否类似于任何其他框架?

反应

它是最古老的现代框架之一,在npm存储库中已有10多年的历史。尽管它已经发生了很大的变化,但它仍然与大多数以前的版本兼容。所有的变化都变得更好了。有人说,带有钩子的 React 创建了一个更好的框架。

但 React 的最佳质量不是它有钩子或任何可见的功能,而是相反。React 已经推动了 JavaScript 的最新标准,并推动了 JSX 的发展。React 不再是一个框架,也许它从来都不是,它只是一个库。它如此努力地推动标准,以至于它最终将自己从用户代码中移除。

赢家是...

新浪网.好的,React,但不是React本身,而是背后的哲学。React本身就是一个库,但它可以被许多其他库所取代,比如Preact或React Native。但是如果你仔细观察,StencilJS或有丝分裂与React非常相似,这不是巧合,这是因为:

“最好的框架是将自己从用户代码中删除的框架。

React 大量利用 JavaScript 和 JSX(嵌入了 XML 的 JavaScript),并且用户代码与 React 非常不可知,只需进行很少的调整,完全相同的代码就可以在其他框架中工作。

因此,毫无疑问,React 是框架战争的赢家。因为它不是用户代码中的框架。

目录
相关文章
|
1月前
|
Web App开发 JavaScript 前端开发
深入浅出Node.js后端框架
【10月更文挑战第34天】在数字化时代,后端开发如同一座桥梁,连接着用户界面与数据处理的两端。本文将通过Node.js这一轻量级、高效的平台,带领读者领略后端框架的魅力。我们将从基础概念出发,逐步深入到实战应用,最后探讨如何通过代码示例来巩固学习成果,使读者能够在理论与实践之间架起自己的桥梁。
|
2月前
|
JavaScript 前端开发 中间件
探索后端技术:Node.js与Express框架的完美融合
【10月更文挑战第7天】 在当今数字化时代,Web应用已成为日常生活不可或缺的一部分。本文将深入探讨后端技术的两大重要角色——Node.js和Express框架,分析它们如何通过其独特的特性和优势,为现代Web开发提供强大支持。我们将从Node.js的非阻塞I/O和事件驱动机制,到Express框架的简洁路由和中间件特性,全面解析它们的工作原理及应用场景。此外,本文还将分享一些实际开发中的小技巧,帮助你更有效地利用这些技术构建高效、可扩展的Web应用。无论你是刚入门的新手,还是经验丰富的开发者,相信这篇文章都能为你带来新的启发和思考。
|
23天前
|
缓存 监控 JavaScript
Vue.js 框架下的性能优化策略与实践
Vue.js 框架下的性能优化策略与实践
|
23天前
|
开发框架 JavaScript 前端开发
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势。通过明确的类型定义,TypeScript 能够在编码阶段发现潜在错误,提高代码质量;支持组件的清晰定义与复用,增强代码的可维护性;与 React、Vue 等框架结合,提供更佳的开发体验;适用于大型项目,优化代码结构和性能。随着 Web 技术的发展,TypeScript 的应用前景广阔,将继续引领 Web 开发的新趋势。
35 2
|
24天前
|
缓存 负载均衡 JavaScript
构建高效后端服务:Node.js与Express框架实践
在数字化时代的浪潮中,后端服务的重要性不言而喻。本文将通过深入浅出的方式介绍如何利用Node.js及其强大的Express框架来搭建一个高效的后端服务。我们将从零开始,逐步深入,不仅涉及基础的代码编写,更会探讨如何优化性能和处理高并发场景。无论你是后端新手还是希望提高现有技能的开发者,这篇文章都将为你提供宝贵的知识和启示。
|
2月前
|
JavaScript 前端开发 API
Vue.js:现代前端开发的强大框架
【10月更文挑战第11天】Vue.js:现代前端开发的强大框架
79 41
|
1月前
|
JavaScript 中间件 API
Node.js进阶:Koa框架下的RESTful API设计与实现
【10月更文挑战第28天】本文介绍了如何在Koa框架下设计与实现RESTful API。首先概述了Koa框架的特点,接着讲解了RESTful API的设计原则,包括无状态和统一接口。最后,通过一个简单的博客系统示例,详细展示了如何使用Koa和koa-router实现常见的CRUD操作,包括获取、创建、更新和删除文章。
46 4
|
2月前
|
Web App开发 JavaScript 中间件
构建高效后端服务:Node.js与Express框架的完美结合
【10月更文挑战第21天】本文将引导你走进Node.js和Express框架的世界,探索它们如何共同打造一个高效、可扩展的后端服务。通过深入浅出的解释和实际代码示例,我们将一起理解这一组合的魅力所在,并学习如何利用它们来构建现代Web应用。
63 1
|
27天前
|
JavaScript 前端开发 开发者
JavaScript框架React vs. Vue:一场性能与易用性的较量
JavaScript框架React vs. Vue:一场性能与易用性的较量
32 0
|
2月前
|
设计模式 JavaScript 前端开发
浅谈JavaScript 框架在现代 Web 开发中的作用
浅谈JavaScript 框架在现代 Web 开发中的作用
48 12