生命周期
通过on挂载监听,通过off卸载监听。
init
监听实例被初始化。
ts
client('on', 'init', () => {
...
})
start
监听实例开启上报。
ts
client('on', 'start', () => {
...
})
beforeConfig
监听实例配置变更之前,可拿到新的配置。
ts
client('on', 'beforeConfig', (config: Partial<Config>) => {
...
})
config
监听实例配置变更后的瞬间。
ts
client('on', 'config', () => {
...
})
provide
监听实例被挂载属性的瞬间,可拿到属性名。
ts
client('on', 'provide', (name: string) => {
...
})
report
监听事件被监控插件发送的瞬间, 可用于为事件补充上下文, 返回Falsy类型则不上报。
ts
client('on', 'report', (ev: ReportEvent): ReportEvent | Falsy => {
...
})
export type Falsy = false | null | undefined
beforeBuild
监听事件被包装上下文之前的瞬间, 能够拿到即将被包装的数据, 返回Falsy类型则不上报。
ts
client('on', 'beforeBuild', (ev: ReportEvent): ReportEvent | Falsy => {
...
})
export type Falsy = false | null | undefined
build
监听事件被包装上下文之后的瞬间,能够拿到即将上报的数据, 返回Falsy类型则不上报。
ts
client('on', 'build', (ev: SendEvent): SendEvent | Falsy => {
...
})
export type Falsy = false | null | undefined
beforeSend
监听事件被发送之前的瞬间, 返回Falsy类型则不上报。
ts
client('on', 'beforeSend', (ev: SendEvent): SendEvent | Falsy => {
...
})
export type Falsy = false | null | undefined
send
注册事件发送之后的回调。
ts
client('on', 'send', (e: Callback<SendEvent>) => {
...
})
interface Callback<T> {
(arg: T): void
}
beforeDestroy
注册实例销毁之前的回调。
ts
client('on', 'beforeDestroy', () => {
...
})
SendEvent && ReportEvent 类型声明
ts
// 具体各类型上报格式见上报格式。
export type SendEvent =
| CustomReport
| HttpReport
| JsErrorReport
| PageviewReport
| PerformanceReport
| PerformanceLongTaskReport
| PerformanceTimingReport
| ResourceErrorReport
| ResourceReport
| SriReport
| BlankReport
export type WebReport = Omit<SendEvent,'common'>
export type ReportEvent<T extends WebReport> = T & {
// 具体common格式见上报格式
extra?: Partial<Common>
// 允许额外上报一些 context 覆盖组装上下文,主要在预收集与预加载场景
overrides?: Partial<Common>
}