Lexical Editor State
from Lexical を試す
Editor State | Lexical
EditorState
基本
イミュータブルモデル
基本的には Editor の更新とともに新規作成されてそう
the single source of truth
editor.getEditorState() で取得できそう
基本的には2つのフェーズがあり
更新中:「変更可能」な状態
更新後:状態はロックされイミュータブルとみなされる(=スナップショットが残る)
2つのコア
Node ツリー
Editor Selection
これらはJSONにシリアライズ可能、インスタンスは文字列下された Editor の状態からデシリアライズ可能
初期状態
まずはシリアライズ可能なJSONをエディタインスタンスにパースさせて初期状態をセットする
code:ngOnInit.ts
ngOnInit() {
this.editor = createEditor();
const parsedEditorState = this.editor.parseEditorState(initialEditorState);
this.editor.setEditorState(parsedEditorState);
}
toJSON して取得すると Node のキーが失われるので Selection との紐付けが難しそう
EditorState インスタンスにはキーから Node 取得するようなメソッドは生えてなさそう
Editor
上記 State を受け取ると前回差分パッチを DOM に更新してそう