# Lifecycle Hooks Nuxt provides a powerful hooking system to expand almost every aspect using hooks powered by [unjs/hookable](https://github.com/unjs/hookable). ## Nuxt Hooks (Build Time) These hooks are available for [Nuxt Modules](/guide/going-further/modules) and build context. ### Usage with `nuxt.config` ```js [nuxt.config] export default defineNuxtConfig({ hooks: { 'close': () => { } } }) ``` ### Usage with Nuxt Modules ```js import { defineNuxtModule } from '@nuxt/kit' export default defineNuxtModule({ setup (options, nuxt) { nuxt.hook('close', async () => { }) }) }) ``` ## App Hooks (Runtime) App hooks can be mainly used by [Nuxt Plugins](/guide/directory-structure/plugins) to hook into rendering lifecycle but could also be used in Vue composables. ### Usage with Plugins ```js [plugins/test.ts] export default defineNuxtPlugin((nuxtApp) => { nuxtApp.hook('page:start', () => { /* your code goes here */ }) }) ``` ::alert{icon=👉} Learn more about [available lifecycle hooks](/api/advanced/hooks) ::