Hooks 
Hooks offer a way to register callbacks on router lifecycle events.
ts
onAfterRouteEnter: (to, context) => {
   ...
}Lifecycle 
Before Hooks 
- onBeforeRouteEnter: Triggered before a route gets mounted.
 - onBeforeRouteUpdate: Triggered before a route changes. Specifically when the route changed but that parent or child didn’t.
 - onBeforeRouteLeave: Triggered before a route is about to be unmounted
 
After Hooks 
- onAfterRouteLeave: Triggered after a route gets unmounted.
 - onAfterRouteUpdate: Triggered after a route changes. Specifically when the route changed but that parent or child didn’t.
 - onAfterRouteEnter: Triggered after a route is mounted
 
Context 
The router provides to and a context argument to your hook callback. The context will always include:
| Property | Description | 
|---|---|
| from | What was the route prior to the hook's execution | 
| push | Convenient way to move the user from wherever they were to a new route. | 
| replace | Same as push, but with options: { replace: true }. | 
| reject | Trigger a rejection for the router to handle | 
If the hooks lifecycle is a before hook, you'll also have access to the following property in your context:
| Property | Description | 
|---|---|
| abort | Stops the router from continuing with route change | 
Levels 
Hooks can be registered globally, on your route, or from within a component. This is useful for both providing the most convenient dx, but also can be a useful tool for ensuring proper execution order of your business logic.
Execution Order 
- Global hooks
 - Route hooks
 - Component Hooks
 
Global 
ts
router.onAfterRouteEnter((to, context) => {
  ...
})Route 
ts
const routes = createRoutes([
  {
    name: 'Home',
    path: '/',
    onAfterRouteEnter: (to, context) => {
      ...
    }
  }
])Component 
In order to register a hook from within a component, you must use the composition API.
ts
import { onBeforeRouteLeave } from '@kitbag/router'
onAfterRouteEnter((to, context) => {
  ...
})WARNING
You cannot register onBeforeRouteEnter from within a component, since the component must have been mounted to discover the hook.