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 テスト 1097
Blazor API連携 1090
Blazor リスト表示 1070
Razor入門 1009
Blazor 自動化 993
フォルダ構成 990
AIとPython 979
HTMLとC 978
Blazor JSON表示 972
使い分け 945
Blazor 運用 944
Blazor データ取得 941
Blazor エラー処理 940
Blazor 初期処理 939
Python入門 935
フォーム入力 928
依存性注入 925
Blazor サーバー通信 922
UI操作 920
Blazor 非同期通信 919
Blazor 非同期処理 913
HttpClient 例外処理 913
.NET HttpClient 使い方 912
入門 907
Blazor入門 905
API呼び出し Blazor 899
Blazor コンポーネント初期化 878
Pythonとは 877
HttpClient 使い方 875
bUnit使い方 849
開発・技術相談
システム開発や技術検証、要件定義の作成、アーキテクチャ設計、 テスト設計、運用設計まで、一気通貫で支援しています。 企画段階の「まず相談したい」レベルから、実装・運用まで 幅広く対応できますので、お気軽にお問い合わせください。
お問い合わせ