diff --git a/packages/inula-novdom/src/event.ts b/packages/inula-novdom/src/event.ts index 48b9f98b..9d356e5b 100644 --- a/packages/inula-novdom/src/event.ts +++ b/packages/inula-novdom/src/event.ts @@ -70,12 +70,9 @@ function eventHandler(e: Event) { } export function addEventListener(node: Element, name: string, handler: EventListener, delegate?: boolean): void { - const prev = node[`$$${name}`]; - if (!delegate) { - if (prev) { - node.removeEventListener(name, prev); - } + if (delegate) { + node[`$$${name}`] = handler; + } else { node.addEventListener(name, handler); } - node[`$$${name}`] = handler; } diff --git a/packages/inula-novdom/tests/For.bench.ts b/packages/inula-novdom/tests/For.bench.ts index 182945ae..b8e65a75 100644 --- a/packages/inula-novdom/tests/For.bench.ts +++ b/packages/inula-novdom/tests/For.bench.ts @@ -15,12 +15,12 @@ import { bench } from 'vitest'; import { computed, reactive, watch } from 'inula-reactive'; import { - template as _$template, - insert as _$insert, - setAttribute as _$setAttribute, + template as $$template, + insert as $$insert, + setAttribute as $$setAttribute, } from '../src/dom'; -import { createComponent as _$createComponent, render } from '../src/core'; -import { delegateEvents as _$delegateEvents, addEventListener as _$addEventListener } from '../src/event'; +import { createComponent as $$createComponent, render } from '../src/core'; +import { delegateEvents as $$delegateEvents, addEventListener as $$addEventListener } from '../src/event'; import { For } from '../src/components/For'; const container = document.createElement('div'); @@ -103,9 +103,9 @@ bench('For', () => { */ // 编译后: - const _tmpl$ = /*#__PURE__*/ _$template(''), - _tmpl$2 = /*#__PURE__*/ _$template('