File tree 2 files changed +8
-33
lines changed
packages/runtime-vapor/src
2 files changed +8
-33
lines changed Load Diff This file was deleted.
Original file line number Diff line number Diff line change @@ -3,12 +3,8 @@ import {
3
3
onEffectCleanup ,
4
4
onScopeDispose ,
5
5
} from '@vue/reactivity'
6
- import {
7
- MetadataKind ,
8
- getMetadata ,
9
- recordEventMetadata ,
10
- } from '../componentMetadata'
11
6
import { queuePostFlushCb } from '@vue/runtime-dom'
7
+ import { remove } from '@vue/shared'
12
8
13
9
export function addEventListener (
14
10
el : Element ,
@@ -49,13 +45,17 @@ export type DelegatedHandler = {
49
45
}
50
46
51
47
export function delegate (
52
- el : HTMLElement ,
48
+ el : any ,
53
49
event : string ,
54
50
handlerGetter : ( ) => undefined | ( ( ...args : any [ ] ) => any ) ,
55
51
) : void {
56
52
const handler : DelegatedHandler = eventHandler ( handlerGetter )
57
53
handler . delegate = true
58
- recordEventMetadata ( el , event , handler )
54
+
55
+ const cacheKey = `$evt${ event } `
56
+ const handlers : DelegatedHandler [ ] = el [ cacheKey ] || ( el [ cacheKey ] = [ ] )
57
+ handlers . push ( handler )
58
+ onScopeDispose ( ( ) => remove ( handlers , handler ) )
59
59
}
60
60
61
61
function eventHandler ( getter : ( ) => undefined | ( ( ...args : any [ ] ) => any ) ) {
@@ -98,7 +98,7 @@ const delegatedEventHandler = (e: Event) => {
98
98
} ,
99
99
} )
100
100
while ( node !== null ) {
101
- const handlers = getMetadata ( node ) [ MetadataKind . event ] [ e . type ]
101
+ const handlers = node [ `$evt ${ e . type } ` ] as DelegatedHandler [ ]
102
102
if ( handlers ) {
103
103
for ( const handler of handlers ) {
104
104
if ( handler . delegate && ! node . disabled ) {
You can’t perform that action at this time.
0 commit comments