0

有人能告诉我使用 gwt 查询有什么好处吗?它只是为了 css 效果吗?以及我们如何使用它来创建像 gwt 这样的 ui 元素。

我的理解只是在项目中使用标签,文本框,按钮等gwt组件,然后gwt查询只是为了给这些组件一些效果,是这样吗?

如果是为了css效果,那么我们也可以在gwt中做同样的事情,那么为什么我会使用Gwtquery而不是gwt。有人可以帮我..

谢谢,

4

2 回答 2

3

GQuery 远不止这些。例如,您可以快速轻松地导航到 de DOM(如 jQuery)!

看,今天早上我是这样使用它的:

Element p = DOM.createElement("p");
p.addClassName("KV");
p.setInnerText(newBody);
$(cellList + " #__idx=\""+position+"\" p .KV").replaceWith(p);

如果您查看最后一行,您会看到:小部件的相关 DOM cellList(来自 MGWT 的 CellList),搜索具有 id 的元素,"__idx"然后选择元素p并从中选择具有 class 的元素"KV"

您是否为此考虑过普通 gwt 中的代码?

您可以使用的其他真正有用的东西是 Promise 模式。如果 B 正确完成,则执行 A,如果 C 正确完成,则执行 B。我们在我们的应用程序中使用它进行 oAuth 身份验证。相信如果您在一行中处理 Facebook OAuth,您可以确定一切都很好。

如果您不使用 GQuery,您可能需要使用其 onSuccess 和 onFailure 方法(Spaguetti 代码)创建 4 个回调。

还有更多的东西......

来自谷歌和开源社区的重要人物也在该项目下,这是一个好兆头。

于 2013-06-06T14:52:16.490 回答
3

在 gwtquery 中将其视为 GWT 的重要补充。它不会取代任何东西,但会让你的生活更轻松。

其中,这些是 gquery 添加的 GWT 中缺少的主要功能。

1- CSS 选择器和 DOM 遍历操作:允许您增强任何 GWT 小部件。例如,将图像和 css 类添加到<td>GWT 表中的所有内容非常简单:

$(".mygwttable td").append("<img src='' />").addClass("whatever");

2- 获取 DOM 中存在的任何小部件实例,作为解耦代码的一种方式。

TextBox emailBox = $("input[name='email']").widget()

3- 轻松操作元素:属性、样式等:

$(".gwt-Label")
  .css($$("background: red, color: white, width: 100%")
  .attr("whatever", true);

4- 直观的 Ajax,比 RequestBuilder 简单得多

$(myLabel).load("file.html");

5- 无需编写一行 JSNI 即可读取 javascript、更改 javascript 对象和执行 javascript 函数的助手

Properties history = JsUtils.prop(window, "history");
JsUtils.runJavascriptFunction(history, "pushState", null, null, "whatever.html")

6- Json 和 XML 数据绑定:比 autobeans 更直观、更简单。

7- 承诺、动画等等...

因此,尽管您可以在不使用任何 gwt 小部件的情况下仅使用 gwtquery 来创建 gwt 项目,但使用 gquery 的正常方式是对 GWT 的补充,因此请使用标准 gwt 方式开发您的应用程序,并使用 gquery 帮助程序来编写更少的代码。

在您的情况下,使用普通的 gwt 小部件,并使用 gwtquery 来增强它们(样式、渲染 dom 中的更改、事件等),而无需扩展它们来进行更改。

于 2013-06-07T07:15:37.810 回答