Lightning Blog
Blazor記事イメージ画像

【Blazor】 ページをリロードする

更新日:2024/08/29
この記事では、Blazorでページをリロードする方法について解説します。

    目次

  • JavaScriptでのリロード
  • NavigationManagerでのリロード
  • まとめ

JavaScriptでのリロード

セクション画像

Blazorでは、javascriptを利用できるので、location.reloadを呼び出してリロードすることができます。 以下サンプルコードになります。


@page "/"

@inject IJSRuntime JSRuntime

<button class="btn btn-primary" @onclick="ReloadPageByJavascript">Reload(Javascript)</button>

@code {
    /// <summary>
    /// Javasciptによるリロード
    /// </summary>
    /// <returns></returns>
    private async Task ReloadPageByJavascript()
    {
        await JSRuntime.InvokeVoidAsync("location.reload");
    }
}

IJSRuntimeを通じて、location.reloadを呼び出しています。 location.reloadを呼び出すだけの場合、jsファイルを作成する必要はありません。

IJSRuntimeについては、以下記事で解説しています。参考にしてみてください。

カード画像
JavaScriptを呼び出し方

BlazorでWEB開発は主にHTML, CSS, C#を使用しますが、JavaScriptの利用も避けられない場面がある。JavaScriptをBlazor内で呼び出すためには、IJSRuntimeサービスを利用する。IJSRuntimeを用いることで、C#からJavaScriptの関数を非同期的に実行可能。例として、ボタンクリックでJavaScriptのアラートを表示する方法を説明。BlazorでのJavaScript使用は最小限に留めるべきだが、必要な場面での知識は重要。

更新日:2023/07/19

実際に実行してみると、リロードする様子が確認できます。

動作確認

NavigationManagerでのリロード

セクション画像

NavigationManagerを利用して、リロードすることもできます。 NavigationManagerについては、以下の記事で解説しています。

カード画像
NavigationManagerの使い方

BlazorのNavigationManagerは、クライアントサイドのルーティングを制御するクラスで、URLの変更やページの表示を管理します。サービスを挿入することでNavigationManagerを使用でき、様々な機能が提供されます。例えば、URLの取得、ベースURIの取得、ページ遷移の制御、URL変更時のイベント通知などがあります。実際の適用例として、ボタンクリックによるページ遷移を示しています。

更新日:2023/07/25

以下サンプルコードになります。


@page "/"

@inject NavigationManager NavigationManager

<button class="btn btn-primary" @onclick="ReloadPageByNavigationManager">Reload(NavigationManager)</button>

@code {
    /// <summary>
    /// NavigationManagerによるリロード
    /// </summary>
    private void ReloadPageByNavigationManager()
    {
        NavigationManager.NavigateTo(NavigationManager.Uri, forceLoad: true);
    }
}

NavigationManagerNavigateToメソッドでページ遷移することができますが、 第1引数の遷移先URIを、現在のページURIに指定することで、リロードを可能にしています。

forceLoadは、trueでページ全体をリロード、falseで部分的な読み込みを行います。 今回はページ全体をリロードしています。

forceLoad

実際に実行してみると、リロードする様子が確認できます。

動作確認

まとめ

セクション画像
今回はページリロードする方法について解説しました。 ページを初期化したい場合などに使えると思いますので、参考にしてみてください。
ブログ内の記事で書かれているサンプルコードは、GitHubから確認する事ができます。 是非参考にしてみてください。

この本では、Blazorの基本から高度なテクニックまで、実際のプロジェクトに役立つ知識を網羅しています。 初心者から経験者まで、Blazorを扱うすべての開発者にとっての必読書です。 この記事の執筆者も参考にした「Blazor入門」で、あなたのBlazorスキルを飛躍的に向上させませんか?

合わせて読みたい

カード画像
カレンダー(DatePicker)から値を取得する

Blazorで<input type="date">を使いカレンダー(DatePicker)から日付を取得する方法を解説。サンプルコード、日付範囲設定を紹介。

更新日:2024/06/25

カード画像
iframeでPDFを表示する

Blazorで<iframe>を使ってPDFを表示する方法を紹介します。サンプルコードでは、PDFファイルをパスやbase64形式で表示する方法を説明し、簡単な帳票アプリに利用できることを示します。

更新日:2024/07/24

An error has occurred. This application may no longer respond until reloaded. Reload 🗙