From b35dd282ecc5ea1045f7f39a50a1d5b5b660cfc5 Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Sun, 27 Aug 2023 10:34:15 +0800 Subject: [PATCH] =?UTF-8?q?Feat=EF=BC=9A=E6=8F=92=E4=BB=B6=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E9=94=80=E6=AF=81=E5=89=8D=E7=94=9F=E5=91=BD=E5=91=A8?= =?UTF-8?q?=E6=9C=9F=E5=87=BD=E6=95=B0=EF=BC=8C=E8=A7=A3=E5=86=B3=E9=94=80?= =?UTF-8?q?=E6=AF=81=E6=80=9D=E7=BB=B4=E5=AF=BC=E5=9B=BE=E6=97=B6=E6=8F=92?= =?UTF-8?q?=E4=BB=B6=E7=9A=84=E4=B8=80=E4=BA=9B=E5=89=AF=E4=BD=9C=E7=94=A8?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E6=B8=85=E9=99=A4=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- simple-mind-map/index.js | 4 ++++ simple-mind-map/src/plugins/NodeImgAdjust.js | 5 +++++ simple-mind-map/src/plugins/Painter.js | 5 +++++ simple-mind-map/src/plugins/RichText.js | 5 +++++ simple-mind-map/src/plugins/TouchEvent.js | 5 +++++ 5 files changed, 24 insertions(+) diff --git a/simple-mind-map/index.js b/simple-mind-map/index.js index f95a51e4..8767e978 100644 --- a/simple-mind-map/index.js +++ b/simple-mind-map/index.js @@ -406,6 +406,9 @@ class MindMap { destroy() { // 移除插件 ;[...MindMap.pluginList].forEach(plugin => { + if (this[plugin.instanceName].beforePluginDestroy) { + this[plugin.instanceName].beforePluginDestroy() + } this[plugin.instanceName] = null }) // 解绑事件 @@ -414,6 +417,7 @@ class MindMap { this.svg.remove() // 去除给容器元素设置的背景样式 Style.removeBackgroundStyle(this.el) + this.el.innerHTML = '' this.el = null } } diff --git a/simple-mind-map/src/plugins/NodeImgAdjust.js b/simple-mind-map/src/plugins/NodeImgAdjust.js index 4999f4bc..cdde7045 100644 --- a/simple-mind-map/src/plugins/NodeImgAdjust.js +++ b/simple-mind-map/src/plugins/NodeImgAdjust.js @@ -263,6 +263,11 @@ class NodeImgAdjust { beforePluginRemove() { this.unBindEvent() } + + // 插件被卸载前做的事情 + beforePluginDestroy() { + this.unBindEvent() + } } NodeImgAdjust.instanceName = 'nodeImgAdjust' diff --git a/simple-mind-map/src/plugins/Painter.js b/simple-mind-map/src/plugins/Painter.js index 50ee08e5..b9ef5cd3 100644 --- a/simple-mind-map/src/plugins/Painter.js +++ b/simple-mind-map/src/plugins/Painter.js @@ -69,6 +69,11 @@ class Painter { beforePluginRemove() { this.unBindEvent() } + + // 插件被卸载前做的事情 + beforePluginDestroy() { + this.unBindEvent() + } } Painter.instanceName = 'painter' diff --git a/simple-mind-map/src/plugins/RichText.js b/simple-mind-map/src/plugins/RichText.js index 8b393d60..2bd229e2 100644 --- a/simple-mind-map/src/plugins/RichText.js +++ b/simple-mind-map/src/plugins/RichText.js @@ -631,6 +631,11 @@ class RichText { this.transformAllNodesToNormalNode() document.head.removeChild(this.styleEl) } + + // 插件被卸载前做的事情 + beforePluginDestroy() { + document.head.removeChild(this.styleEl) + } } RichText.instanceName = 'richText' diff --git a/simple-mind-map/src/plugins/TouchEvent.js b/simple-mind-map/src/plugins/TouchEvent.js index e2a3a741..7bad4fc3 100644 --- a/simple-mind-map/src/plugins/TouchEvent.js +++ b/simple-mind-map/src/plugins/TouchEvent.js @@ -148,6 +148,11 @@ class TouchEvent { beforePluginRemove() { this.unBindEvent() } + + // 插件被卸载前做的事情 + beforePluginDestroy() { + this.unBindEvent() + } } TouchEvent.instanceName = 'touchEvent'