JavaScript的世界:障碍,当前的领先者以及下一步

发布于:2021-01-17 00:05:42

0

63

0

Angular javascript react

在过去的几十年中,JavaScript发展了很多。在这个时候,这种语言已经成为现代网络的重要组成部分。在本文中解释了Angular如何成为今天的主宰者以及下一步。

JavaScript世界令人着迷。在大约20年的时间里,该语言的应用得到了长足的发展-从简单地为网页设置动画到几乎可以做的一切。尽管如此,实际的JavaScript编码语言并未发生许多根本性的变化。所做的大多数更改都是在过去几年中添加的,涉及ECMAScript。

我认为,语言开发最强大的收益是AJAX的创建。AJAX是一项允许在不重新加载页面的情况下从服务器请求和检索数据的技术。从那时起,就可以在浏览器中开发应用程序而无需调用专门的内联应用程序,例如Java applet或Adobe Flash。

一路上的障碍

但是,随着新机会的出现,也出现了一些困难。在早期,JavaScript仍然主要由Web设计人员和布局设计人员使用。换句话说,它被那些对如何编写应用程序以及使用编程模式和体系结构有一定了解的人使用。但是,他们工作的本质是“使图像移动”或“动画页面”。这些设计师的主要职业常常是将图片设计转换为HTML格式或为页面“着色”,并通过使用CSS将生成的框架放置在适当的位置。每个人都有一组特定的插件和小部件,以使页面以一种或另一种方式与用户交互。

随着市场需求的增长,需求越来越复杂。桌面应用程序开发人员和后端开发人员跳入了前端开发。他们逐渐认识到,JavaScript是类似“传统”的编程语言,只用语法类似于C。其余的与传统的服务器端编程相去甚远:没有强大的数据键入功能,不同的浏览器对任何给定功能都有自己的实现功能,有些浏览器甚至支持根本不使用的功能,这是不同的范围界定,神奇的单词“ this”周围无休止的头痛。

jQuery

今天,jQuery是一个标准库,可将开发人员与浏览器进行协调。将其视为一种代码统一器。一旦启用它,跨浏览器的问题就会消失。这些功能在每个浏览器上都具有相同的功能。

下一步是什么?

随着时间的流逝,对编码速度的要求不断提高。单页应用程序的时代已经来临。每个人都需要一种便宜的工具来支持路由,模块化和数据链接。它还必须具有较低的学习曲线,以便程序员可以开始工作。

第一步是ExtJS,prototype,YUI和dojo。关键的缺点是每种方法的学习曲线都很高。

然后,骨干出现了。在一段时间内,它成为了业界的羡慕对象,但是过早地揭示了开发人员在编码时必须考虑到的自身特性。但是随后,两家巨头微软和谷歌进入了市场。微软开始开发KnockoutJS,而Google推出了AngularJS。

当前的领跑者:Angular

在这两种产品中,很明显Angular已赢得了一段时间。当然,这并不完美。仍然有一些缺点。例如,学习曲线仍然不是最简单的。但是,该框架允许开发人员执行很多“即用型”编码。而且,随着npm(JavaScript的程序包管理器)和NodeJS(在全球范围内)的发展,现在可以为项目找到许多现成的解决方案。

不久之后,Facebook推出了ReactJS,它是自己的用于JS渲染优化的库。ReactJS仅处理渲染,但基于“拾取”数据变化。Facebook还提供了自己的架构来构建Flux应用程序。

Google推出了Angular的第二个版本,该版本与Flux架构更类似于Angular1的原始架构。实际上,Angular 2可以使用ReactJS作为视图引擎。

考虑到JavaScript的发展和对强类型,对类声明和对象初始化的语法简化等功能的需求不断增长,当今最流行的TypeScript必须是Microsoft。即使与CoffeeScript和Google的Dart相比,选择也很明确。

新的JavaScript标准更加灵活。它支持旧式编码(基于原型的继承);使用类进行封装,以更“习惯”的形式确保和继承;而且随着ReactJS的出现,函数式编程(纯函数和类似的东西)仍在吸引人。

目前,Flux + ReactJS和AngularJS 2是市场上的主要参与者。实际上,Angular 5已经在市场上。尽管如此,版本2仍然看起来不错。另一个竞争者是TypeScript,它代表了其他语法,可用于React和Angular。

Flux + ReactJS和AngularJS之间的本质区别

AngularJS是一个框架,可以直接进行编码。它具有非常方便的CLI,但是需要其自己的应用程序体系结构。Flux的体系结构可用于多种方法。

目前,最受欢迎的架构实现是Redux。这为解决方案选择提供了更大的灵活性。它可能提供有关资源的最佳代码。但是,如果没有适当的控制,任何应用程序都可能滚雪球,从而导致维护复杂性。