跳至主要内容

Class: DecoratorBlockNode

@lexical/react/LexicalDecoratorBlockNode.DecoratorBlockNode

層次結構

建構函式

建構函式

new DecoratorBlockNode(format?, key?): DecoratorBlockNode

參數

名稱類型
format?ElementFormatType
key?string

返回

DecoratorBlockNode

覆寫

DecoratorNode.constructor

定義於

packages/lexical-react/src/LexicalDecoratorBlockNode.ts:29

屬性

__format

__format: ElementFormatType

定義於

packages/lexical-react/src/LexicalDecoratorBlockNode.ts:27


constructor

constructor: KlassConstructor<(key?: string) => DecoratorNode<Element>>

繼承自

DecoratorNode.constructor

定義於

packages/lexical/src/nodes/LexicalDecoratorNode.ts:27


importDOM

靜態 選擇性 importDOM: () => null | DOMConversionMap<any>

類型宣告

▸ (): null | DOMConversionMap<any>

返回

null | DOMConversionMap<any>

繼承自

DecoratorNode.importDOM

定義於

packages/lexical/src/LexicalNode.ts:265

函式

afterCloneFrom

afterCloneFrom(prevNode): void

prevNode 的克隆進行任何狀態更新,這些更新尚未由靜態克隆函式中的建構函式調用處理。如果你的克隆需要更新狀態,而該狀態並未由建構函式直接處理,建議覆寫此函式,但實現中必須包含對 super.afterCloneFrom(prevNode) 的調用。此函式僅供 $cloneWithProperties 函式或通過超類調用使用。

參數

名稱類型
prevNodethis

返回

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;
}
}

繼承自

DecoratorNode.afterCloneFrom

定義於

packages/lexical/src/LexicalNode.ts:258


canIndent

canIndent(): false

返回

false

定義於

packages/lexical-react/src/LexicalDecoratorBlockNode.ts:42


createDOM

createDOM(): HTMLElement

在調解過程中調用,以確定要插入到此 Lexical 節點的 DOM 中的節點。

此函式必須返回正好一個 HTMLElement。不支持嵌套元素。

在更新生命週期的此階段不要嘗試更新 Lexical EditorState。

返回

HTMLElement

覆寫

DecoratorNode.createDOM

定義於

packages/lexical-react/src/LexicalDecoratorBlockNode.ts:46


createParentElementNode

createParentElementNode(): ElementNode

創建任何所需的父節點的邏輯。如果 isParentRequired 返回 true,應該實現此函式。

返回

ElementNode

繼承自

DecoratorNode.createParentElementNode

定義於

packages/lexical/src/LexicalNode.ts:1094


decorate

decorate(editor, config): Element

返回的值會被添加到 LexicalEditor._decorators 中。

參數

名稱類型
editorLexicalEditor
configEditorConfig

返回

Element

繼承自

DecoratorNode.decorate

定義於

packages/lexical/src/nodes/LexicalDecoratorNode.ts:35


exportDOM

exportDOM(editor): DOMExportOutput

控制此節點如何序列化為 HTML。這對於 Lexical 和非 Lexical 編輯器之間的複製和粘貼,或不同命名空間的 Lexical 編輯器之間的複製和粘貼是很重要的,因為主要的傳輸格式是 HTML。如果你有其他原因需要將內容序列化為 HTML(例如通過 $generateHtmlFromNodes),這也很重要。你也可以使用此函式來構建你自己的 HTML 渲染器。

參數

名稱類型
editorLexicalEditor

返回

DOMExportOutput

繼承自

DecoratorNode.exportDOM

定義於

packages/lexical/src/LexicalNode.ts:845


exportJSON

exportJSON(): SerializedDecoratorBlockNode

控制此節點如何序列化為 JSON。這對於在共享相同命名空間的 Lexical 編輯器之間的複製和貼上非常重要。如果你需要將內容序列化為 JSON 以便在其他地方進行持久儲存,這也同樣重要。參見 Serialization & Deserialization

返回

SerializedDecoratorBlockNode

覆寫

DecoratorNode.exportJSON

定義於

packages/lexical-react/src/LexicalDecoratorBlockNode.ts:34


getCommonAncestor

getCommonAncestor<T>(node): null | T

返回此節點和提供的節點之間最近的共同祖先,若找不到則返回 null。

類型參數

名稱類型
Textends ElementNode = ElementNode

參數

名稱類型描述
nodeLexicalNode需要找到共同祖先的另一個節點。

返回

null | T

繼承自

DecoratorNode.getCommonAncestor

定義於

packages/lexical/src/LexicalNode.ts:553


getIndexWithinParent

getIndexWithinParent(): number

返回此節點在父節點中的零基索引。

返回

number

繼承自

DecoratorNode.getIndexWithinParent

定義於

packages/lexical/src/LexicalNode.ts:381


getKey

getKey(): string

返回此節點的鍵值。

返回

string

繼承自

DecoratorNode.getKey

定義於

packages/lexical/src/LexicalNode.ts:373


getLatest

getLatest(): this

返回來自活動的 EditorState 的最新版本節點。這是為了避免從過時的節點引用中獲取值。

返回

this

繼承自

DecoratorNode.getLatest

定義於

packages/lexical/src/LexicalNode.ts:739


getNextSibling

getNextSibling<T>(): null | T

返回“下一個”兄弟節點,即在相同父節點中,緊接在此節點之後的節點。

類型參數

名稱類型
Textends LexicalNode

返回

null | T

繼承自

DecoratorNode.getNextSibling

定義於

packages/lexical/src/LexicalNode.ts:526


getNextSiblings

getNextSiblings<T>(): T[]

返回所有“下一個”兄弟節點,即在此節點和其父節點的最後一個子節點之間的所有節點。

類型參數

名稱類型
Textends LexicalNode

返回

T[]

繼承自

DecoratorNode.getNextSiblings

定義於

packages/lexical/src/LexicalNode.ts:537


getNodesBetween

getNodesBetween(targetNode): LexicalNode[]

返回此節點和目標節點之間的節點列表。

參數

名稱類型描述
targetNodeLexicalNode標記節點範圍另一端的節點。

返回

LexicalNode[]

繼承自

DecoratorNode.getNodesBetween

定義於

packages/lexical/src/LexicalNode.ts:658


getParent

getParent<T>(): null | T

返回此節點的父節點,如果找不到則返回 null。

類型參數

名稱類型
Textends ElementNode

返回

null | T

繼承自

DecoratorNode.getParent

定義於

packages/lexical/src/LexicalNode.ts:401


getParentKeys

getParentKeys(): string[]

返回此節點每個祖先的鍵值列表,一直到 RootNode。

返回

string[]

繼承自

DecoratorNode.getParentKeys

定義於

packages/lexical/src/LexicalNode.ts:478

getParentOrThrow

getParentOrThrow<T>(): T

返回此節點的父節點,如果找不到則拋出錯誤。

類型參數

名稱類型
Textends ElementNode

返回

T

繼承自

DecoratorNode.getParentOrThrow

定義於

packages/lexical/src/LexicalNode.ts:412


getParents

getParents(): ElementNode[]

返回此節點每個祖先的列表,一直到 RootNode。

返回

ElementNode[]

繼承自

DecoratorNode.getParents

定義於

packages/lexical/src/LexicalNode.ts:463


getPreviousSibling

getPreviousSibling<T>(): null | T

返回“前一個”兄弟節點,即在相同父節點中,位於此節點之前的節點。

類型參數

名稱類型
Textends LexicalNode

返回

null | T

繼承自

DecoratorNode.getPreviousSibling

定義於

packages/lexical/src/LexicalNode.ts:493


getPreviousSiblings

getPreviousSiblings<T>(): T[]

返回“前一個”兄弟節點,即在此節點和其父節點的第一個子節點之間的所有節點(包括)。

類型參數

名稱類型
Textends LexicalNode

返回

T[]

繼承自

DecoratorNode.getPreviousSiblings

定義於

packages/lexical/src/LexicalNode.ts:504


getTextContent

getTextContent(): string

返回節點的文本內容。對於應該以純文本格式表示的自定義節點(例如,用於複製和粘貼),請覆寫此函式。

返回

string

繼承自

DecoratorNode.getTextContent

定義於

packages/lexical/src/LexicalNode.ts:789


getTextContentSize

getTextContentSize(): number

返回調用 getTextContent 函式後產生的字串長度。

返回

number

繼承自

DecoratorNode.getTextContentSize

定義於

packages/lexical/src/LexicalNode.ts:797


getTopLevelElement

getTopLevelElement(): null | ElementNode | DecoratorBlockNode

返回 EditorState 樹中最高層的非根祖先節點,如果找不到則返回 null。請參閱 $isRootOrShadowRoot 以了解哪些元素構成“根”。

返回

null | ElementNode | DecoratorBlockNode

繼承自

DecoratorNode.getTopLevelElement

定義於

packages/lexical/src/nodes/LexicalDecoratorNode.ts:20


getTopLevelElementOrThrow

getTopLevelElementOrThrow(): ElementNode | DecoratorBlockNode

返回 EditorState 樹中最高層的非根祖先節點,如果找不到則拋出錯誤。請參閱 $isRootOrShadowRoot 以了解哪些元素構成“根”。

返回

ElementNode | DecoratorBlockNode

繼承自

DecoratorNode.getTopLevelElementOrThrow

定義於

packages/lexical/src/nodes/LexicalDecoratorNode.ts:21


getType

getType(): string

返回此節點的字串類型。

返回

string

繼承自

DecoratorNode.getType

定義於

packages/lexical/src/LexicalNode.ts:286


getWritable

getWritable(): this

返回節點的可變版本,如果需要,會使用 $cloneWithProperties。如果在 Lexical 編輯器 LexicalEditor.update 回調之外調用,將拋出錯誤。

返回

this

繼承自

DecoratorNode.getWritable

定義於

packages/lexical/src/LexicalNode.ts:756


insertAfter

insertAfter(nodeToInsert, restoreSelection?): LexicalNode

在此 LexicalNode 之後插入一個節點(作為下一個兄弟節點)。

參數

名稱類型預設值描述
nodeToInsertLexicalNodeundefined要插入的節點。
restoreSelectionbooleantrue是否在操作完成後嘗試將選擇恢復到適當的位置。

返回

LexicalNode

繼承自

DecoratorNode.insertAfter

定義於

packages/lexical/src/LexicalNode.ts:979


insertBefore

insertBefore(nodeToInsert, restoreSelection?): LexicalNode

在此 LexicalNode 之前插入一個節點(作為前一個兄弟節點)。

參數

名稱類型預設值描述
nodeToInsertLexicalNodeundefined要插入的節點。
restoreSelectionbooleantrue是否在操作完成後嘗試將選擇恢復到適當的位置。

返回

LexicalNode

繼承自

DecoratorNode.insertBefore

定義於

packages/lexical/src/LexicalNode.ts:1046


is

is(object): boolean

如果提供的節點與此節點完全相同(從 Lexical 的角度來看),則返回 true。始終使用此函式而不是引用相等性。

參數

名稱類型描述
objectundefined | null | LexicalNode要進行相等性比較的節點。

返回

boolean

繼承自

DecoratorNode.is

定義於

packages/lexical/src/LexicalNode.ts:585


isAttached

isAttached(): boolean

如果存在從此節點到 RootNode 的路徑則返回 true,否則返回 false。這是一種確定節點是否“附加”到 EditorState 的函式。未附加的節點不會被合併,最終會被 Lexical 的垃圾回收清理。

返回

boolean

繼承自

DecoratorNode.isAttached

定義於

packages/lexical/src/LexicalNode.ts:303


isBefore

isBefore(targetNode): boolean

如果此節點在編輯器狀態中邏輯上位於目標節點之前,則返回 true。

參數

名稱類型描述
targetNodeLexicalNode要測試是否在此節點之後的節點。

返回

boolean

繼承自

DecoratorNode.isBefore

定義於

packages/lexical/src/LexicalNode.ts:597


isDirty

isDirty(): boolean

如果此節點在此更新周期中被標記為“髒”,則返回 true。

返回

boolean

繼承自

DecoratorNode.isDirty

定義於

packages/lexical/src/LexicalNode.ts:728


isInline

isInline(): false

返回

false

覆寫

DecoratorNode.isInline

定義於

packages/lexical-react/src/LexicalDecoratorBlockNode.ts:59


isIsolated

isIsolated(): boolean

返回

boolean

繼承自

DecoratorNode.isIsolated

定義於

packages/lexical/src/nodes/LexicalDecoratorNode.ts:39


isKeyboardSelectable

isKeyboardSelectable(): boolean

返回

boolean

繼承自

DecoratorNode.isKeyboardSelectable

定義於

packages/lexical/src/nodes/LexicalDecoratorNode.ts:47


isParentOf

isParentOf(targetNode): boolean

如果此節點是目標節點的父節點,則返回 true,否則返回 false。

參數

名稱類型描述
targetNodeLexicalNode可能的子節點。

返回

boolean

繼承自

DecoratorNode.isParentOf

定義於

packages/lexical/src/LexicalNode.ts:636


isParentRequired

isParentRequired(): boolean

此節點是否需要父節點。在複製和粘貼操作期間使用,以規範化那些本來會成為孤兒的節點。例如,沒有 ListNode 父節點的 ListItemNodes 或具有 ParagraphNode 父節點的 TextNodes。

返回

boolean

繼承自

DecoratorNode.isParentRequired

定義於

packages/lexical/src/LexicalNode.ts:1086


isSelected

isSelected(selection?): boolean

如果此節點位於提供的 Selection 內部,則返回 true,否則返回 false。依賴於 BaseSelection.getNodes 中實現的算法來確定包含的範圍。

參數

名稱類型描述
selection?null | BaseSelection我們要確定節點是否在其中的選擇範圍。

返回

boolean

繼承自

DecoratorNode.isSelected

定義於

packages/lexical/src/LexicalNode.ts:327


markDirty

markDirty(): void

將節點標記為「髒」,觸發轉換並強制在更新循環中重新合併。

返回

void

繼承自

DecoratorNode.markDirty

定義於

packages/lexical/src/LexicalNode.ts:1155


remove

remove(preserveEmptyParent?): void

將此 LexicalNode 從 EditorState 中移除。如果節點未被重新插入到其他位置,Lexical 垃圾回收器最終會清理它。

參數

名稱類型描述
preserveEmptyParent?boolean如果為 falsy,則在移除操作後,如果節點的父節點為空,則會將其移除。這是預設行為,但可能會受到其他節點啟發式算法的影響,例如 ElementNode#canBeEmpty

返回

void

繼承自

DecoratorNode.remove

定義於

packages/lexical/src/LexicalNode.ts:898


replace

replace<N>(replaceWith, includeChildren?): N

用提供的節點替換此 LexicalNode,可選地將被替換節點的子節點轉移到替換節點。

類型參數

名稱類型
Nextends LexicalNode

參數

名稱類型描述
replaceWithN用於替換此節點的節點。
includeChildren?boolean是否將此節點的子節點轉移到替換節點。

返回

N

繼承自

DecoratorNode.replace

定義於

packages/lexical/src/LexicalNode.ts:909


selectEnd

selectEnd(): RangeSelection

返回

RangeSelection

繼承自

DecoratorNode.selectEnd

定義於

packages/lexical/src/LexicalNode.ts:1102


selectNext

selectNext(anchorOffset?, focusOffset?): RangeSelection

將選擇移至此節點的下一個兄弟節點,並指定偏移量。

參數

名稱類型描述
anchorOffset?number選擇的錨點偏移量。
focusOffset?number選擇的焦點偏移量。

返回

RangeSelection

繼承自

DecoratorNode.selectNext

定義於

packages/lexical/src/LexicalNode.ts:1134


selectPrevious

selectPrevious(anchorOffset?, focusOffset?): RangeSelection

將選擇移至此節點的上一個兄弟節點,並指定偏移量。

參數

名稱類型描述
anchorOffset?number選擇的錨點偏移量。
focusOffset?number選擇的焦點偏移量。

返回

RangeSelection

繼承自

DecoratorNode.selectPrevious

定義於

packages/lexical/src/LexicalNode.ts:1112


selectStart

selectStart(): RangeSelection

返回

RangeSelection

繼承自

DecoratorNode.selectStart

定義於

packages/lexical/src/LexicalNode.ts:1098

setFormat

setFormat(format): void

參數

名稱類型
formatElementFormatType

返回

void

定義於

packages/lexical-react/src/LexicalDecoratorBlockNode.ts:54


updateDOM

updateDOM(): false

當節點發生變化並且應該更新 DOM 以使其與更新期間可能發生的變化對齊時調用。

在此處返回 true 會導致 Lexical 卸載並重新創建 DOM 節點(通過調用 createDOM)。例如,如果元素標籤更改,則需要這樣做。

返回

false

覆蓋

DecoratorNode.updateDOM

定義於

packages/lexical-react/src/LexicalDecoratorBlockNode.ts:50


clone

clone(_data): LexicalNode

克隆此節點,創建一個具有不同鍵的新節點,並將其添加到 EditorState(但不附加到任何地方!)。所有節點必須實現此函式。

參數

名稱類型
_dataunknown

返回

LexicalNode

繼承自

DecoratorNode.clone

定義於

packages/lexical/src/LexicalNode.ts:200


getType

getType(): string

返回此節點的字串類型。每個節點必須實現此函式,並且在編輯器中註冊的節點中必須唯一。

返回

string

繼承自

DecoratorNode.getType

定義於

packages/lexical/src/LexicalNode.ts:186


importJSON

importJSON(_serializedNode): LexicalNode

控制此節點如何從 JSON 反序列化。這通常是樣板代碼,但在節點實現和序列化介面之間提供了一個抽象,如果您對節點模式進行重大更改(通過添加或移除屬性),

這可能很重要。請參閱 Serialization & Deserialization

參數

名稱類型
_serializedNodeSerializedLexicalNode

返回

LexicalNode

繼承自

DecoratorNode.importJSON

定義於

packages/lexical/src/LexicalNode.ts:868


transform

transform(): null 或 (node: LexicalNode) => void

在 Editor 初始化期間,將返回的函式註冊為節點上的轉換。大多數這樣的使用情況應通過 LexicalEditor.registerNodeTransform API 處理。

實驗性 - 使用時請小心。

返回

null 或 (node: LexicalNode) => void

繼承自

DecoratorNode.transform

定義於

packages/lexical/src/LexicalNode.ts:884