# Life cycle ## Lifecycle of applications <img src="./index/app-flow.svg" style="max-width: 380px;" /> ## Lifecycle of plugins <img src="./index/pm-flow.svg" style="max-width: 600px;" /> ## Lifecycle methods for plugins ```ts import { InstallOptions, Plugin } from '@nocobase/server'; export class MyPlugin extends Plugin { afterAdd() { // After the plugin pm.add is registered. Mainly used to place the app.beforeLoad event. beforeLoad() { } beforeLoad() { // Before all plugins are loaded. Generally used for registering classes and event listeners } async load() { // Load configuration } async install(options?: InstallOptions) { // Logic for installing } async afterEnable() { // After activation } async afterDisable() { // After disable } async remove() { // Logic for removing } } export default MyPlugin; ```