Blazor WebAssemblyを使用したフロントエンド開発の基本


  1. Blazor WebAssemblyのセットアップ: Blazor WebAssemblyを使用するためには、.NET Core SDKとBlazorテンプレートが必要です。まず、最新の.NET Core SDKをインストールし、次にコマンドラインからBlazorのテンプレートをインストールします。

    dotnet new -i Microsoft.AspNetCore.Components.WebAssembly.Templates::3.2.0-preview1.20073.1
  2. コンポーネントの作成: Blazor WebAssemblyでは、コンポーネントと呼ばれる再利用可能なUI要素を作成します。コンポーネントはC#で記述され、HTMLと組み合わせてUIを構築します。以下は、シンプルなコンポーネントの例です。

    using Microsoft.AspNetCore.Components;
    public class CounterComponent : ComponentBase
    {
       private int count = 0;
       private void IncrementCount()
       {
           count++;
       }
       protected override void BuildRenderTree(RenderTreeBuilder builder)
       {
           builder.OpenElement(0, "button");
           builder.AddAttribute(1, "onclick", EventCallback.Factory.Create(this, IncrementCount));
           builder.AddContent(2, $"Click count: {count}");
           builder.CloseElement();
       }
    }
  3. ルーティングとナビゲーション: Blazor WebAssemblyでは、ページ遷移やルーティングもサポートされています。以下の例では、ルートコンポーネントとしてAppコンポーネントを作成し、ルーティングを設定しています。

    using Microsoft.AspNetCore.Components;
    using Microsoft.AspNetCore.Components.Routing;
    public class App : ComponentBase
    {
       [Inject]
       protected NavigationManager NavigationManager { get; set; }
       protected override void OnInitialized()
       {
           NavigationManager.LocationChanged += OnLocationChanged;
       }
       private void OnLocationChanged(object sender, LocationChangedEventArgs e)
       {
           // ページ遷移時の処理
       }
    }
  4. API呼び出し: Blazor WebAssemblyでは、Web APIなどのバックエンドサービスとの通信も簡単に行えます。以下は、HTTPクライアントを使用してAPIを呼び出す例です。

    using System.Net.Http;
    using System.Net.Http.Json;
    public class WeatherForecastService
    {
       private readonly HttpClient httpClient;
       public WeatherForecastService(HttpClient httpClient)
       {
           this.httpClient = httpClient;
       }
       public async Task<WeatherForecast[]> GetWeatherForecasts()
       {
           return await httpClient.GetFromJsonAsync<WeatherForecast[]>("api/weatherforecast");
       }
    }

以上が、Blazor WebAssemblyの基本的な使用方法とコード例の一部です。これらの手法を応用することで、効果的なフロントエンド開発が可能です。Blazor WebAssemblyは、クライアントサイドでの高速なアプリケーション開発に役立つ強力なツールです。