构建组件的框架,以及我们是否有更好的选择

作者:新美高梅

Web前端工程师会“抛弃 React、Angular”?

多年来,业界已经发布了大量 JavaScript 框架,怎样进行选择可能是一个挑战。如果你感到困惑,不知道应该选哪个或者究竟哪个适合你,那么我已经帮你解决了问题。在本文中,我将列出用来构建 Web 应用程序的前10个 JavaScript 框架。

时至2019年,我们都已达成了一项共识:组件可以构建快速、优雅且可维护的UI。

  1. Aurelia

问题在于,每个框架(例如ReactJs、AngularJS、Vue.js或其他一些较小的UI框架)在解决常见的问题时,都会使用自己的模式和解决方案。

Aurelia 是一个开源的现代 JavaScript 模块工具箱,其有助于 Web 和移动应用程序的发展。它也被称为“下一代框架”。该框架自推出以来一直受到广泛认可。 Fileee、Freska、Ordami 和 BTEK Software 等公司以及800多个网站都使用了 Aurelia。

这些框架促进了可重用性,且易于使用。 另外,我听说这些框架背后都有Google或Facebook等大公司的支持。

不要忘记,Aurelia 是唯一允许开发人员使用原生 TypeScript 或 JavaScript 构建组件的框架。

在本文中,我们来讨论一下,这种说法是否属实,社区是否可以做的更好,以及我们是否有更好的选择。

下面我列出了 Aurelia 的一些主要功能:

Web网站、Web应用程序,PWA或其他一切在浏览器中运行的代码最终都会化作HTML、CSS和JavaScript。

多语言支持:Aurelia 的 API 经过精心设计,可以用于当今和未来最实用的 Web 编程语言。 Aurelia 支持 ES5、ES2015、ES2016 和 Typescript,它非常有用,并能够为你提供高度的灵活性。模块框架:Aurelia 不是采用单一框架的方式,而是由较小的、专注的模块组成。把它们放在一起可以组成功能齐全的框架,也可以通过自定义构建可选择的方案。整洁的文档:Aurelia 提供了一个非常详细并有用的文档集,可以帮助所有的开发人员。它以良好的文档维护而闻名。可扩展的 HTML:Aurelia 的可扩展 HTML 编译器允许你创建自定义 HTML 元素,可以向现有元素中添加自定义属性并控制模板生成,所有这些都完全支持动态加载、数据绑定和高性能批量渲染。9. Polymer

那么,我们的目标是应该熟练地使用这些工具。我并没有说我们就使用这些工具,不要理会任何类型的库或框架。

Polymer 是一个由 Google 维护的开源 JavaScript 库,用于使用 Web 组件构建 Web 应用。目前,有超过3000个网站正在使用聚合物,比如virustotal.com、rogers.com、zeplin.io等。

我们都应该使用,但如果我们的选择过多,那么会怎样? 事实上,如今的选择确实过多!多到让你觉得有点头晕。

与其他 JavaScript 框架不同,Polymer 让开发人员构建组件时去利用 Web 中存在的功能。它是第一个利用 Web 组件来对应用进行交互式构建的库。

这些工具非但没有加快你的速度,甚至还成为了累赘,因为你 不知道应该使用哪个前端UI库。 有时,你会想:“以后我就使用ReactJS”。

Polymer 的关键特性:

ReactJS是一种非常好的解决方案,但我们还有Angular以及其他UI框架。这意味着我们无法像一个社区那样协同工作,而是需要将自己分散到这些小社区中。

Web 组件:Polymer 构建在 Web 组件的思想之上。 Web 组件是一组 w3c 标准,由几种不同的 Web 技术组成,其中包括自定义元素。这些组件是浏览器的一部分,所以你不需要任何第三方工具和库,比如 jQuery。单向和双向数据绑定:它提供单向和双向数据绑定。Polymer 旨在支持在单向和双向流动的数据。本机浏览器:Polymer 使用本机浏览器技术,而不是依赖于自定义 JavaScript 库。Polymer 的 DOM 层最接近本机 JavaScript 层。自定义元素:它允许使用 HTML、CSS 和 JavaScript 轻松创建自定义元素,以便向元素添加交互。 Polymer.js 提供了创建自定义 HTML 元素的最简单方法,因为它的库是基于 Web 标准 API 构建的。8. Meteor

尤其是当你发现其中大多数工具都缺乏我们日常使用的功能时,就会觉得更加糟糕。

Meteor 是一个用 NodeJS 编写的免费开源 JavaScript 框架。它允许进行快速原型设计并生成跨平台代码。它在市场上越来越受欢迎,超过 13,000 个网站使用了 Meteor。像mtv.com、meteofrance.com等网站利用 Meteor 来构建他们的用户界面。

ReactJS中的Router一点也不好玩。表单验证也很没劲,没人愿意做。

Meteor 的主要特性:

因此,我们需要在这些UI框架的基础上,再建立别的代码库,而且在大多数情况下,我们需要建立2-3库来执行这些操作。我们不仅需要在UI框架上花费心思,而且还要付出努力重新编写基本的代码。我们浪费了多少时间。 可能有人看到这里会想,这似乎也算一件好事啊! 真的吗?

全栈:Meteor 为开发和部署 Web 应用提供了全栈解决方案。 Meteor 捆绑了几个内置功能,如反应式模板、自动 CSS 等。智能包:为你的应用开发登录系统可能会很麻烦。但 Meteor 不会。 Meteor 软件包可以轻松添加用户帐户,还有 React 之类的 JavaScript 库等。最好方便的是,添加这些类型的智能包很容易,只需在终端中敲几下键盘就可以了。实时网络应用:Meteor 是构建实时程序的完美解决方案。从数据库到模板所有的层都会自动更新。这意味着无需刷新页面即可查看更新。对文档的任何修改都会立即保存。这使得 Meteor 成为实时协作的完美解决方案。单一语言开发:Meteor 允许在前端和后端使用相同的代码,可用于移动和 Web 应用。它可以杜绝安装和配置不同的库、模块管理器、API、驱动程序等。这大大的节省了开发人员的时间,因为他们不需要在服务器语言和 JavaScript 之间执行上下文切换。7. Ember

请搜索:“Linux 桌面系统元年”。

Ember是一个开源的 JavaScript Web 框架,它允许开发人员通过将最佳实践合并到框架中来构建可伸缩的单页面 Web 应用。 Ember 被评为最佳的 JavaScript 客户端框架,其主要竞争对手是 React 和 AngularJS。目前超过 6000 个网站正在使用 ember。仅举几例:nasa.gov、tutorialspoint.com 等。

Linux 桌面系统也有同样的问题:Gnome、KDE、XFCE、Cinnamon、Mate、LXDE等等。

Ember 的一些主要特性:

这些都在试图解决一个问题:改进Linux 桌面系统。

Web开发的未来:在 Babel JavaScript 转换器的帮助下,Ember 允许开发人员使用未来的 JavaScript 标准并将其进行转换为目前浏览器支持的代码。不知道 Babel 是什么? Babel 是一个 JavaScript 转换器,允许开发人员现在使用下一代 JavaScript 代码。另外 Babel 受益于众多插件,并且与 Ember、Rails、Sails 和 Meteor 等框架兼容。Ember cli:Ember 和 Ember-CLI 完全是两个不同的东西,但如果没有另一个则两者都不完整。 Ember-CLI 是一个命令行实用程序,它与 Ember 框架的软件栈一起提供。 Ember-CLI 是一种强大的生产力工具,支持CoffeeScript、Handlebars、LESS 和 Sass 等。Ember 模板:Ember 的模板内置于 Ember 的 UI 中,这些模板使用 Handlebars 模板语言编写。 Handlebars 以其使用双花括号命名,它可以使开发人员写更少的代码。模板在 Ember 中提供了许多功能,例如组件、插口和表达式等。CoC:它的唯一目的是速度和“把事情搞定”的理念,这对于那些总是努力超越竞争对手的初创公司来说是一个巨大的推动力。Ember 有关于其结构的最佳实践,这意味着开发人员可以更专注于实现业务,而不是通过繁琐的代码重新发明轮子。有更多的成果,而不是蓝图。6. NodeJS

但他们成功了吗? 接下来我们来谈一谈可重用性。

Node.js 是一个基于 Google Chrome 的 JavaScript 引擎构建的开源服务器端平台。使用 NodeJS 的网站数量已超过 84,000 个。它是下载量最大的用于执行 JavaScript 代码的跨平台运行时环境之一。

有人记得从Angular 1到Angular 2的跳转吗?

Node.js 的主要特性:

这两个版本就像两个完全不同的框架。

非阻塞:Node.js 库的所有API都是异步的,即非阻塞的。这意味着基于 Node.js 的服务器永远不会等待 API 返回数据。服务器在调用它之后移动到下一个 API,并且事件的通知机制帮助服务器从先前的 API 调用获得响应。单线程美狮美高梅官方网站,:Node.js 使用带有事件循环的单线程模型。事件机制可帮助服务器以非阻塞方式响应,从而使服务器具有高度可伸缩性,而传统服务器则创建有限的线程来处理请求。与 Apache HTTP Server 等传统服务器相比,Node.js 使用的单线程程序可以为更多的请求提供服务。快速:NodeJS 建立在Google Chrome 的 V8 引擎之上。 Google 的 V8 引擎确保 Node.js 库以极快的速度执行其代码。数据流:NodeJS 程序从不缓冲任何数据,它们只是以数据块的形式输出数据。这样 NodeJS 可以提供​​更快的服务。5. BackboneJS

现在我们有了Angular和AngularJS,它们一点都不令人困惑。

BackboneJS 是一个轻量级 JavaScript 库,用来开发和构建在 Web 浏览器中运行的客户端应用。与其他框架不同,Backbone 让开发人员负责选择最适合当前项目的工具。目前,超过50万个网站正在使用 Backbone,其中包括tumblr.com、espn.com、soundcloud.com等等。

你可能在想:“但是,ReactJS没有重大变化呀。”

Backbone 的主要特性:

虽说如此,ReactJS的两个版本之间没有如此巨大的变化!

新美高梅网站,分离的业务和UI逻辑:Backbone 可以帮助你把自己的业务逻辑与用户界面分开,这是非常重要的一点。当两者纠缠在一起时,修改将会变得很难。当逻辑不依赖于 UI 时,你的界面会变得更加易用。事件驱动的通信:当项目不断增长时,jQuery 声明和回调将变得更加复杂,代码变得更加混乱。 Backbone.js 通过在视图和模型之间提供事件驱动的通信来克服这个问题。更少的代码:约定是引入通用编码风格的好方法,而无需提供大量的编码标准。你遵守的 backbone 约定越多,编写代码的次数就越少,反过来代码也会变得更加标准化,并具有可读性。与后端同步:由于其对 RESTful API 的出色支持,BackboneJS 中的模型可以轻松地与后端绑定。如果 API 设计正确,则 backbone 可以直接通过访问这些操作来进行读取、写入和删除操作。4. jQuery

但我问你,你敢在不使用钩子的地方发布React代码吗?相信评论中会有一半人说:“为什么不使用钩子?”

Jquery 是最古老的 JS 框架之一。这个框架已经存在了 13 年之久,而且它仍然很强大。那么什么是 jQuery?

在你需要将基于类的组件重写为基于函数的组件时,也会发生同样的情况。

jQuery 是一个快速而简洁的 JavaScript 库,由 John Resig 在2006年创建,它有一个很好宗旨:写得少,做得多。它是一个跨浏览器的 JavaScript 库,旨在简化 HTML 的客户端脚本。目前有超过 1900 万个网站正在使用jQuery!WordPress、Facebook、Google、IBM 和其他许多公司都依赖 jQuery 提供独一无二的网络浏览体验。

本文由美狮美高梅官方网站发布,转载请注明来源

关键词: