--- lang: ja-jp breaks: true --- # Blazor パフォーマンスに関するベスト プラクティス 2024-01-27 > ASP.NET Core Blazor パフォーマンスに関するベスト プラクティス > https://learn.microsoft.com/ja-jp/aspnet/core/blazor/performance?view=aspnetcore-8.0 ## 特定のサブツリーへの再帰的なレンダリングを防ぐ * 子コンポーネントのパラメーターが確実に、string、int、bool、DateTime などのプリミティブ不変型となるようにします。 変更を検出するための組み込みロジックでは、プリミティブ不変パラメーター値が変更されていなかった場合、再レンダリングが自動的にスキップされます。 * ComponentBase.ShouldRender メソッド をオーバライドする。 * 複合カスタム モデル型、イベント コールバック、RenderFragment 値などの非プリミティブ パラメーター値を受け入れるため。 * パラメーター値の変更に関係なく、初期レンダリング後に変更されない UI 専用のコンポーネントを作成する場合。 * ## イベントをすぐにトリガーしない * すぐに発生するネイティブ イベントを使用するのではなく JS 相互運用機能を使って、発生頻度の低いコールバックを登録することを検討する。 * ## JavaScript 相互運用の速度を最適化する * .NET と JavaScript の間の呼び出しには、追加のオーバーヘッドが必要 * 既定では、呼び出しは非同期で行われる。 * 既定では、パラメーターと戻り値は JSON でシリアル化され、.NET および JavaScript 型の間で変換が行われる。 * * さらにサーバー側の Blazor アプリの場合、これらの呼び出しはネットワーク経由でおこなわれる。 * ## 同期呼び出しの使用を検討する * サーバーでは、すべての JS 相互運用呼び出しはネットワーク接続を介して送信されるため、非同期である必要がある。 * コンポーネントが WebAssembly でのみ実行されることが確実にわかっている場合は、同期 JS 相互運用呼び出しを行うように検討する。 * 同期呼び出しを使用することで、結果を待機する間の中間状態が存在しなくなる。 * ###### tags: `Blazor` `パフォーマンス`
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.