Blazorのライフサイクルとは?|OnInitializedAsyncで初期化処理を理解|ASP.NET×Blazor入門 3.4
3.4 ライフサイクル(OnInitializedAsync など)
Blazorコンポーネントには、ReactやVueと同様に「ライフサイクルメソッド」が存在します。これにより、コンポーネントの初期化時、パラメータの変更時、描画完了後など、特定のタイミングで処理を挟むことができます。
主なライフサイクルメソッド
OnInitialized:コンポーネントの初期化時に呼ばれる同期メソッド。OnInitializedAsync:非同期初期化に使用。データ取得処理などで使用される。OnParametersSet:親からのパラメータが設定されたタイミングで呼ばれる。OnParametersSetAsync:上記の非同期版。OnAfterRender:コンポーネントのレンダリング直後に呼ばれる。OnAfterRenderAsync:非同期のレンダリング後処理に対応。
サンプルコード
@code {
private string message;
protected override async Task OnInitializedAsync()
{
message = "データ読み込み中...";
await Task.Delay(1000); // 疑似的な非同期処理
message = "データ読み込み完了";
}
}
この例では、コンポーネントが初期化されると同時に、非同期でメッセージを更新します。こうした非同期初期化は、API呼び出しや初期データ取得に有用です。
注意点
OnAfterRenderAsyncは、描画後にDOM操作が必要なときに使う。ただし何度も呼ばれるため、firstRenderで条件分岐するのが一般的です。- 状態変更を伴う処理では、
StateHasChanged()を明示的に呼ぶことで再描画がトリガーされます。
描画後の処理例
@code {
private bool isInitialized;
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
await Task.Delay(500);
isInitialized = true;
StateHasChanged();
}
}
}
このように、ライフサイクルメソッドを理解することで、Blazorコンポーネントの振る舞いをより柔軟に制御できます。
次のセクションへ: 第4章:データバインディングとイベント処理
2025-04-15
下田 昌平
開発に関するインプットをアウトプットしています。検索ログ
Blazor テスト 572
Blazor API連携 543
Blazor リスト表示 531
Blazor JSON表示 519
HTMLとC 504
Blazor 自動化 488
Razor入門 472
Blazor エラー処理 468
Blazor サーバー通信 465
Blazor 運用 459
Blazor 非同期通信 459
Python入門 459
Blazor 初期処理 457
フォーム入力 457
Blazor データ取得 455
AIとPython 453
フォルダ構成 442
Blazor 非同期処理 441
入門 440
使い分け 437
HttpClient 例外処理 426
.NET HttpClient 使い方 424
API呼び出し Blazor 423
Blazor コンポーネント初期化 423
依存性注入 422
HttpClient 使い方 417
Blazor入門 412
UI操作 404
Pythonとは 403
bUnit使い方 400
開発・技術相談
システム開発や技術検証、要件定義の作成、アーキテクチャ設計、 テスト設計、運用設計まで、一気通貫で支援しています。 企画段階の「まず相談したい」レベルから、実装・運用まで 幅広く対応できますので、お気軽にお問い合わせください。
お問い合わせ