有人可以告诉我使用gwt查询有什么好处。它只是用于css效果。以及我们如何使用它来创建像gwt这样的ui元素。
我所理解的只是在项目中使用gwt组件,如label,textbox,buton然后gwt查询只是为了给那些组件带来一些效果,是这样的吗?
如果是css效果,那么我们也可以在gwt中做同样的事情,那么为什么我会使用Gwtquery而不是gwt。有人可以帮帮我..
谢谢,
答案 0 :(得分:3)
GQuery远不止于此。例如,您可以快速轻松地导航到de DOM(例如jQuery)!
看,今天早上我以这种方式使用它:
Element p = DOM.createElement("p");
p.addClassName("KV");
p.setInnerText(newBody);
$(cellList + " #__idx=\""+position+"\" p .KV").replaceWith(p);
如果您查看最后一行,您会看到:
小部件cellList
的相关DOM(来自MGWT的CellList),搜索具有标识"__idx"
的元素,然后选择元素p
,并从中选择具有类{{1}的元素}。
您是否认为普通gwt中的代码?
你可以使用的其他非常有用的东西是Promise模式。 如果B已正确完成,则执行类似A的操作,如果C已正确完成,则执行B.我们在我们的应用程序中使用它进行oAuth身份验证。相信如果你在一行中处理Facebook OAuth,你可以确定一切都很好。
如果您不使用GQuery,则可能需要使用onSuccess和onFailure方法(Spaguetti代码)创建4个回调。
还有更多的事情......
Google和Opensource社区的重要人物也在该项目下,这是一个好兆头。
答案 1 :(得分:3)
认为gwtquery是对GWT的重要补充。它不会取代任何东西,但会让你的生活更轻松。
在其他人之间,这些是gquery添加的GWT中缺少的主要功能。
1- CSS选择器和DOM遍历操作:允许您增强任何GWT小部件。例如,向GWT表中的所有<td>
添加图像和css类更简单:
$(".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-助手阅读javascript,更改javascript对象并执行javascript函数而无需编写单行JSNI
Properties history = JsUtils.prop(window, "history");
JsUtils.runJavascriptFunction(history, "pushState", null, null, "whatever.html")
6- Json和XML数据绑定:比自动转发更直观,更简单。
7-承诺,动画等等......
所以,虽然你可以在不使用任何gwt小部件而只使用gwtquery的情况下使用gwt项目,但使用gquery的常规方法是补充GWT,因此使用标准gwt方式开发应用程序,并使用gquery helpers编写更少的代码。
在你的情况下使用普通的gwt小部件,并使用gwtquery来增强它们(样式,渲染dom,事件等的变化),而不必扩展它们来进行更改。