0

我想将 ES6 依赖项 (vtk.js) 集成到 Qooxdoo 应用程序中。我不知道如何管理这个。这是使用 vtk.js的示例。所以我的问题是:

  1. 是否可以集成 ES6 依赖项?
  2. 如果有可能,我该怎么办?
4

1 回答 1

1

简短的回答是肯定的,但有一些警告。Qooxdoo v5(当前版本)不支持代码中的 ES6 结构,因为 (a) 生成器不会接受该语法并且 (b) ES6 需要严格模式,并且存在阻止其工作的兼容性问题。

您可以将 Qooxdoo v5 与 ES6 库一起使用,前提是您不想自己编写 ES6 代码 - 严格模式是在每个文件的基础上指定的,您唯一的限制是不要在生成器编译的代码上启用它(即你的代码)。

但是,Qooxdoo v6 支持开箱即用的 ES6,前提是您使用新的编译器(位于github.com/qooxdoo-compiler)。该编译器将允许您编写 ES6 代码并即时转换它,以便您还可以实现平台独立性。

Qooxdoo v6 处于测试阶段,可通过github.com/qooxdoo 获得- master 分支非常稳定,核心团队成员在生产环境中使用,因此值得考虑。

在 v6 中,您可以自定义 index.html 生成,或使用externalResourcesin compile.json(如果您使用编译器)或通过qx.io.DynamicScriptLoader.

加载 javascript 后,您需要创建一个派生自qx.ui.core.Widget并覆盖这些方法的自定义类:

  • _createContentElement- 重写此方法以创建实现您的小部件的 DOM 元素,即这是您将初始化 VTK 实例的地方
  • _getContentHint()- 这将返回小部件的首选高度和宽度地图;它的工作是告诉 Qooxdoo 布局引擎小部件想要多大
  • renderLayout- 调用此方法以使元素以给定的大小和位置出现在屏幕上 - 实际上,这意味着您使用此方法来修改实现自定义小部件的 DOM 元素的尺寸

完成此操作后,您将拥有一个与 Qooxdoo 集成的自定义小部件;剩下的就是要么公开内部的 VTK 实现,要么构建一个 API 来操作 VTK。

于 2018-02-12T09:19:17.297 回答