3aada8fe07
* docs: application * docs: application lifecycle * docs: database * docs: update * docs: repository * docs: repository * docs: plugin * docs: resourcer * docs: database * docs: acl * docs: actions * docs: repository * docs: api * docs: api * docs: api
49 lines
1.0 KiB
Markdown
49 lines
1.0 KiB
Markdown
# Plugin
|
|
|
|
## 概览
|
|
|
|
Nocobase 中的插件为 `Class` 的形式。如需自定义插件,需要继承 `Plugin` 类。
|
|
|
|
```typescript
|
|
import { Plugin } from '@nocobase/server';
|
|
|
|
class MyPlugin extends Plugin {
|
|
// ...
|
|
}
|
|
|
|
app.plugin(MyPlugin, { name: 'my-plugin' });
|
|
```
|
|
|
|
## 插件生命周期
|
|
|
|
每个插件都包含生命周期方法,你可以重写这些方法,以便于在运行过程中特定的阶段执行这些方法。
|
|
生命周期方法将由 `Application` 在特定阶段调用,可参考 [`Application`生命周期](./application.md)。
|
|
|
|
### `beforeLoad()`
|
|
|
|
插件加载前,如事件或类注册,在此可访问核心接口,其他插件此阶段不可用。
|
|
|
|
### `load()`
|
|
|
|
加载插件,配置之类。在 `load` 中可调用其他插件实例,而在 `beforeLoad` 中是不行的。
|
|
|
|
### `install()`
|
|
|
|
插件安装逻辑,如初始化数据
|
|
|
|
### `afterAdd()`
|
|
|
|
插件 add/addStatic 之后
|
|
|
|
### `afterEnable()`
|
|
|
|
插件激活之后的逻辑
|
|
|
|
### `afterDisable()`
|
|
|
|
插件禁用之后的逻辑
|
|
|
|
### `remove()`
|
|
|
|
用于实现插件删除逻辑
|