浏览代码

cache nonDeleted elements (#1626)

David Luzar 5 年之前
父节点
当前提交
ce6f2ff88c
共有 1 个文件被更改,包括 3 次插入1 次删除
  1. 3 1
      src/scene/globalScene.ts

+ 3 - 1
src/scene/globalScene.ts

@@ -13,6 +13,7 @@ export interface SceneStateCallbackRemover {
 }
 
 class GlobalScene {
+  private nonDeletedElements: readonly NonDeletedExcalidrawElement[] = [];
   private callbacks: Set<SceneStateCallback> = new Set();
 
   constructor(private _elements: readonly ExcalidrawElement[] = []) {}
@@ -22,11 +23,12 @@ class GlobalScene {
   }
 
   getElements(): readonly NonDeletedExcalidrawElement[] {
-    return getNonDeletedElements(this._elements);
+    return this.nonDeletedElements;
   }
 
   replaceAllElements(nextElements: readonly ExcalidrawElement[]) {
     this._elements = nextElements;
+    this.nonDeletedElements = getNonDeletedElements(this._elements);
     this.informMutation();
   }