--- 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
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up