Open3
Blazor殴り書き

UIコンポーネントの継承
コンポーネントをラップするとParameter属性を必要分定義しなければいけないが、継承を行うことで、UIやロジックのみのカスタマイズで事足りる。
コードサンプル
// razor
@inherits MudTextField
@RenderFunc()
// razor.cs
public partial class CustomComponent : MudTextField
{
RenderFragment RenderFunc() => builder => base.BuildRenderTree(builder);
}

Blazor Web Assemblyライフサイクル
SetParametersAsync
パラメータが設定されたときに発火。
ParameterViewクラスを引数に持ち、
継承することでパラメータに応じて処理を決定することができる。
OnInitialized(Async)
コンポーネントの初期化時に発火。
継承することで初期化処理の実装ができる。
OnParametersSet(Async)
コンポーネントがOnInitialized(Async)で初期化された後呼び出される。
パラメータ値が変更されていない場合でも呼び出し可能なので、
パラメータの状態に応じて処理を決定することができる。
OnAfterRender(Async)
コンポーネントがレンダリングされ、UIが更新された後発火。
bool型のfirstRenderを引数に持ち、
JavaScriptを呼び出したい場合や、初回レンダリング時の実装ができる。

パフォーマンス改善
CascadingParameterのIsFixed
デフォルトではfalse。この場合すべての受信者が更新通知に登録される。