React Lifecycle
本指南讨论了如何在 Ionic React 应用中使用 Ionic 生命周期事件。
Ionic 生命周期方法
Ionic 提供了几个可以在应用中使用的生命周期方法:
| 事件名称 | 描述 |
|---|---|
ionViewWillEnter | 当路由目标组件即 将开始进入视图的动画时触发。 |
ionViewDidEnter | 当路由目标组件已完成进入视图的动画时触发。 |
ionViewWillLeave | 当离开路由的源组件即将开始离开视图的动画时触发。 |
ionViewDidLeave | 当离开路由的源组件已完成离开视图的动画时触发。 |
这些生命周期仅在被路由器直接映射的组件上调用。这意味着,如果 /pageOne 映射到 PageOneComponent,那么 Ionic 生命周期将在 PageOneComponent 上调用,但不会在 PageOneComponent 可能渲染的任何子组件上调用。
访问这些方法的方式取决于您使用的是类组件还是函数组件。我们在下面介绍这两种方法。
类组件中的生命周期方法
要在类组件中使用 Ionic 生命周期方法,必须用 withIonLifeCycle 高阶组件(HOC)包装您的组件,如下所示:
export default withIonLifeCycle(HomePage);
备注
withIonLifeCycle 从 @ionic/react 导入
然后,您可以在类组件上创建相应的生命周期方法,当事件发生时,HOC 会调用该方法。下面是实现了所有生命周期方法的完整组件:
import React from 'react';
import { IonHeader, IonPage, IonToolbar, IonTitle, IonContent, withIonLifeCycle } from '@ionic/react';
class HomePage extends React.Component {
ionViewWillEnter() {
console.log('ionViewWillEnter event fired');
}
ionViewWillLeave() {
console.log('ionViewWillLeave event fired');
}
ionViewDidEnter() {
console.log('ionViewDidEnter event fired');
}
ionViewDidLeave() {
console.log('ionViewDidLeave event fired');
}
render() {
return (
<IonPage>
<IonHeader>
<IonToolbar>
<IonTitle>Home</IonTitle>
</IonToolbar>
</IonHeader>
<IonContent></IonContent>
</IonPage>
);
}
}
export default withIonLifeCycle(HomePage);