使用带有jQuery的Google Closure模板

Ism*_*ilS 5 javascript jquery widget google-closure google-closure-library

我们开始使用JavaScript和HTML5创建一个应用程序,它将使用rest API访问服务器资源,充分利用我们的开发团队已经熟悉的jQuery非常棒和容易.这个应用程序将使用多种语言.我们后来决定使用JavaScript编写DOM,这样我们就可以灵活地使用UI位与其他应用程序集成,并使用jQuery UI小部件创建自己的小部件.然后,只需在我们的其他应用程序的相关页面中添加引用JavaScript文件的脚本标记,我们将完成对该特定功能的大部分集成.

因为使用JavaScript创建DOM需要大量编码,所以我们开始寻找可以帮助我们轻松地将HTML转换为JavaScript以创建UI的工具,因此Google Closure模板也随之而来.

此时我想到的是,使用Google闭包编写UI DOM位,因为它可以快速为我的DOM提供JavaScript,然后用于其他JavaScript(即用于服务器端通信和其他UI逻辑,如更改UI一旦获得来自服务器的响应和x应该更改为y,点击z种类的东西)需要手写,我应该使用易于编写的jQuery.

但在看了这个问题之后,我发现两者都是相互比较的,这让我对一些事情感到疑惑.

  1. 如果我按照我的想法去做,我能否在我的jQuery小部件中调用Google Closure生成的函数来呈现UI?

  2. 如果我离开jQuery并且只使用Google Closure它是否足以满足我的要求?

  3. 当我开始阅读Google Closure文档时,我发现它有一个全新的世界,它涉及到学习曲线.这个多少钱?如果不是很多,那么我们的5个开发团队将准备好学习它.

在2和3,如果任何已经使用它的人都可以提供一些见解,那就太棒了.

注意: - 如果它有任何相关性,我们正在为服务器端的Microsoft .NET堆栈工作.

bol*_*est 8

Closure库和Closure模板不依赖于彼此,因此您当然可以使用带有jQuery的Closure模板而无需引入Closure库或Closure Compiler.要使用带有jQuery的模板,请使用SoyToJsSrcCompiler.jar 文档中的描述翻译Closure Template文件(也称为"Soy"文件).然后,每个Soy文件都有一个JavaScript文件,其中每个JavaScript文件在相应的Soy文件中定义每个模板一个函数.

要使用生成的JavaScript函数,还必须包含soyutils.js,这是生成的函数所需的一组实用程序.因此,您的生产系统应包括以下顺序连接/缩小的以下JavaScript文件:

  • soyutils.js
  • 从Soy生成的JavaScript
  • jQuery库
  • 您的应用程序代码,可能取决于jQuery和模板函数.

快速了解Closure模板比学习库或编译器要容易得多,所以我确信您的开发团队可以快速获取它.我相信在线文档是彻底的,而不是压倒性的,所以语法和用法不应该花很长时间来学习.

请注意,如果您决定在某些时候使用Closure Library而不是jQuery,则应该包括soyutils_usegoog.js而不是soyutils.js.虽然如果您决定在拥有大量代码后重写应用程序逻辑以依赖Closure Library而不是jQuery,那么这个小小的改变可能是您最不关心的问题!也就是说,我确信您最终可以使用Google Closure编写整个应用程序,但是对于大型应用程序从一个JavaScript库迁移到另一个JavaScript库可能需要进行如此多的代码更改,以至于您可能无法进行迁移.