用途:该技能用于在 Umbraco 后台(backoffice)中实现树形项目(Tree Item),定义实体在树结构中的渲染方式与行为,影响侧边栏和导航树中的显示。实现前应先通过 WebFetch 获取最新官方文档(Main docs、Foundation、Extension Registry 三个链接)。
主要能力:通过 Umbraco 扩展清单(manifest)注册 type 为 'treeItem' 的扩展,用 forEntityTypes 指定其渲染的实体类型。大多数场景使用 kind: 'default',无需自定义上下文;仅当需要自定义图标逻辑、自定义标签或徽章、特殊渲染、额外项目行为(点击处理、拖放等)时,才提供 api 并创建自定义上下文(继承 UmbDefaultTreeItemContext,可覆写 getIcon、getLabel 等方法)。接口 ManifestTreeItem 继承 ManifestElementAndApi,要求 type: 'treeItem' 与 forEntityTypes: Array<string>。内置常见实体类型包括 document、document-root、media、media-root、member、data-type、document-type、template 等。
使用方式:先获取最新文档,确认实体类型与自定义渲染需求,再生成 manifest 以及可选的 element/context,最后说明创建内容与测试方法。基本清单示例:type: 'treeItem'、kind: 'default'、alias、name、forEntityTypes。自定义上下文通过 api: () => import('./my-tree-item.context.js') 引入。完整树场景需同时定义 type: 'tree'(meta.repositoryAlias 指向仓库别名)和对应 treeItem。
相关基础技能:树结构参考 umbraco-tree;加载树数据时参考 umbraco-repository-pattern;访问树上下文参考 umbraco-context-api。注意:Tree stores 在 Umbraco 14 已弃用,并在 Umbraco 18 被移除。
适用场景与限制:适用于为自定义实体类型或内置实体类型添加/定制树形显示。最佳实践包括为不同实体类型使用合适图标、考虑异步数据的加载状态、保持树项目轻量以利性能、使用实体类型常量保证类型安全。未提供具体版本兼容范围、价格与更多安装命令等信息。