Skip to content

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") 防止残留

相关阅读 ​