Lexical 插件
基於 React 的插件使用來自 <LexicalComposer>
context 的 Lexical 編輯器實例:
import {LexicalComposer} from '@lexical/react/LexicalComposer';
import {PlainTextPlugin} from '@lexical/react/LexicalPlainTextPlugin';
import {ContentEditable} from '@lexical/react/LexicalContentEditable';
import {HistoryPlugin} from '@lexical/react/LexicalHistoryPlugin';
import {OnChangePlugin} from '@lexical/react/LexicalOnChangePlugin';
const initialConfig = {
namespace: 'MyEditor',
theme,
onError,
};
<LexicalComposer initialConfig={initialConfig}>
<PlainTextPlugin
contentEditable={<ContentEditable />}
placeholder={<div>輸入一些文字...</div>}
/>
<HistoryPlugin />
<OnChangePlugin onChange={onChange} />
...
</LexicalComposer>;
注意:許多插件可能需要您註冊一個或多個 Lexical 節點才能使插件正常工作。您可以通過在初始編輯器配置中將節點的引用傳遞給
nodes
數組來實現這一點。
const initialConfig = {
namespace: 'MyEditor',
theme,
nodes: [ListNode, ListItemNode], // 在這裡傳遞節點的引用
onError,
};
LexicalPlainTextPlugin
@lexical/plain-text
的 React 包裝器,為純文字編輯添加了主要功能,包括打字、刪除和複製/粘貼
<PlainTextPlugin
contentEditable={<ContentEditable />}
placeholder={<div>輸入一些文字...</div>}
ErrorBoundary={LexicalErrorBoundary}
/>
LexicalRichTextPlugin
@lexical/rich-text
的 React 包裝器,為富文本編輯添加了主要功能,包括打字、刪除、複製/粘貼、縮排/取消縮排以及加粗/斜體/下劃線/刪除線文字格式
<RichTextPlugin
contentEditable={<ContentEditable />}
placeholder={<div>輸入一些文字...</div>}
ErrorBoundary={LexicalErrorBoundary}
/>
LexicalOnChangePlugin
當 Lexical 狀態更新時,調用 onChange
的插件。使用 ignoreHistoryMergeTagChange
(默認為 true
)和 ignoreSelectionChange
(默認為 false
) 可以更細粒度地控制觸發 onChange
調用的更改
<OnChangePlugin onChange={onChange} />