From 30f22b28ed8d909f9aa3243d7d9593b334a68ad1 Mon Sep 17 00:00:00 2001 From: neverland Date: Mon, 25 Dec 2017 15:58:44 +0800 Subject: [PATCH] [Improvement] optimize passive events (#478) --- packages/mixins/popup/index.js | 15 ++++++++++----- packages/tabs/index.vue | 3 ++- packages/utils/clickoutside.js | 6 +++--- packages/utils/event.js | 28 ++++++++++++++++++++++++++++ packages/waterfall/directive.js | 13 ++++++++----- 5 files changed, 51 insertions(+), 14 deletions(-) create mode 100644 packages/utils/event.js diff --git a/packages/mixins/popup/index.js b/packages/mixins/popup/index.js index 205d9c9ee..7b51213ea 100644 --- a/packages/mixins/popup/index.js +++ b/packages/mixins/popup/index.js @@ -1,6 +1,7 @@ import manager from './manager'; import context from './context'; import scrollUtils from '../../utils/scroll'; +import { on, off } from '../../utils/event'; export default { props: { @@ -70,7 +71,11 @@ export default { status = '10'; } - if (status !== '11' && isVertical && !(parseInt(status, 2) & parseInt(direction, 2))) { + if ( + status !== '11' && + isVertical && + !(parseInt(status, 2) & parseInt(direction, 2)) + ) { e.preventDefault(); e.stopPropagation(); } @@ -106,8 +111,8 @@ export default { this.opened = true; if (this.preventScroll) { - document.addEventListener('touchstart', this.recordPosition); - document.addEventListener('touchmove', this.watchTouchMove); + on(document, 'touchstart', this.recordPosition); + on(document, 'touchmove', this.watchTouchMove); } }, @@ -129,8 +134,8 @@ export default { } if (this.preventScroll) { - document.removeEventListener('touchstart', this.recordPosition); - document.removeEventListener('touchmove', this.watchTouchMove); + off(document, 'touchstart', this.recordPosition); + off(document, 'touchmove', this.watchTouchMove); } } }, diff --git a/packages/tabs/index.vue b/packages/tabs/index.vue index a4398e67e..fb882e3e5 100644 --- a/packages/tabs/index.vue +++ b/packages/tabs/index.vue @@ -30,6 +30,7 @@