Aurelia 页面生命周期 - 路由/渲染管道中的执行顺序

标签 aurelia

当应用程序从一个 URL 导航到另一个 URL 时,Aurelia 路由和渲染管道的执行顺序是什么?

最佳答案

有两个生命周期:

路由器生命周期是:

  1. 上一屏幕canDeactivate
  2. 下一个屏幕已实例化
  3. 下一个屏幕canActivate
  4. 上一屏幕停用
  5. 下一个屏幕激活
  6. 渲染下一个屏幕。

组件生命周期是:

加载时:

  1. 已创建
  2. 绑定(bind)
  3. 已附

卸载时:

  1. 独立
  2. 解除绑定(bind)

至于这一切是如何结合在一起的,只需将每个回调添加到两个路由页面并记录调用即可显示:

Previous Page canDeactivate
Next Page canActivate
Previous Page deactivate
Next Page activate
Next Page created
Next Page bind
Previous Page detached
Previous Page unbind
Next Page attached

如果我们包含您原始答案中包含的路由器 Hook (步骤),那么它看起来像这样:

Previous Page canDeactivate
Authorize step
Next Page canActivate
Pre-activate step
Previous Page deactivate
Next Page activate
Pre-render step
Next Page created
Next Page bind
Post-render step
Previous Page detached
Previous Page unbind
Next Page attached

我已将两者都包含在内,因为大多数应用程序不会添加 Hook 。

关于Aurelia 页面生命周期 - 路由/渲染管道中的执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43229724/

相关文章:

aurelia - 使用jspm和system.js导入CSS并控制<head>中的顺序

javascript - 如何使用 ViewCompiler 手动编译部分 DOM?

javascript - Aurelia - 如何从多个表单字段捕获数据并将其存储在模型中

aurelia - 如何提供一个 aurelia 库供基于 aurelia CLI 的应用程序使用

aurelia - 在 Aurelia View 中使用文字 JavaScript 值

javascript - 如何将数据从 ASP.NET WebForms 传递到 Aurelia Global Scope

Aurelia Repeat.用于双向绑定(bind)

javascript - computeFrom 去哪儿了

javascript - <require> 在 Aurelia 中使用 enhance 调用的 globalResource 组件中

aurelia - 从 Aurelia-CLI 构建生产包