> For the complete documentation index, see [llms.txt](https://playermaker.gitbook.io/componentbuilder/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://playermaker.gitbook.io/componentbuilder/english/interceptor.md).

# Interceptor

`BlazorComponentBase` designed interceptors to change lifecycle of component that can recognize definitions of component

<figure><img src="https://1758942031-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJG6rV7O7FsybIaC4BDPI%2Fuploads%2Ffqstf3b4KElAn0pGiK10%2FBlazorComponentBaseLifecycle.png?alt=media&amp;token=6debb62f-093e-4eb0-b3b1-6147d54149a4" alt=""><figcaption></figcaption></figure>

### Custom Interceptors

Implement `ICompnentInterceptor` or derived `ComponentInterceptorBase` (Recommand)

```csharp
public class LogInterceptor : ComponentInterceptorBase
{
    public override void InterceptOnInitialized(IBlazorComponent component)
    {
        // invoke in OnInitialized() method
        
        if(component is not BlazorComponentBase componentBase)
        {
            return;
        }
        
        //Write your code
    }
}
```

Configure to add this interceptors

```csharp
builder.Service.AddComponentBuilder(configure => {
    configure.Interceptors.Add(new LogInterceptor());
})
```

### Internal Interceptors

* AssociaitionComponentInterceptor
* ChildContentInterceptor
* CssClassAttributeInterceptor
* FormComponentInterceptor
* NavLinkComponentInterceptor
* StyleAttributeInterceptor
