Vue Lifecycle.
本指南讨论了如何在离子VUE应用中使用离子框架生命周期事件。betway东盟体育app
betway东盟体育app离子框架生命周期方法
betway东盟体育app离子框架提供了一些可以在您的应用中使用的生命周期方法:
事件名称 | 描述 |
---|---|
IonViewWillenter. |
当组件路由即将设置为View时触发。 |
IonviewDienter. |
组件路由已完成动画时触发。 |
IonviewWillleave. |
当组件路由即将设置动画时触发。 |
IonviewDidleave. |
组件路由已完成动画时触发。 |
Lifecycles定义了Vue Lifecycle方法的方式相同 - 作为VUE组件根源的函数:
进口
{
离子页面
}
从
'@betway东盟体育app ionic / vue'
;
进口
{
绝缘组分
}
从
'vue'
;
出口
默认
绝缘组分
(
{
姓名
:
'家'
那
IonviewDienter.
(
的)
{
安慰
。
日志
(
'主页确实进入'
的)
;
}
那
IonviewDidleave.
(
的)
{
安慰
。
日志
(
'主页确实离开了'
的)
;
}
那
IonViewWillenter.
(
的)
{
安慰
。
日志
(
'主页将进入'
的)
;
}
那
IonviewWillleave.
(
的)
{
安慰
。
日志
(
'主页将离开'
的)
;
}
那
成分
:
{
离子页面
}
}
的)
构图API钩子
这些生命周期也可以使用Vue 3的组合物API表示:
进口
{
离子页面
那
onionviewWillenter.
那
onionviewdidenter.
那
onionviewwillleave.
那
onionviewdidleave.
}
从
'@betway东盟体育app ionic / vue'
;
进口
{
绝缘组分
}
从
'vue'
;
出口
默认
绝缘组分
(
{
姓名
:
'家'
那
成分
:
{
离子页面
}
那
设置
(
的)
{
onionviewdidenter.
(
(
的)
=>
{
安慰
。
日志
(
'主页确实进入'
的)
;
}
的)
;
onionviewdidleave.
(
(
的)
=>
{
安慰
。
日志
(
'主页确实离开了'
的)
;
}
的)
;
onionviewWillenter.
(
(
的)
=>
{
安慰
。
日志
(
'主页将进入'
的)
;
}
的)
;
onionviewwillleave.
(
(
的)
=>
{
安慰
。
日志
(
'主页将离开'
的)
;
}
的)
;
}
}
的)
您的应用程序中的页面需要使用
离子页面
组件为了使生命周期方法和钩子正确射击。
离子框架betway东盟体育app如何处理页面的生命
betway东盟体育app离子框架有其路由器插座,称为
<离子路由器出口>
。此插座扩展了Vue Router的
<路由器视图>
具有一些额外的功能,可以为移动设备提供更好的体验。
当一个应用程序包裹
<离子路由器出口>
,离betway东盟体育app子框架对待导航有点不同。当您导航到新页面时,离子框架将保留现有DOM中的旧页面,但从您的视betway东盟体育app图中隐藏并转换新页面。我们这样做的原因是两倍:
1)我们可以维护旧页面的状态(屏幕上的数据,滚动位置等......)。2)我们可以提供返回页面的更平滑的转换,因为它已经存在,不需要创建。
例如,当“弹出”时,只能从DOM中删除页面,例如,按UI中的返回按钮或浏览器返回按钮。
由于这种特殊处理,某些VUE路由器组件如
<保持活力>
那
<过渡>
, 和
<路由器视图>
不应用于离子VUE应用。betway东盟体育app此外,由于每个页面的滚动位置自动保留,因此在此处不需要Vue路由器的滚动行为API。
Vue中的所有生命周期方法(
登上
那
之前
等等..)也可供您使用。但是,由于离子Vue管理页面的betway东盟体育app寿命,当您期望它们时,某些事件可能不会着火。例如,
登上
第一次发出页面时发射,但如果您远离页面导航离子框架可能会在DOM中保持页面,并且随后访问页面可能无法调用betway东盟体育app
登上
再次。这种情况是IONIC框架生命周期方法存在的主要原因,仍然可以在当地框架的事betway东盟体育app件可能无法触发时向您提供呼叫逻辑的方法。
每个生命周期方法的指导
以下是每个生命周期事件的用例的一些提示。
IonViewWillenter.
- 自从IonViewWillenter.
每次导航到(无论是否初始化或不初始化)时,都会调用,是从服务中加载数据的好方法。IonviewDienter.
- 如果您看到使用性能问题IonViewWillenter.
加载数据时,您可以执行数据IonviewDienter.
反而。但是,此事件直到用户对用户可见后,此事件将不会触发,因此您可能希望使用加载指示符或骨架屏幕,如 离子骨架文字 此外,在过渡完成后,内容在不自然的情况下不会闪烁。IonviewWillleave.
- 可以用于清理,如取消订阅数据源。自从之前
从当前页面导航时可能不会启动,如果在屏幕未视图中不希望它处于活动状态,请将清理代码放在此处。IonviewDidleave.
- 当此事件触发时,您知道新页面已完全转换,因此在视图可见时,您可能通常可能无法执行的任何逻辑。