重要前提
安装AI Skills的关键前提是:必须科学上网,且开启TUN模式,这一点至关重要,直接决定安装能否顺利完成,在此郑重提醒三遍:科学上网,科学上网,科学上网。查看完整安装教程 →
umbraco-tree-item by umbraco/umbraco-cms-backoffice-skills
npx skills add https://github.com/umbraco/umbraco-cms-backoffice-skills --skill umbraco-tree-item树形项定义了实体在整个 Umbraco 后台的树形结构中如何呈现。它们控制侧边栏和导航树中项目的视觉呈现和行为。树形项与实体类型相关联,可以自定义以显示额外信息、图标或针对特定实体类型的自定义渲染。
在实现之前,请始终获取最新文档:
大多数树形项使用 kind: 'default' 并且不需要自定义上下文。仅在以下情况下创建自定义上下文:
如果你只需要标准的树形项,请使用 kind: 'default' 而不使用自定义上下文。
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
树:树形项在树形结构中工作
umbraco-tree仓库模式:当加载树数据时
umbraco-repository-pattern上下文 API:当访问树上下文时
umbraco-context-apiexport const manifests: Array<UmbExtensionManifest> = [
{
type: 'treeItem',
kind: 'default',
alias: 'My.TreeItem',
name: 'My Tree Item',
forEntityTypes: ['my-entity-type'],
},
];
import { MY_ENTITY_TYPE, MY_ROOT_ENTITY_TYPE } from '../entity.js';
export const manifests: Array<UmbExtensionManifest> = [
{
type: 'treeItem',
kind: 'default',
alias: 'My.TreeItem.Custom',
name: 'My Custom Tree Item',
forEntityTypes: [MY_ENTITY_TYPE, MY_ROOT_ENTITY_TYPE],
api: () => import('./my-tree-item.context.js'),
},
];
import { UmbDefaultTreeItemContext } from '@umbraco-cms/backoffice/tree';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import type { UmbTreeItemModel, UmbTreeRootModel } from '@umbraco-cms/backoffice/tree';
export class MyTreeItemContext extends UmbDefaultTreeItemContext<
UmbTreeItemModel,
UmbTreeRootModel
> {
constructor(host: UmbControllerHost) {
super(host);
}
// 重写以自定义图标
override async getIcon() {
const item = this.getTreeItem();
if (item?.hasChildren) {
return 'icon-folder';
}
return 'icon-document';
}
// 重写以添加自定义标签/徽章
override async getLabel() {
const item = this.getTreeItem();
return item?.name ?? 'Unknown';
}
}
export { MyTreeItemContext as api };
import { MY_ENTITY_TYPE, MY_ROOT_ENTITY_TYPE } from './entity.js';
import { MY_TREE_ALIAS, MY_TREE_REPOSITORY_ALIAS } from './constants.js';
export const manifests: Array<UmbExtensionManifest> = [
// 树定义
{
type: 'tree',
kind: 'default',
alias: MY_TREE_ALIAS,
name: 'My Tree',
meta: {
repositoryAlias: MY_TREE_REPOSITORY_ALIAS,
},
},
// 实体的树形项
{
type: 'treeItem',
kind: 'default',
alias: 'My.TreeItem',
name: 'My Tree Item',
forEntityTypes: [MY_ROOT_ENTITY_TYPE, MY_ENTITY_TYPE],
},
];
interface ManifestTreeItem extends ManifestElementAndApi<UmbControllerHostElement, UmbTreeItemContext> {
type: 'treeItem';
forEntityTypes: Array<string>; // 此树形项渲染的实体类型
}
内置的、拥有树形项的实体类型:
document - 内容节点document-root - 内容根目录media - 媒体项media-root - 媒体根目录member - 成员data-type - 数据类型document-type - 文档类型template - 模板kind: 'default' 使用标准的树形项渲染。可以为专门的渲染创建自定义种类。
就是这样!请始终获取最新的文档,保持示例简洁,生成完整可用的代码。
每周安装次数
70
代码仓库
GitHub 星标数
14
首次出现时间
2026年2月4日
安全审计
安装于
github-copilot50
cursor23
opencode22
codex22
gemini-cli19
claude-code19
Tree Items define how entities are rendered in tree structures throughout the Umbraco backoffice. They control the visual representation and behavior of items in sidebars and navigation trees. Tree items are associated with entity types and can be customized to display additional information, icons, or custom rendering for specific entity types.
Always fetch the latest docs before implementing:
Most tree items use kind: 'default' and don't need a custom context. Only create a custom context for:
If you just need standard tree items, use kind: 'default' without a custom context.
Tree : Tree items work within tree structures
umbraco-treeRepository Pattern : When loading tree data
umbraco-repository-patternContext API : When accessing tree context
umbraco-context-apiexport const manifests: Array<UmbExtensionManifest> = [
{
type: 'treeItem',
kind: 'default',
alias: 'My.TreeItem',
name: 'My Tree Item',
forEntityTypes: ['my-entity-type'],
},
];
import { MY_ENTITY_TYPE, MY_ROOT_ENTITY_TYPE } from '../entity.js';
export const manifests: Array<UmbExtensionManifest> = [
{
type: 'treeItem',
kind: 'default',
alias: 'My.TreeItem.Custom',
name: 'My Custom Tree Item',
forEntityTypes: [MY_ENTITY_TYPE, MY_ROOT_ENTITY_TYPE],
api: () => import('./my-tree-item.context.js'),
},
];
import { UmbDefaultTreeItemContext } from '@umbraco-cms/backoffice/tree';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import type { UmbTreeItemModel, UmbTreeRootModel } from '@umbraco-cms/backoffice/tree';
export class MyTreeItemContext extends UmbDefaultTreeItemContext<
UmbTreeItemModel,
UmbTreeRootModel
> {
constructor(host: UmbControllerHost) {
super(host);
}
// Override to customize icon
override async getIcon() {
const item = this.getTreeItem();
if (item?.hasChildren) {
return 'icon-folder';
}
return 'icon-document';
}
// Override to add custom labels/badges
override async getLabel() {
const item = this.getTreeItem();
return item?.name ?? 'Unknown';
}
}
export { MyTreeItemContext as api };
import { MY_ENTITY_TYPE, MY_ROOT_ENTITY_TYPE } from './entity.js';
import { MY_TREE_ALIAS, MY_TREE_REPOSITORY_ALIAS } from './constants.js';
export const manifests: Array<UmbExtensionManifest> = [
// Tree definition
{
type: 'tree',
kind: 'default',
alias: MY_TREE_ALIAS,
name: 'My Tree',
meta: {
repositoryAlias: MY_TREE_REPOSITORY_ALIAS,
},
},
// Tree item for the entities
{
type: 'treeItem',
kind: 'default',
alias: 'My.TreeItem',
name: 'My Tree Item',
forEntityTypes: [MY_ROOT_ENTITY_TYPE, MY_ENTITY_TYPE],
},
];
interface ManifestTreeItem extends ManifestElementAndApi<UmbControllerHostElement, UmbTreeItemContext> {
type: 'treeItem';
forEntityTypes: Array<string>; // Entity types this tree item renders
}
Built-in entity types that have tree items:
document - Content nodesdocument-root - Content rootmedia - Media itemsmedia-root - Media rootmember - Membersdata-type - Data typesdocument-type - Document typestemplate - TemplatesThe kind: 'default' uses the standard tree item rendering. Custom kinds can be created for specialized rendering.
That's it! Always fetch fresh docs, keep examples minimal, generate complete working code.
Weekly Installs
70
Repository
GitHub Stars
14
First Seen
Feb 4, 2026
Security Audits
Gen Agent Trust HubFailSocketPassSnykPass
Installed on
github-copilot50
cursor23
opencode22
codex22
gemini-cli19
claude-code19
React 组合模式指南:Vercel 组件架构最佳实践,提升代码可维护性
125,600 周安装
Twitter 搜索与分析工具:使用高级语法获取1000条推文并生成专业洞察报告
103 周安装
数据探索可视化工具 - 自动化EDA、医疗数据分析与专业报告生成
104 周安装
YouTube视频规划工具 - 自动生成优化标题、缩略图和开场钩子,提升点击率和留存率
103 周安装
Qodo PR Resolver:AI代码评审问题批量修复工具,支持GitHub/GitLab/Bitbucket/Azure DevOps
106 周安装
DOCX文档处理与自动化技能:专业格式创建、视觉审阅与Python编辑指南
103 周安装
nanoGPT极简GPT训练教程:从莎士比亚到GPT-2复现,快速上手PyTorch深度学习
106 周安装