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 API連携 1159
Blazor テスト 1152
Blazor リスト表示 1140
Razor入門 1101
フォルダ構成 1056
Blazor 自動化 1052
AIとPython 1049
HTMLとC 1043
Blazor JSON表示 1041
Blazor データ取得 1008
Blazor 運用 1002
使い分け 1002
フォーム入力 996
Blazor エラー処理 995
入門 995
UI操作 991
Blazor 非同期通信 989
Blazor サーバー通信 988
Blazor 初期処理 986
Python入門 983
依存性注入 979
Blazor 非同期処理 978
.NET HttpClient 使い方 967
HttpClient 例外処理 965
API呼び出し Blazor 957
Blazor入門 957
Blazor コンポーネント初期化 944
HttpClient 使い方 942
Pythonとは 927
bUnit使い方 907
開発・技術相談
システム開発や技術検証、要件定義の作成、アーキテクチャ設計、 テスト設計、運用設計まで、一気通貫で支援しています。 企画段階の「まず相談したい」レベルから、実装・運用まで 幅広く対応できますので、お気軽にお問い合わせください。
お問い合わせ