11

我认为,ExtJS 与 jQuery 相比只有一个优势,那就是丰富的 UI 组件。构建纯 HTML UI 然后使用 jQuery 或任何其他合适的 javascript 库不是更好的选择吗?

4

3 回答 3

27

ExtJS 在特定场景中确实有意义

如果您正在构建类似桌面的 Web 应用程序(很多 Intranet 应用程序都是这样的),那么 ExtJS 是最好的库之一,因为它为您提供了非常干净的对象模型和经过全面测试的富客户端控件。所有这些以及出色且一致的外观和感觉,因此您不会花时间做所有这些。你宁愿构建你的应用程序。他们还提供出色的客户支持。我在使用他们的论坛和事件支持方面拥有丰富的经验。

如果已经在使用 ExtJS,我会避免使用 jQuery,因为 ExtJS 也提供了您需要的一切,并且也针对它进行了优化。如果您要使用它,请完全接受它

HTML+jQuery 有什么不同

创建即 HTML+jQuery 富客户端网格将花费您大量时间

  • 可分页的,
  • 可排序的,
  • 可过滤,
  • 完全可编辑,
  • 键盘导航和
  • 外观和功能与应用程序的其余部分一致

更不用说您必须自己解决的所有错误(这往往会成比例地控制复杂性)。这只是一种控制。他们提供了大量的。相信我,他们的控件已经在市场上销售了很长时间,并且非常完善并且支持许多浏览器。

如果没有必要,请不要重新发明轮子。

为什么 ExtJS 与 3rd 方库/控件不同

ExtJS 最初是免费的开源代码。免费丰富的控件,具有一致的外观和感觉。它们主要是由 Jack Slocum 编写的,他显然是个精明而乏味的人,他实际上知道自己想要什么,并且在编写时非常彻底。

他在提供库和整个对象模型方面做得非常出色,这些模型在版本上已经非常成熟。很容易看出,这些控件是由开发人员为开发人员构建的。它后来发展为一个半开放的项目(我认为是第 3 版),具有背景收入的可能性。ExtJS 库(类似于 jQuery 的管道代码)仍然是免费的,而大量丰富和精美的控件已获得许可。

整个项目从一个爱好者的车库项目发展为一个成熟的产品。所以它首先完成,完善和进步,然后他们整合了整个事情并在同一个前提下继续。所以它的利润是因为一个(伟大的)产品

其他第三方供应商大多是由利润驱动的=产品因为利润(需求)。他们的代码不仅反映了这一事实。ExtJS legacy 是不同的,因此要好得多。

维护

正如@sra 指出的那样,维护也较低,因为您的代码库更小,这意味着更小的错误表面和需要维护的行数更少。ExtJS 在这个等式中是一个独立的库,由其受人尊敬的所有者维护。由于它都是 Javascript,因此您当然可以扩展它并更改您希望以不同方式工作的特定部分。那些时候我写了很多扩展......在开始使用 jQuery 之后我错过的第一件事是命名空间支持和类结构。ExtJS 对 .net 或 Java 开发人员来说非常自然,因为它给您一种面向对象的感觉。另一方面,如果您不知道自己在做什么以及如何正确使用它,那么 jQuery 并没有提供更多的程序感觉。

我给你的建议?

如果您认为您的应用程序的 UI 可以构建 75% 的 ExtJS 开箱即用控件,我会说完全接受它,不要回头将其与 jQuery 进行比较。不要将它与 jQuery 混合和匹配,除非你有实际的(除了懒于完全学习 ExtJS)包含和使用它的巨大好处。

PS我不为 Sencha 工作,也不是他们的报酬。我只是一个开发人员,在一个项目上工作了 9 个月,当 jQuery 还是个婴儿的时候,这个项目完全使用了 ExtJS alog 和 Asp.net。现在我也是一个重度 jQuery 用户,所以我都知道。好的。我从版本 4 开始就不知道 ExtJS,但我想它所做的只是改进。

于 2012-09-26T14:08:25.283 回答
0

正如您所说,Extjs 提供了多个组件来构建丰富的 UI。作为一个偶尔使用 Extjs 的用户,我想说,如果您需要将大量数据呈现为网格、树,而这些数据可以来自 XML 或 Json 等标准格式,Extjs 会让您获得非常好的结果/渲染在很短的时间内。

如果您希望它具有与 Extjs 组件类似的功能,您将花费大量时间来呈现“纯 HTML”。

你看过他们的演示页面吗?

于 2012-09-26T14:03:01.287 回答
0

EXTJS 为 Web 应用程序提供以下功能:

  • 具有排序、搜索、可编辑行功能的最佳不同网格控件。

  • 窗口弹出和消息框控件有非常非常专业的丰富控件。

  • 表单的最佳用户输入和选择控件。

  • Web 应用程序有用的部分请求服务,如 Http Proxy。

  • 初学者开发人员易于理解。

于 2015-02-12T13:37:17.683 回答