mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-16 01:52:19 +08:00
feat(vue): composition api lifecycle methods (#22241)
This commit is contained in:
@ -1,9 +1,7 @@
|
||||
import { Ref } from 'vue';
|
||||
import { Ref, ComponentPublicInstance } from 'vue';
|
||||
import { LIFECYCLE_DID_ENTER, LIFECYCLE_DID_LEAVE, LIFECYCLE_WILL_ENTER, LIFECYCLE_WILL_LEAVE } from '@ionic/core';
|
||||
|
||||
export const LIFECYCLE_WILL_ENTER = 'ionViewWillEnter';
|
||||
export const LIFECYCLE_DID_ENTER = 'ionViewDidEnter';
|
||||
export const LIFECYCLE_WILL_LEAVE = 'ionViewWillLeave';
|
||||
export const LIFECYCLE_DID_LEAVE = 'ionViewDidLeave';
|
||||
type LIFECYCLE_EVENTS = typeof LIFECYCLE_WILL_ENTER | typeof LIFECYCLE_DID_ENTER | typeof LIFECYCLE_WILL_LEAVE | typeof LIFECYCLE_DID_LEAVE;
|
||||
|
||||
const ids: { [k: string]: number } = { main: 0 };
|
||||
|
||||
@ -14,8 +12,13 @@ export const generateId = (type = 'main') => {
|
||||
};
|
||||
|
||||
// TODO types
|
||||
export const fireLifecycle = (vueComponentRef: Ref<any>, lifecycle: string) => {
|
||||
if (vueComponentRef && vueComponentRef.value && vueComponentRef.value[lifecycle]) {
|
||||
vueComponentRef.value[lifecycle]();
|
||||
export const fireLifecycle = (vueComponent: any, vueInstance: Ref<ComponentPublicInstance>, lifecycle: LIFECYCLE_EVENTS) => {
|
||||
if (vueComponent?.[lifecycle]) {
|
||||
vueComponent[lifecycle].bind(vueInstance?.value)();
|
||||
}
|
||||
|
||||
const instance = vueInstance?.value as any;
|
||||
if (instance?.[lifecycle]) {
|
||||
instance[lifecycle]();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user