Class: DecoratorNode<T>
lexical.DecoratorNode
類型參數
名稱 |
---|
T |
繼承結構
-
↳
DecoratorNode
建構函式
constructor
• new DecoratorNode<T
>(key?
): DecoratorNode
<T
>
類型參數
名稱 |
---|
T |
參數
名稱 | 類型 |
---|---|
key? | string |
回傳值
繼承自
定義於
packages/lexical/src/nodes/LexicalDecoratorNode.ts:28
屬性
constructor
• constructor: KlassConstructor
<(key?
: string
) => DecoratorNode
<T
>>
定義於
packages/lexical/src/nodes/LexicalDecoratorNode.ts:27
importDOM
▪ Static
Optional
importDOM: () => null
| DOMConversionMap
<any
>
類型聲明
▸ (): null
| DOMConversionMap
<any
>
回傳值
null
| DOMConversionMap
<any
>
繼承自
定義於
packages/lexical/src/LexicalNode.ts:265
函式
afterCloneFrom
▸ afterCloneFrom(prevNode
): void
在 prevNode
的複製品上執行任何狀態更新,這些更新在靜態複製函式的建構函式調用中尚未處理。如果您需要在複製品上更新狀態,但這些狀態更新不直接由建構函式處理,建議覆寫此函式,但實作中必須包含對 super.afterCloneFrom(prevNode)
的調用。此函式僅供 $cloneWithProperties 函式或通過超類調用使用。
參數
名稱 | 類型 |
---|---|
prevNode | this |
回傳值
void
範例
class ClassesTextNode extends TextNode {
// 未顯示: static getType, static importJSON, exportJSON, createDOM, updateDOM
__classes = new Set<string>();
static clone(node: ClassesTextNode): ClassesTextNode {
// 此處使用繼承的 TextNode 建構函式,因此
// classes 不由此函式設置。
return new ClassesTextNode(node.__text, node.__key);
}
afterCloneFrom(node: this): void {
// 這會調用 TextNode.afterCloneFrom 和 LexicalNode.afterCloneFrom
// 以進行必要的狀態更新
super.afterCloneFrom(node);
this.__addClasses(node.__classes);
}
// 此函式為私有實作細節,不適合用於公共 API,因為它不會調用 getWritable
__addClasses(classNames: Iterable<string>): this {
for (const className of classNames) {
this.__classes.add(className);
}
return this;
}
addClass(...classNames: string[]): this {
return this.getWritable().__addClasses(classNames);
}
removeClass(...classNames: string[]): this {
const node = this.getWritable();
for (const className of classNames) {
this.__classes.delete(className);
}
return this;
}
getClasses(): Set<string> {
return this.getLatest().__classes;
}
}
繼承自
定義於
packages/lexical/src/LexicalNode.ts:258
createDOM
▸ createDOM(_config
, _editor
): HTMLElement
在調和過程中調用以確定將哪些節點插入 DOM 中以用於此 Lexical 節點。
此函式必須回傳一個 HTMLElement
。不支援嵌套元素。
在此更新生命週期階段,不要嘗試更新 Lexical 編輯器狀態。
參數
名稱 | 類型 | 描述 |
---|---|---|
_config | EditorConfig | 允 許在調和過程中訪問例如 EditorTheme(以應用類別)等功能。 |
_editor | LexicalEditor | 允許在調和過程中訪問編輯器以獲取上下文。 |
回傳值
HTMLElement
繼承自
定義於
packages/lexical/src/LexicalNode.ts:815
createParentElementNode
▸ createParentElementNode(): ElementNode
為任何需要的父元素創建邏輯。如果 isParentRequired 回傳 true,則應實作此函式。
回傳值
繼承自
LexicalNode.createParentElementNode
定義於
packages/lexical/src/LexicalNode.ts:1094
decorate
▸ decorate(editor
, config
): T
回傳值會被添加到 LexicalEditor._decorators 中。
參數
名稱 | 類型 |
---|---|
editor | LexicalEditor |
config | EditorConfig |
回傳值
T
定義於
packages/lexical/src/nodes/LexicalDecoratorNode.ts:35
exportDOM
▸ exportDOM(editor
): DOMExportOutput
控制此節點如何序列化為 HTML。這對於在 Lexical 和非 Lexical 編輯器之間,或不同命名空間的 Lexical 編輯器之間進行複製和粘貼非常重要,因為主要的傳輸格式是 HTML。如果您要通過 $generateHtmlFromNodes 將內容序列化為 HTML,此函式也很重要。您還可以使用此函式構建自己的 HTML 渲染器。
參數
名稱 | 類型 |
---|---|
editor | LexicalEditor |