View API 指南
视图(View)是 Obsidian 中「一个面板里显示的内容」。自定义视图让你把任意 UI(列表、图表、编辑器)嵌入工作区。
核心要点
理解 Leaf
- 每个 Leaf(叶子)承载一个 View;View 通过
registerView注册类型 - 视图生命周期:
onOpen()构建 DOM,onClose()清理资源
ts
class MyView extends ItemView {
getViewType() { return "my-view"; }
getDisplayText() { return "我的视图"; }
async onOpen() {
this.contentEl.empty();
this.contentEl.createEl("h2", { text: "Hello" });
}
}
this.registerView("my-view", (leaf) => new MyView(leaf));渲染方式
- 用
this.contentEl直接操作 DOM(配合createEl) - 复杂界面可挂载框架组件(Svelte / React,见 开发指南)
- 1.13 起可用声明式 Settings API 注册设置项,自动进入设置搜索
注意事项
- 视图状态用
setViewState传递,支持序列化以恢复布局 - 卸载时
detachLeavesOfType("my-view")防止残留