通过 vue-router 导航时组件生命周期钩子的优先级是多少
What is the precedence of components' lifecycle hooks when navigating via vue-router
我注意到当从起点导航到目的地时,目标组件的 created
挂钩出现在起点组件的 beforeDestroy
钩子之前。假设我们有这个路由器:
const router = new VueRouter({
routes: [
{ path: '/foo', component: Foo },
{ path: '/bar', component: Bar }
],
})
组件生命周期钩子的实际优先级是多少(beforeCreate
, created
, beforeMount
, mounted
, activated
, deactivated
, beforeDestroy
, destroyed
) 当从 /foo
导航到 /bar
?
以及结合导航守卫的完整导航流程是什么(beforeRouteLeave
, beforeEach
, beforeRouteUpdate
, beforeEnter
beforeRouteEnter
, beforeResolve
, afterEach
)?
根据 this fiddle,这是从 Foo
导航到 Bar
时生命周期挂钩的优先级:
Bar
: beforeCreate
Bar
: created
Bar
: beforeMount
Foo
: beforeDestroy
Foo
: destroyed
Bar
: mounted
下面是完整的导航流程:
- 来源:
beforeRouteLeave
后卫。
- 全球:
beforeEach
后卫。
- 目的地:
beforeEnter
gaurd.
- 目的地:
beforeRouteEnter
守卫。
- 全球:
beforeResolve
后卫。
- 全球:
afterEach
后卫。
- 目的地:
beforeCreate
生命周期钩子。
- 目的地:
created
生命周期钩子。
- 目的地:
beforeMount
生命周期钩子。
- 目的地:回调传递给
beforeRouteEnter
守卫中的 next
。
- 来源:
beforeDestroy
生命周期钩子。
- 来源:
destroyed
生命周期钩子。
- 目的地:
mounted
生命周期钩子。
使用keep-alive
时:
- ...
- 目的地:回调传递给
beforeRouteEnter
守卫中的 next
。
- 来源:
deactivated
生命周期钩子。
- 目的地:
mounted
生命周期钩子。
- 目的地:
activated
生命周期钩子。
我注意到当从起点导航到目的地时,目标组件的 created
挂钩出现在起点组件的 beforeDestroy
钩子之前。假设我们有这个路由器:
const router = new VueRouter({
routes: [
{ path: '/foo', component: Foo },
{ path: '/bar', component: Bar }
],
})
组件生命周期钩子的实际优先级是多少(beforeCreate
, created
, beforeMount
, mounted
, activated
, deactivated
, beforeDestroy
, destroyed
) 当从 /foo
导航到 /bar
?
以及结合导航守卫的完整导航流程是什么(beforeRouteLeave
, beforeEach
, beforeRouteUpdate
, beforeEnter
beforeRouteEnter
, beforeResolve
, afterEach
)?
根据 this fiddle,这是从 Foo
导航到 Bar
时生命周期挂钩的优先级:
Bar
:beforeCreate
Bar
:created
Bar
:beforeMount
Foo
:beforeDestroy
Foo
:destroyed
Bar
:mounted
下面是完整的导航流程:
- 来源:
beforeRouteLeave
后卫。 - 全球:
beforeEach
后卫。 - 目的地:
beforeEnter
gaurd. - 目的地:
beforeRouteEnter
守卫。 - 全球:
beforeResolve
后卫。 - 全球:
afterEach
后卫。 - 目的地:
beforeCreate
生命周期钩子。 - 目的地:
created
生命周期钩子。 - 目的地:
beforeMount
生命周期钩子。 - 目的地:回调传递给
beforeRouteEnter
守卫中的next
。 - 来源:
beforeDestroy
生命周期钩子。 - 来源:
destroyed
生命周期钩子。 - 目的地:
mounted
生命周期钩子。
使用keep-alive
时:
- ...
- 目的地:回调传递给
beforeRouteEnter
守卫中的next
。 - 来源:
deactivated
生命周期钩子。 - 目的地:
mounted
生命周期钩子。 - 目的地:
activated
生命周期钩子。