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連携 1152
Blazor テスト 1142
Blazor リスト表示 1129
Razor入門 1083
フォルダ構成 1050
Blazor 自動化 1045
AIとPython 1038
HTMLとC 1036
Blazor JSON表示 1034
Blazor データ取得 1002
Blazor 運用 994
使い分け 993
フォーム入力 992
Blazor エラー処理 987
UI操作 984
Blazor 非同期通信 983
Blazor サーバー通信 982
Blazor 初期処理 979
Python入門 977
入門 976
依存性注入 975
Blazor 非同期処理 969
HttpClient 例外処理 959
.NET HttpClient 使い方 958
Blazor入門 951
API呼び出し Blazor 945
HttpClient 使い方 936
Blazor コンポーネント初期化 935
Pythonとは 918
bUnit使い方 902
開発・技術相談
システム開発や技術検証、要件定義の作成、アーキテクチャ設計、 テスト設計、運用設計まで、一気通貫で支援しています。 企画段階の「まず相談したい」レベルから、実装・運用まで 幅広く対応できますので、お気軽にお問い合わせください。
お問い合わせ