有人能告诉我使用 gwt 查询有什么好处吗?它只是为了 css 效果吗?以及我们如何使用它来创建像 gwt 这样的 ui 元素。
我的理解只是在项目中使用标签,文本框,按钮等gwt组件,然后gwt查询只是为了给这些组件一些效果,是这样吗?
如果是为了css效果,那么我们也可以在gwt中做同样的事情,那么为什么我会使用Gwtquery而不是gwt。有人可以帮我..
谢谢,
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 个回调。
还有更多的东西......
来自谷歌和开源社区的重要人物也在该项目下,这是一个好兆头。
在 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 中的更改、事件等),而无需扩展它们来进行更改。