【问题标题】:Anybody knows a good JavaScript UI (Widget) Library [closed]任何人都知道一个好的 JavaScript UI(小部件)库 [关闭]
【发布时间】:2011-10-21 22:23:36
【问题描述】:

最近我不得不开发几个 Web 应用程序。我对 JavaScript UI 库进行了广泛的研究,但我还没有找到一个我真正满意的。我所说的 UI 库是一个提供用户控件的库,例如按钮、组合框、网格、图表、布局......

到目前为止我发现了什么以及为什么我 100% 不喜欢它

  • jQuery UI 控件太少。 (我知道有很多插件,你几乎可以找到所有东西,但它与一个团队或小组制作和测试的完整库不同)
  • Dijit(道场)。我真的很喜欢这个,但是当我尝试在我的网站中使用它时,我总是遇到麻烦。它们似乎不像其他库那样易于使用。
  • YUI 版本 2 有很多控件,但“新”版本 3 仍然缺少很多控件。 (或者我太笨了,找不到它们)我不想同时使用这两个版本,也不想使用很快就会被替换的旧版本。
  • DHTMLX 有很多控件并且它们工作得很好,但是这些控件本身缺乏很多功能。 (例如 HTMLEditor 甚至不支持开箱即用地更改文本颜色,或者我找不到使用某种动画展开/折叠树节点的简单方法)

如果有人知道我还没有尝试过的好库,或者知道如何“更好地”使用上述库之一,我会非常高兴。 我想知道为什么在这一点上(网络应用程序变得如此重要)我仍然找不到一个完整的 UI 框架,它可以为我提供多年来(甚至几十年)在其他环境中可以找到的控件 - 例如Java、.net 或 Delphi 等等。

编辑

我知道不会有一个库包含我需要的所有控件,但我对这样一个库的期望至少是:一致的皮肤、API、文档、验证和您在业务中需要的最重要的控件应用程序/网站(日期选择器、按钮、支持数字数据的编辑器、网格/树、布局控件、HTML 编辑器)以及创建自己的控件的可能性。值得拥有:图表或报告

【问题讨论】:

标签: html javascript


【解决方案1】:

Ext JS 提供了迄今为止最好的 GUI 小部件。我用它做一个大型的内网项目,已经完全满意了。它在 GPLv3 和商业许可下可用。

评估开源框架时要格外小心。他们倾向于虔诚地提高项目的质量,但我发现糟糕的文档和错误的代码无处不在。 Dojo 声称参与了重工业,但他们的文档很差,而且在他们的网站上不难发现错误(dijit 示例页面一次已损坏数月......)。

【讨论】:

  • ext js 看起来很不错——不知道为什么我之前没有找到。关于道场,我注意到了同样的事情,但不想让喜欢它的人感到不安。所以我只是写道我遇到了麻烦 - 听起来更外交;)
  • 当我们为我们的 Intranet 项目选择使用 Ext JS 时,它有点冒险,因为另一个部门已经使用 Dojo 有一段时间了(很多内部专业知识)。几个月后……不后悔。
  • 注意许可。一开始是“非代工”,用了之后就变成“需要代工费”。
  • @JoshuaJohnson:Ext JS 不是免费的。
  • 虽然 Ext 非常强大,但它并不适用于移动网站。为此,Sencha 希望您使用 Sencha Touch 构建一个完全不同的网站。 --- @kta 当然它是免费的。它有一个 GPL 开源版本(Ext 和 Touch)。
【解决方案2】:

您对 JQueryUI 的评论很有说服力。

正如你所说,JQueryUI 确实提供了相对较少的控件,但有很多可用的插件。但是您正在寻找一个包含您想要的所有内容的单一库。

这是一个很难的问题,因为我们实际上并不知道您真正想要什么小部件,您喜欢哪些声音但可能不会使用,或者您会使用哪些小部件,但前提是它们完全符合您的要求你想要的方式。

几乎不可能预测某人可能想要的所有小部件,或者他们希望它们如何工作。即使给定的库确实完全正确,当您的需求朝着错误的方向发生轻微变化时,突然间您选择的库可能会变成一个糟糕的选择,而不是正确的选择。

这就是为什么灵活性和可维护性远比获得精确的功能匹配更重要的原因。一旦你超越了基本的小部件集,大多数其他小部件无论如何都是建立在简单小部件之上的,但每个人对于如何实现它们都有自己的想法,并且每天都在思考新的 UI 概念。这就是为什么插件模型工作得这么好,以及为什么我觉得你在打折 JQueryUI 时犯了一个错误,因为大多数小部件都可以作为插件使用。事实上,我会说这个模型可能是最适合你的解决方案。

您还没有提到许多其他可用的库。 Mootools 和 Prototype 可能是最著名的,但也有其他的。我不会将它们全部列出来,而是将您指向 Wikipedia 上的此页面,该页面将它们全部列在一个比较表中:http://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks

希望对您有所帮助。但我怀疑你不会在该列表中找到任何你想要的小部件附带的任何库,所有这些都在一个捆绑包中。它们都依赖于插件,因为库开发人员通常专注于为小部件制作框架,而不是小部件本身。

【讨论】:

  • 我已经认为我至少会得到一个这样的答案。当然你是对的。拥有这样一个模块化框架有很多原因 - 但也有很多反对它的原因。 1) 你必须找到合适的插件 2) 下载它 3) 检查质量 4) 看看它是否是最新的并且可以使用你的 jQuery 版本 5) 习惯 api 因为不同的插件使用不同的方法 6 ) 确保它支持您的浏览器 7) 不同的发布周期...仅举几例(我只剩下 100 个字符)。我的个人偏好 -> 更多控制,以便我可以更快地解决具体问题。
  • 好吧,在这种情况下,我认为你不会找到你要找的东西。您引用了 Java、.Net 和 Delphi,但它们都是非常大的基于桌面的框架;由于媒体的限制,这种规模超出了基于浏览器的框架的范围。在任何情况下,所有这些示例实际上都有可以下载的第三方小部件,因为即使它们也无法提供您可能需要的一切。如果你的老板看到一个时髦的新小部件,而你的库不支持它,你会怎么做?等待您的库发布补丁或找到插件?
  • 不要误会我的意思:我喜欢 jQuery(和 jQuery UI)并且我一直在使用它。我只是在寻找一个用户控件库,它提供了我每天需要的大部分控件。对于时髦的新小部件,我仍然会依赖第三方小部件 - 大多数时候最好的小部件是 jQuery 插件。
  • @Spudley 在您的评论中假设任何框架都与 jQuery 互斥。 ExtJS 将非常高兴地与 jQuery 并存,如果需要 ExtJS 未提供的小部件并且存在 jQuery 小部件,则可以轻松使用它。毕竟它只是 HTML 和 JavaScript。
  • 模块化框架架构和大量第一方小部件是正交问题。大多数 JS 框架具有模块化架构,但没有广泛的小部件集合(例如 Jquery UI)。 Ext JS 两者都有。
【解决方案3】:

查看 PrimeUI,提供各种小部件并使用 jQuery UI API 构建。在 Apache V2 下获得许可。 http://www.primefaces.org/primeui/

【讨论】:

【解决方案4】:

最近,基于 jQuery 构建的 Telerik Kendo UI(与其他框架没有阻抗不匹配)已开源(Apache 2.0 许可)他们的小部件库。

我强烈推荐这个..

Telerik Kendo UI is not Open Source

Download the Kendo UI - Open Source edition

【讨论】:

  • 我使用 KendoUI 已有 2 年了,我对自己的选择感到非常满意。它具有健壮的结构和易于使用的 API。我使用过其他库,如 jQueryUI 和 WimoUI(基于 jQueryUI)。但它们无法与 KendoUI 相提并论。我还研究了 ExtJS。它看起来很棒,但有点难以使用。
【解决方案5】:

如果您不介意许可,请查看 http://www.sencha.com/ ExtJS 库。

http://www.sencha.com/products/extjs/examples/ 上提供的演示库

【讨论】:

    【解决方案6】:

    SAPUI5 web 控件列表和示例源代码:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-07
      • 2011-02-14
      • 2012-05-23
      • 2011-02-02
      • 1970-01-01
      • 2011-11-21
      相关资源
      最近更新 更多