Component
Official
A component that can be loaded and unloaded.
Import:
import { Component } from 'obsidian';Signature:
export class ComponentConstructor
new Component()Constructor.
To extract the constructor type, use ExtractConstructor<Component>.
Properties
| Property | Type | Description | |
|---|---|---|---|
| _children | Component[] | Child Components attached to current component, will be unloaded on unloading parent component. | |
| _events | EventRef[] | Events that are attached to the current component, will be detached on unloading parent component. | |
| _loaded | boolean | Whether the component and its children are loaded. |
Methods
| Method | Returns | Description | |
|---|---|---|---|
| addChild(component) | T | Adds a child component, loading it if this component is loaded. | |
| load() | void | Load this component and its children. | |
| onload() | void | Override this to load your component. | |
| onunload() | void | Override this to unload your component | |
| register(cb) | void | Registers a callback to be called when unloading. | |
| registerDomEvent(el, type, callback, options?) | void | Registers a DOM event to be detached when unloading. | |
| registerDomEvent(el, type, callback, options?) | void | Registers a DOM event to be detached when unloading | |
| registerDomEvent(el, type, callback, options?) | void | Registers a DOM event to be detached when unloading | |
| registerEvent(eventRef) | void | Registers an event to be detached when unloading. | |
| registerInterval(id) | number | Registers an interval (from setInterval) to be cancelled when unloading. Use window.setInterval instead of setInterval to avoid TypeScript confusing between NodeJS vs Browser API | |
| registerScopeEvent(keymapEventHandler) | void | Register a scope keymap event handler to be removed on unload. | |
| removeChild(component) | T | Removes a child component, unloading it. | |
| unload() | void | Override this to unload your component. |
Links to this page:
- AudioRecorderPlugin
- BacklinkComponent
- BacklinkPlugin
- BasesContext
- BasesController
- BasesPlugin
- BasesQueryQueue
- BasesSearchMenu
- BasesView
- BookmarksPlugin
- CanvasIndex
- CanvasPlugin
- CommandPalettePlugin
- CustomCSS
- DailyNotesPlugin
- DeferredView
- EditorStatusPlugin
- EmbedComponent
- EmbeddedEditorView
- EmbedImageComponent
- EmbedMarkdownComponent
- EmbedPdfComponent
- EmbedVideoComponent
- FileExplorerPlugin
- FileExplorerView
- FileRecoveryPlugin
- FootnotesPlugin
- getComponentConstructor
- GlobalSearchPlugin
- GraphPlugin
- HoverPopover
- InternalPlugin
- MarkdownBaseView
- MarkdownImporterPlugin
- MarkdownPreviewEvents
- MarkdownPreviewView
- MarkdownRenderChild
- MarkdownRenderer
- MarkdownScrollableEditView
- Menu
- MetadataEditor
- MetadataEditorProperty
- NoteComposerPlugin
- OutgoingLinkPlugin
- OutlinePlugin
- PagePreviewPlugin
- Plugin
- PropertiesPlugin
- PublishPlugin
- QueryController
- RandomNotePlugin
- SearchView
- SlashCommandPlugin
- SlidesPlugin
- SwitcherPlugin
- SyncPlugin
- SyncView
- TableCellEditor
- TableView
- TagPanePlugin
- TagView
- TemplatesPlugin
- TypedWorkspaceLeaf
- View
- WebviewerPlugin
- WidgetEditorView
- WordCountPlugin
- WorkspaceItem
- WorkspaceLeaf
- WorkspaceParent
- WorkspaceSplit
- WorkspacesPlugin
- WorkspaceTabs
- ZkPrefixerPlugin