用例开发WorkshopEmbedding Workshop Modules概述

注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。

概述

Workshop 提供两个功能以支持嵌入另一个 Workshop 模块:嵌入模块微件和 循环部分设计(“循环设计”)。

这些功能允许搭建可以嵌入其他 Workshop 模块的模块。嵌入模块支持 Workshop 提供的所有功能,但在嵌入和嵌套模块的交互中存在一些限制。本文件有时将提到嵌入另一个模块的模块为“父”模块,嵌入的模块为“子”模块。当本文件提到“嵌入模块”时,指的是 嵌入模块微件和嵌入在 循环设计中的模块,除非另有说明。

应用案例

嵌入模块有多种应用案例,包括:

在多个模块中复用

嵌入模块允许在多个父模块中配置和复用一个单独的子模块。可以搭建的嵌入模块类型的一些示例包括:

  • 自定义对象视图
  • 具有复杂配置的单个微件
  • 由复杂变量逻辑支持的一组微件
  • 完全没有微件的复杂变量逻辑

在单个模块中复用

嵌入模块可以在单个父模块中多次使用,无论是通过循环设计,还是单个嵌入模块微件。在同一个父模块中多次嵌入的子模块示例包括:

  • 从提供的变量中派生的自定义卡片视图
  • 每个选项卡或页面将显示一次的一组微件

可维护性

嵌入模块可以用于将较大的父模块分解为多个子模块以提高可维护性。这允许每个子模块拥有自己的变量范围,并且不同的 Workshop 搭建者可以同时编辑每个子模块。

市场定制

嵌入模块可以用于在使用 Marketplace 打包 Workshop 模块时提供定制区域。嵌入的子模块将作为依赖项打包,在安装时,Marketplace 用户可以选择具有相同模块接口变量类型签名的模块以定制已安装的父模块的一部分。

限制

子模块的模块设置不继承

子模块的模块级别配置,例如 路由状态保存自动刷新,不被使用。如果您的工作流程需要,您可以在父模块级别配置这些设置,并通过module接口将变量传递到子模块。

事件传递

嵌入模块不支持事件传递的概念。事件传递将允许搭建者将事件配置从父模块传递到子模块,使子模块能够调用引用父模块配置的事件(例如,子模块调用打开父模块中覆盖的事件)。

父模块可以通过将支持设计状态的变量传递给子模块的模块接口变量,以便子模块修改父模块的设计状态。

嵌入模块的沿袭

与 Workshop 中其他 "Foundry 应用程序" 微件类似,嵌入模块被其他 Workshop 模块使用的沿袭不会由数据沿袭报告。

自引用嵌入模块

模块不能嵌入自身,无论是直接还是通过一系列子模块。如果配置了自引用,模块将向搭建者显示警告,并在访客中不渲染任何内容,以防止可能的嵌入模块无限链。若您有需要递归或自引用嵌入模块的应用案例,请联系您的 Palantir 代表。

嵌入模块的权限

嵌入模块是具有自己权限设置的独立资源。如果用户有权限查看嵌入子模块的父模块,但没有权限查看该子模块,用户将看到“加载模块失败”错误。

性能

嵌入模块应具有与普通 Workshop 模块类似的性能特征。一个显著的区别是,嵌入模块的初始化被延迟到嵌入模块在视图中显示时。一旦初始化,嵌入模块预计将像整个模块在同一位置配置一样运行。

请注意,子模块配置将在每个实例中初始化一次,这会带来初始化其变量的成本,但如果在多个实例中复用,子模块配置只需加载一次。

使用嵌入模块和循环设计使得搭建者更容易配置非常大且复杂的模块。搭建者应注意一次显示的微件和变量的总数量,尤其是那些加载成本较高的。

移动模式

嵌入模块微件和循环设计仅在模块处于移动模式时嵌入其他移动模块。