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 自動化 354
Blazor API連携 351
Blazor JSON表示 342
HTMLとC 337
Blazor エラー処理 321
Razor入門 321
Python入門 320
Blazor データ取得 318
Blazor 初期処理 317
Blazor テスト 313
Blazor 運用 310
Blazor リスト表示 308
入門 307
.NET HttpClient 使い方 303
Blazor 非同期通信 303
API呼び出し Blazor 302
Blazor サーバー通信 301
Blazor コンポーネント初期化 299
Blazor 非同期処理 299
使い分け 298
フォーム入力 296
HttpClient 使い方 294
依存性注入 291
HttpClient 例外処理 290
bUnit使い方 290
Blazor入門 284
UI操作 274
フォルダ構成 274
AIとPython 262
Pythonとは 257
開発・技術相談
システム開発や技術検証、要件定義の作成、アーキテクチャ設計、 テスト設計、運用設計まで、一気通貫で支援しています。 企画段階の「まず相談したい」レベルから、実装・運用まで 幅広く対応できますので、お気軽にお問い合わせください。
お問い合わせ