Commit 3be0aa121c69ffdedb5578e7288eb3cd973acfb4

Authored by Kang Cheng
1 parent 79885751

Import custom MutationObserver; remove mutation observer before component get destroyed

Showing 1 changed file with 5 additions and 4 deletions   Show diff stats
src/components/tabs/tabs.vue
... ... @@ -26,7 +26,7 @@
26 26 <script>
27 27 import Icon from '../icon/icon.vue';
28 28 import Render from '../base/render';
29   - import { oneOf } from '../../utils/assist';
  29 + import { oneOf, MutationObserver } from '../../utils/assist';
30 30 import Emitter from '../../mixins/emitter';
31 31 import elementResizeDetectorMaker from 'element-resize-detector';
32 32  
... ... @@ -342,18 +342,19 @@
342 342  
343 343 const hiddenParentNode = this.isInsideHiddenElement();
344 344 if (hiddenParentNode) {
345   - const mutationObserver = new MutationObserver(() => {
  345 + this.mutationObserver = new MutationObserver(() => {
346 346 if (hiddenParentNode.style.display !== 'none') {
347 347 this.updateBar();
348   - mutationObserver.disconnect();
  348 + this.mutationObserver.disconnect();
349 349 }
350 350 });
351 351  
352   - mutationObserver.observe(hiddenParentNode, { attributes: true, childList: true, characterData: true, attributeFilter: ['style'] });
  352 + this.mutationObserver.observe(hiddenParentNode, { attributes: true, childList: true, characterData: true, attributeFilter: ['style'] });
353 353 }
354 354 },
355 355 beforeDestroy() {
356 356 this.observer.removeListener(this.$refs.navWrap, this.handleResize);
  357 + this.mutationObserver.disconnect();
357 358 }
358 359 };
359 360 </script>
... ...