types(hooks): Remove onVnode* and add onVue:* hooks

This commit is contained in:
Carlos Rodrigues 2023-10-24 13:24:05 +01:00
parent 7374e93f02
commit 62371dc6b4
2 changed files with 69 additions and 0 deletions

View File

@ -1472,6 +1472,37 @@ describe('slots', () => {
expectType<Slots | undefined>(new comp2().$slots)
})
// Not exposed by vue
type VueMountHook = (vnode: VNode) => void
type VueUpdateHook = (vnode: VNode, vnodeOld: VNode) => void
type VueMountHooks = VueMountHook | VueMountHook[]
type VueUpdateHooks = VueUpdateHook | VueUpdateHook[]
describe('@vue:* events', () => {
const Comp = new (defineComponent({}))()
expectType<VueMountHooks | undefined>(Comp.$props['onVue:BeforeMount'])
expectType<VueMountHooks | undefined>(Comp.$props['onVue:Mounted'])
expectType<VueUpdateHooks | undefined>(Comp.$props['onVue:BeforeUpdate'])
expectType<VueUpdateHooks | undefined>(Comp.$props['onVue:Updated'])
expectType<VueMountHooks | undefined>(Comp.$props['onVue:BeforeUnmount'])
expectType<VueMountHooks | undefined>(Comp.$props['onVue:Unmounted'])
// NOTE These Should have been removed :/
// // @ts-expect-error not valid anymore
// Comp.$props.onVnodeBeforeMount
// // @ts-expect-error not valid anymore
// Comp.$props.onVnodeMounted
// // @ts-expect-error not valid anymore
// Comp.$props.onVnodeBeforeUpdate
// // @ts-expect-error not valid anymore
// Comp.$props.onVnodeUpdated
// // @ts-expect-error not valid anymore
// Comp.$props.onVnodeBeforeUnmount
// // @ts-expect-error not valid anymore
// Comp.$props.onVnodeUnmounted
})
import {
DefineComponent,
ComponentOptionsMixin,

View File

@ -103,12 +103,50 @@ export type VNodeProps = {
ref_for?: boolean
ref_key?: string
// vue hooks
['onVue:BeforeMount']?: VNodeMountHook | VNodeMountHook[]
['onVue:Mounted']?: VNodeMountHook | VNodeMountHook[]
['onVue:BeforeUpdate']?: VNodeUpdateHook | VNodeUpdateHook[]
['onVue:Updated']?: VNodeUpdateHook | VNodeUpdateHook[]
['onVue:BeforeUnmount']?: VNodeMountHook | VNodeMountHook[]
['onVue:Unmounted']?: VNodeMountHook | VNodeMountHook[]
// vnode hooks
/**
* Please use onVue:beforeMount
* @deprecated
* @internal
*/
onVnodeBeforeMount?: VNodeMountHook | VNodeMountHook[]
/**
* Please use onVue:mounted
* @deprecated
* @internal
*/
onVnodeMounted?: VNodeMountHook | VNodeMountHook[]
/**
* Please use onVue:beforeUpdate
* @deprecated
* @internal
*/
onVnodeBeforeUpdate?: VNodeUpdateHook | VNodeUpdateHook[]
/**
* Please use onVue:updated
* @deprecated
* @internal
*/
onVnodeUpdated?: VNodeUpdateHook | VNodeUpdateHook[]
/**
* Please use onVue:beforeUnmount
* @deprecated
* @internal
*/
onVnodeBeforeUnmount?: VNodeMountHook | VNodeMountHook[]
/**
* Please use onVue:unmounted
* @deprecated
* @internal
*/
onVnodeUnmounted?: VNodeMountHook | VNodeMountHook[]
}