【问题标题】:JavaScript GUI library which is usable from ClojureScript?可从 ClojureScript 使用的 JavaScript GUI 库?
【发布时间】:2012-10-02 12:34:25
【问题描述】:

在我正在进行的一个 Web 开发项目中,我们需要创建一个页面(实际上是它自己的迷你应用程序),该页面将具有交互式“Web 2.0”界面,更像是一个图形桌面应用程序,而不是典型的 Web页面。

我希望使用一种更高级的语言,它可以编译成 JS 用于客户端逻辑,而不是直接用 JS 编程,而 ClojureScript 是我的首选。

我正在寻找一个可以在 ClojureScript 中使用的 JS GUI 库,它支持类似于“桌面”GUI 库(如 Swing、QT、wxWidgets 等)的编程风格。它应该允许我创建弹出窗口<div>“windows”,放置按钮/标签/等小部件。在它们中,将事件处理程序附加到小部件,等等。你知道哪一种可行吗?

【问题讨论】:

  • 伙计,如果 JavaScript 被认为“太低级”,我一定老了!
  • 除了讽刺之外,我建议您直接使用 JavaScript。因为这是所有东西都编译成的基础,所以要好好学习,不要依赖一些更高层次的东西来做你想做的事。掌握了基础知识后,再学习抽象。在您学习基础知识之前,抽象只是一些随机的其他人/公司妨碍您真正想做的事情以及您真正需要知道的事情。
  • @lobsterism,感谢您的建议,但我已经知道 JS,而且我有充分的理由不想直接用 JS 编写这个应用程序。

标签: javascript user-interface clojurescript


【解决方案1】:

Clojurescript 还很年轻——我认为还没有成熟的框架(还没有?)。话虽如此,我正在使用以下组件构建 UI:

Clojure 和 Clojurescript 的一个很好的特性是它们支持通用数据结构上的简单函数。这就是为什么您倾向于看到几个较小的库可以完成一项特定的工作,但可以很好地协同工作,而不是具有对象模型的大型单体框架需要您完全采用一种思维方式。

【讨论】:

  • +1。现在我只对客户端感兴趣,但也感谢其他信息。所以你在客户端使用 Hiccup 来动态生成 GUI 元素? Fetch/Shoreleave 怎么样?您在 服务器端和客户端都使用这些?我知道网络服务器没有很好的方法将通知推送到客户端 JS,所以你必须轮询吗?还是您的应用不需要它?
  • 我正在使用 Crate 从打嗝式数据动态生成 html,并使用 jayq (JQuery) 来操作 DOM。我想使用 Shoreleave 的 pubsub 机制以声明方式将状态(原子)连接到函数,以及在 DOM 中呈现某些内容的其他函数;这都是客户端,没有 pubsub 远程发生。
  • 我查看了 Twitter Bootstrap,但它不允许像桌面 GUI 编程那样的 GUI 编程风格。它仍然坚定地处于“手工破解 HTML/CSS”阵营,这不是我想要的。
【解决方案2】:

您应该考虑使用 Google Closure Library。它具有您要求的所有功能,并且绝对可以从 ClojuresScript 中使用,我已经使用它了。见http://closure-library.googlecode.com/svn-history/r1430/docs/index.html

【讨论】:

  • 嗯。看起来 Closure 没有布局管理器......这似乎是一个主要缺陷。
  • 恐怕没有。它包含所有可以想象的小部件、事件处理等的丰富集合,但您必须注意布局。我只是使用 twitter bootstrap 来放置
    ,然后在其中放置闭包小部件。
  • 真的吗?我今天看了一点 Twitter Bootstrap,但没有看到任何处理布局的东西。我想我得再看看......
  • 好吧,在 bootstrap 的文档中是布局:twitter.github.com/bootstrap/scaffolding.html#layouts
  • 您是否必须为 Bootstrap 包含 所有 CSS 和 JS 才能利用布局功能? (总是喜欢减小静态资产的大小...)
【解决方案3】:

我认为 ExtJS 最适合你的情况,即使这是纯 JS。这是目前最先进的 Web GUI 库,它可以以类似于使用桌面语言和 IDE 的方式创建 Web 应用程序。只需查看他们的demos。我认为 ClojureScript 在可预见的未来不会有类似的东西。

【讨论】:

  • 我没想到会找到一个 ClojureScript 库——这就是为什么我要求一个可以在 ClojureScript 中使用的 JS 库。谢谢你的建议。我会评估它。
  • 嗯。我正在研究 ExtJS,但它似乎有很多缺点。 ExtJS4 试图成为一个我不想要的完整的应用程序框架(包括控制器、模型等)。我只想要一个 GUI 库。您必须购买许可证才能在闭源应用程序中使用它。可用示例和教程的质量很差。 GUI 小部件演示看起来很棒,但它们不提供源代码。
猜你喜欢
相关资源
最近更新 更多
热门标签