mirror of https://github.com/vuejs/core.git
refactor(runtime-vapor): don't record metadata for `on`
This commit is contained in:
parent
280b8cbdab
commit
ebd3710d72
|
@ -1,5 +1,6 @@
|
||||||
import { reactive, ref } from '@vue/reactivity'
|
import { reactive, ref } from '@vue/reactivity'
|
||||||
import {
|
import {
|
||||||
|
delegate,
|
||||||
on,
|
on,
|
||||||
setClass,
|
setClass,
|
||||||
setDOMProp,
|
setDOMProp,
|
||||||
|
@ -34,7 +35,7 @@ describe('directive: v-model', () => {
|
||||||
const t0 = template('<input />')
|
const t0 = template('<input />')
|
||||||
const n0 = t0() as HTMLInputElement
|
const n0 = t0() as HTMLInputElement
|
||||||
withDirectives(n0, [[vModelDynamic, () => data.value]])
|
withDirectives(n0, [[vModelDynamic, () => data.value]])
|
||||||
on(n0, 'update:modelValue', () => val => (data.value = val))
|
delegate(n0, 'update:modelValue', () => val => (data.value = val))
|
||||||
on(n0, 'input', () => () => spy(data.value))
|
on(n0, 'input', () => () => spy(data.value))
|
||||||
return n0
|
return n0
|
||||||
}).render()
|
}).render()
|
||||||
|
@ -66,7 +67,7 @@ describe('directive: v-model', () => {
|
||||||
)
|
)
|
||||||
const n0 = t0() as HTMLInputElement
|
const n0 = t0() as HTMLInputElement
|
||||||
withDirectives(n0, [[vModelSelect, () => data.value]])
|
withDirectives(n0, [[vModelSelect, () => data.value]])
|
||||||
on(n0, 'update:modelValue', () => val => (data.value = val))
|
delegate(n0, 'update:modelValue', () => val => (data.value = val))
|
||||||
on(n0, 'change', () => () => spy(data.value))
|
on(n0, 'change', () => () => spy(data.value))
|
||||||
return n0
|
return n0
|
||||||
}).render()
|
}).render()
|
||||||
|
@ -93,7 +94,7 @@ describe('directive: v-model', () => {
|
||||||
|
|
||||||
setDOMProp(n0, 'type', 'number')
|
setDOMProp(n0, 'type', 'number')
|
||||||
withDirectives(n0, [[vModelDynamic, () => data.value]])
|
withDirectives(n0, [[vModelDynamic, () => data.value]])
|
||||||
on(n0, 'update:modelValue', () => val => (data.value = val))
|
delegate(n0, 'update:modelValue', () => val => (data.value = val))
|
||||||
return n0
|
return n0
|
||||||
}).render()
|
}).render()
|
||||||
|
|
||||||
|
@ -117,8 +118,8 @@ describe('directive: v-model', () => {
|
||||||
const t0 = template('<input />')
|
const t0 = template('<input />')
|
||||||
const n0 = t0() as HTMLInputElement
|
const n0 = t0() as HTMLInputElement
|
||||||
withDirectives(n0, [[vModelDynamic, () => data.value]])
|
withDirectives(n0, [[vModelDynamic, () => data.value]])
|
||||||
on(n0, 'update:modelValue', () => val => (data.value = val))
|
delegate(n0, 'update:modelValue', () => val => (data.value = val))
|
||||||
on(n0, 'update:modelValue', () => spy)
|
delegate(n0, 'update:modelValue', () => spy)
|
||||||
return n0
|
return n0
|
||||||
}).render()
|
}).render()
|
||||||
|
|
||||||
|
@ -141,7 +142,7 @@ describe('directive: v-model', () => {
|
||||||
const t0 = template('<input />')
|
const t0 = template('<input />')
|
||||||
const n0 = t0() as HTMLInputElement
|
const n0 = t0() as HTMLInputElement
|
||||||
withDirectives(n0, [[vModelDynamic, () => data.value]])
|
withDirectives(n0, [[vModelDynamic, () => data.value]])
|
||||||
on(n0, 'update:modelValue', () => (toggle.value ? spy1 : spy2))
|
delegate(n0, 'update:modelValue', () => (toggle.value ? spy1 : spy2))
|
||||||
return n0
|
return n0
|
||||||
}).render()
|
}).render()
|
||||||
|
|
||||||
|
@ -168,7 +169,7 @@ describe('directive: v-model', () => {
|
||||||
const t0 = template('<textarea />')
|
const t0 = template('<textarea />')
|
||||||
const n0 = t0() as HTMLInputElement
|
const n0 = t0() as HTMLInputElement
|
||||||
withDirectives(n0, [[vModelDynamic, () => data.value]])
|
withDirectives(n0, [[vModelDynamic, () => data.value]])
|
||||||
on(n0, 'update:modelValue', () => val => (data.value = val))
|
delegate(n0, 'update:modelValue', () => val => (data.value = val))
|
||||||
return n0
|
return n0
|
||||||
}).render()
|
}).render()
|
||||||
|
|
||||||
|
@ -204,14 +205,14 @@ describe('directive: v-model', () => {
|
||||||
withDirectives(input1, [
|
withDirectives(input1, [
|
||||||
[vModelDynamic, () => data.number, '', { number: true }],
|
[vModelDynamic, () => data.number, '', { number: true }],
|
||||||
])
|
])
|
||||||
on(input1, 'update:modelValue', () => val => (data.number = val))
|
delegate(input1, 'update:modelValue', () => val => (data.number = val))
|
||||||
|
|
||||||
// trim
|
// trim
|
||||||
setClass(input2, 'trim')
|
setClass(input2, 'trim')
|
||||||
withDirectives(input2, [
|
withDirectives(input2, [
|
||||||
[vModelDynamic, () => data.trim, '', { trim: true }],
|
[vModelDynamic, () => data.trim, '', { trim: true }],
|
||||||
])
|
])
|
||||||
on(input2, 'update:modelValue', () => val => (data.trim = val))
|
delegate(input2, 'update:modelValue', () => val => (data.trim = val))
|
||||||
|
|
||||||
// trim & number
|
// trim & number
|
||||||
setClass(input3, 'trim-number')
|
setClass(input3, 'trim-number')
|
||||||
|
@ -223,14 +224,18 @@ describe('directive: v-model', () => {
|
||||||
{ trim: true, number: true },
|
{ trim: true, number: true },
|
||||||
],
|
],
|
||||||
])
|
])
|
||||||
on(input3, 'update:modelValue', () => val => (data.trimNumber = val))
|
delegate(
|
||||||
|
input3,
|
||||||
|
'update:modelValue',
|
||||||
|
() => val => (data.trimNumber = val),
|
||||||
|
)
|
||||||
|
|
||||||
// lazy
|
// lazy
|
||||||
setClass(input4, 'lazy')
|
setClass(input4, 'lazy')
|
||||||
withDirectives(input4, [
|
withDirectives(input4, [
|
||||||
[vModelDynamic, () => data.lazy, '', { lazy: true }],
|
[vModelDynamic, () => data.lazy, '', { lazy: true }],
|
||||||
])
|
])
|
||||||
on(input4, 'update:modelValue', () => val => (data.lazy = val))
|
delegate(input4, 'update:modelValue', () => val => (data.lazy = val))
|
||||||
|
|
||||||
return n0
|
return n0
|
||||||
}).render()
|
}).render()
|
||||||
|
@ -282,7 +287,7 @@ describe('directive: v-model', () => {
|
||||||
withDirectives(n1, [
|
withDirectives(n1, [
|
||||||
[vModelDynamic, () => data.value, '', { number: true }],
|
[vModelDynamic, () => data.value, '', { number: true }],
|
||||||
])
|
])
|
||||||
on(n1, 'update:modelValue', () => val => (data.value = val))
|
delegate(n1, 'update:modelValue', () => val => (data.value = val))
|
||||||
|
|
||||||
setDOMProps(n2, [
|
setDOMProps(n2, [
|
||||||
['class', 'bar'],
|
['class', 'bar'],
|
||||||
|
@ -294,7 +299,7 @@ describe('directive: v-model', () => {
|
||||||
withDirectives(n2, [
|
withDirectives(n2, [
|
||||||
[vModelDynamic, () => data.value, '', { lazy: true }],
|
[vModelDynamic, () => data.value, '', { lazy: true }],
|
||||||
])
|
])
|
||||||
on(n2, 'update:modelValue', () => val => (data.value = val))
|
delegate(n2, 'update:modelValue', () => val => (data.value = val))
|
||||||
return n0
|
return n0
|
||||||
}).render()
|
}).render()
|
||||||
|
|
||||||
|
@ -360,7 +365,7 @@ describe('directive: v-model', () => {
|
||||||
const n0 = t0() as HTMLInputElement
|
const n0 = t0() as HTMLInputElement
|
||||||
setDOMProp(n0, 'type', 'checkbox')
|
setDOMProp(n0, 'type', 'checkbox')
|
||||||
withDirectives(n0, [[vModelDynamic, () => data.value]])
|
withDirectives(n0, [[vModelDynamic, () => data.value]])
|
||||||
on(n0, 'update:modelValue', () => val => (data.value = val))
|
delegate(n0, 'update:modelValue', () => val => (data.value = val))
|
||||||
return n0
|
return n0
|
||||||
}).render()
|
}).render()
|
||||||
|
|
||||||
|
@ -396,7 +401,7 @@ describe('directive: v-model', () => {
|
||||||
['false-value', 'no'],
|
['false-value', 'no'],
|
||||||
])
|
])
|
||||||
withDirectives(n0, [[vModelDynamic, () => data.value]])
|
withDirectives(n0, [[vModelDynamic, () => data.value]])
|
||||||
on(n0, 'update:modelValue', () => val => (data.value = val))
|
delegate(n0, 'update:modelValue', () => val => (data.value = val))
|
||||||
return n0
|
return n0
|
||||||
}).render()
|
}).render()
|
||||||
|
|
||||||
|
@ -434,7 +439,7 @@ describe('directive: v-model', () => {
|
||||||
['false-value', { no: 'no' }],
|
['false-value', { no: 'no' }],
|
||||||
])
|
])
|
||||||
withDirectives(n0, [[vModelDynamic, () => data.value]])
|
withDirectives(n0, [[vModelDynamic, () => data.value]])
|
||||||
on(n0, 'update:modelValue', () => val => (data.value = val))
|
delegate(n0, 'update:modelValue', () => val => (data.value = val))
|
||||||
return n0
|
return n0
|
||||||
}).render()
|
}).render()
|
||||||
|
|
||||||
|
@ -470,7 +475,7 @@ describe('directive: v-model', () => {
|
||||||
['value', 'foo'],
|
['value', 'foo'],
|
||||||
])
|
])
|
||||||
withDirectives(n1, [[vModelDynamic, () => data.value]])
|
withDirectives(n1, [[vModelDynamic, () => data.value]])
|
||||||
on(n1, 'update:modelValue', () => val => (data.value = val))
|
delegate(n1, 'update:modelValue', () => val => (data.value = val))
|
||||||
|
|
||||||
setDOMProps(n2, [
|
setDOMProps(n2, [
|
||||||
['class', 'bar'],
|
['class', 'bar'],
|
||||||
|
@ -478,7 +483,7 @@ describe('directive: v-model', () => {
|
||||||
['value', 'bar'],
|
['value', 'bar'],
|
||||||
])
|
])
|
||||||
withDirectives(n2, [[vModelDynamic, () => data.value]])
|
withDirectives(n2, [[vModelDynamic, () => data.value]])
|
||||||
on(n2, 'update:modelValue', () => val => (data.value = val))
|
delegate(n2, 'update:modelValue', () => val => (data.value = val))
|
||||||
|
|
||||||
return n0
|
return n0
|
||||||
}).render()
|
}).render()
|
||||||
|
@ -534,7 +539,7 @@ describe('directive: v-model', () => {
|
||||||
['value', 'foo'],
|
['value', 'foo'],
|
||||||
])
|
])
|
||||||
withDirectives(n1, [[vModelDynamic, () => data.value]])
|
withDirectives(n1, [[vModelDynamic, () => data.value]])
|
||||||
on(n1, 'update:modelValue', () => val => (data.value = val))
|
delegate(n1, 'update:modelValue', () => val => (data.value = val))
|
||||||
|
|
||||||
setDOMProps(n2, [
|
setDOMProps(n2, [
|
||||||
['class', 'bar'],
|
['class', 'bar'],
|
||||||
|
@ -542,7 +547,7 @@ describe('directive: v-model', () => {
|
||||||
['value', 'bar'],
|
['value', 'bar'],
|
||||||
])
|
])
|
||||||
withDirectives(n2, [[vModelDynamic, () => data.value]])
|
withDirectives(n2, [[vModelDynamic, () => data.value]])
|
||||||
on(n2, 'update:modelValue', () => val => (data.value = val))
|
delegate(n2, 'update:modelValue', () => val => (data.value = val))
|
||||||
|
|
||||||
return n0
|
return n0
|
||||||
}).render()
|
}).render()
|
||||||
|
@ -598,7 +603,7 @@ describe('directive: v-model', () => {
|
||||||
['value', 'foo'],
|
['value', 'foo'],
|
||||||
])
|
])
|
||||||
withDirectives(n1, [[vModelDynamic, () => data.value]])
|
withDirectives(n1, [[vModelDynamic, () => data.value]])
|
||||||
on(n1, 'update:modelValue', () => val => (data.value = val))
|
delegate(n1, 'update:modelValue', () => val => (data.value = val))
|
||||||
|
|
||||||
setDOMProps(n2, [
|
setDOMProps(n2, [
|
||||||
['class', 'bar'],
|
['class', 'bar'],
|
||||||
|
@ -606,7 +611,7 @@ describe('directive: v-model', () => {
|
||||||
['value', 'bar'],
|
['value', 'bar'],
|
||||||
])
|
])
|
||||||
withDirectives(n2, [[vModelDynamic, () => data.value]])
|
withDirectives(n2, [[vModelDynamic, () => data.value]])
|
||||||
on(n2, 'update:modelValue', () => val => (data.value = val))
|
delegate(n2, 'update:modelValue', () => val => (data.value = val))
|
||||||
|
|
||||||
return n0
|
return n0
|
||||||
}).render()
|
}).render()
|
||||||
|
@ -651,7 +656,7 @@ describe('directive: v-model', () => {
|
||||||
|
|
||||||
setDOMProp(n0, 'value', null)
|
setDOMProp(n0, 'value', null)
|
||||||
withDirectives(n0, [[vModelDynamic, () => data.value]])
|
withDirectives(n0, [[vModelDynamic, () => data.value]])
|
||||||
on(n0, 'update:modelValue', () => val => (data.value = val))
|
delegate(n0, 'update:modelValue', () => val => (data.value = val))
|
||||||
return n0
|
return n0
|
||||||
}).render()
|
}).render()
|
||||||
|
|
||||||
|
@ -701,7 +706,7 @@ describe('directive: v-model', () => {
|
||||||
['multiple', true],
|
['multiple', true],
|
||||||
])
|
])
|
||||||
withDirectives(n0, [[vModelDynamic, () => data.value]])
|
withDirectives(n0, [[vModelDynamic, () => data.value]])
|
||||||
on(n0, 'update:modelValue', () => val => (data.value = val))
|
delegate(n0, 'update:modelValue', () => val => (data.value = val))
|
||||||
return n0
|
return n0
|
||||||
}).render()
|
}).render()
|
||||||
|
|
||||||
|
@ -755,7 +760,7 @@ describe('directive: v-model', () => {
|
||||||
withDirectives(n0, [
|
withDirectives(n0, [
|
||||||
[vModelDynamic, () => data.value, '', { number: true }],
|
[vModelDynamic, () => data.value, '', { number: true }],
|
||||||
])
|
])
|
||||||
on(n0, 'update:modelValue', () => val => (data.value = val))
|
delegate(n0, 'update:modelValue', () => val => (data.value = val))
|
||||||
return n0
|
return n0
|
||||||
}).render()
|
}).render()
|
||||||
|
|
||||||
|
@ -785,7 +790,7 @@ describe('directive: v-model', () => {
|
||||||
withDirectives(n0, [
|
withDirectives(n0, [
|
||||||
[vModelDynamic, () => data.value, '', { number: true }],
|
[vModelDynamic, () => data.value, '', { number: true }],
|
||||||
])
|
])
|
||||||
on(n0, 'update:modelValue', () => val => (data.value = val))
|
delegate(n0, 'update:modelValue', () => val => (data.value = val))
|
||||||
return n0
|
return n0
|
||||||
}).render()
|
}).render()
|
||||||
|
|
||||||
|
@ -845,7 +850,7 @@ describe('directive: v-model', () => {
|
||||||
withDirectives(n0, [
|
withDirectives(n0, [
|
||||||
[vModelDynamic, () => data.value, '', { number: true }],
|
[vModelDynamic, () => data.value, '', { number: true }],
|
||||||
])
|
])
|
||||||
on(n0, 'update:modelValue', () => val => (data.value = val))
|
delegate(n0, 'update:modelValue', () => val => (data.value = val))
|
||||||
return n0
|
return n0
|
||||||
}).render()
|
}).render()
|
||||||
|
|
||||||
|
@ -913,7 +918,7 @@ describe('directive: v-model', () => {
|
||||||
['multiple', true],
|
['multiple', true],
|
||||||
])
|
])
|
||||||
withDirectives(n0, [[vModelDynamic, () => data.value]])
|
withDirectives(n0, [[vModelDynamic, () => data.value]])
|
||||||
on(n0, 'update:modelValue', () => val => (data.value = val))
|
delegate(n0, 'update:modelValue', () => val => (data.value = val))
|
||||||
return n0
|
return n0
|
||||||
}).render()
|
}).render()
|
||||||
|
|
||||||
|
@ -976,7 +981,7 @@ describe('directive: v-model', () => {
|
||||||
withDirectives(n0, [
|
withDirectives(n0, [
|
||||||
[vModelDynamic, () => data.value, '', { number: true }],
|
[vModelDynamic, () => data.value, '', { number: true }],
|
||||||
])
|
])
|
||||||
on(n0, 'update:modelValue', () => val => (data.value = val))
|
delegate(n0, 'update:modelValue', () => val => (data.value = val))
|
||||||
return n0
|
return n0
|
||||||
}).render()
|
}).render()
|
||||||
|
|
||||||
|
@ -1026,7 +1031,7 @@ describe('directive: v-model', () => {
|
||||||
const t0 = template('<input />')
|
const t0 = template('<input />')
|
||||||
const n0 = t0() as HTMLInputElement
|
const n0 = t0() as HTMLInputElement
|
||||||
withDirectives(n0, [[vModelDynamic, () => data.value]])
|
withDirectives(n0, [[vModelDynamic, () => data.value]])
|
||||||
on(n0, 'update:modelValue', () => val => (data.value = val))
|
delegate(n0, 'update:modelValue', () => val => (data.value = val))
|
||||||
return n0
|
return n0
|
||||||
}).render()
|
}).render()
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,6 @@ export function on(
|
||||||
ModifierOptions & { effect?: boolean } = {},
|
ModifierOptions & { effect?: boolean } = {},
|
||||||
) {
|
) {
|
||||||
const handler: DelegatedHandler = eventHandler(handlerGetter, options)
|
const handler: DelegatedHandler = eventHandler(handlerGetter, options)
|
||||||
const cleanupMetadata = recordEventMetadata(el, event, handler)
|
|
||||||
let cleanupEvent: (() => void) | undefined
|
let cleanupEvent: (() => void) | undefined
|
||||||
queuePostRenderEffect(() => {
|
queuePostRenderEffect(() => {
|
||||||
cleanupEvent = addEventListener(el, event, handler, options)
|
cleanupEvent = addEventListener(el, event, handler, options)
|
||||||
|
@ -43,7 +42,6 @@ export function on(
|
||||||
}
|
}
|
||||||
|
|
||||||
function cleanup() {
|
function cleanup() {
|
||||||
cleanupMetadata()
|
|
||||||
cleanupEvent && cleanupEvent()
|
cleanupEvent && cleanupEvent()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue