如何集成ES6 Dependency Framework

How to integrate ES6 Dependency Framework

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

  1. 是否可以集成 ES6 依赖?
  2. 如果可能,我必须做什么?

简短的回答是肯定的,但有一些注意事项。 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 生成,或使用 compile.json 中的 externalResources 键(如果您使用的是编译器)或通过 [=12 自行处理加载=].

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

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

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