用途:这是 Umbraco 后台(backoffice)扩展开发的基础概念,讲解如何用状态(State)容器存放响应式值,并通过 Observable 模式在组件实例之间通信,避免组件间紧耦合。
主要能力:State 是值的容器,可创建 Observable 供多个观察者订阅,状态变化时自动收到更新。提供多种状态类型:UmbStringState、UmbNumberState、UmbBooleanState、UmbArrayState、UmbObjectState、UmbClassState。可通过 asObservablePart 创建派生 Observable,仅在映射值变化时更新。
使用方式:从 @umbraco-cms/backoffice/observable-api 导入状态类,创建状态后用 asObservable() 暴露只读 Observable,用 this.observe() 订阅(会立即触发并在变化时触发),用 setValue() 更新。在 Context 中通常继承 UmbContextBase,将状态设为私有、Observable 设为公开只读;元素中通过 consumeContext 获取上下文并观察其状态。数组操作通过 setValue 配合展开或 filter 实现增删清空。
适用场景:Context 与元素之间共享数据、响应式 UI 更新、跨组件通信、派生或计算值。
限制与注意:资料建议实现前先获取最新文档(主文档、Foundation、Context API 三个链接),并保持状态私有、仅公开 Observable。具体版本兼容性、安装步骤与收费信息暂未提供。