Lightning Blog
Blazor記事イメージ画像

【Blazor】 コンポーネントについて

更新日:2023/09/06
Blazorは.NET Coreベースの新しいフレームワークで、SPA(Single Page Application)をC#とHTMLで簡単に作成できます。 この記事では、BlazorとRazorコンポーネントの基本について解説します。

    目次

  • コンポーネントとは?
  • コンポーネントの命名規則
  • コンポーネントの構造とイベントハンドリング
  • 変数とデータバインディング
  • まとめ

コンポーネントとは?

セクション画像

Blazorは[コンポーネント駆動フレームワーク]です。 つまり、Blazorアプリケーションはコンポーネントという基本的な構成ブロックから成り立っています。 コンポーネントは再利用可能な部品のようなものであり、多くのプロジェクト間で共有することも可能です。 この部品を集めて、Webページを構築していきます。 コンポーネントを集めて、ライブラリにすることもできます。 コンポーネントの拡張子は.razorが使用されます。


コンポーネントの命名規則

セクション画像

コンポーネントファイル名は大文字で始まらなければならないというルールがあります。 小文字で始めるとコンパイルエラーになります。 試しにexample.razorを作成してコンパイルすると以下のようになります。


以下のようなエラーが発生します。
RZ10011	Component 'example' starts with a lowercase character. Component names cannot start with a lowercase character.

C#でファイル名を小文字スタートで表記することはあまり無いとは思いますが、 普段Javascriptなどを書いている人は気を付けた方がいいかもしれません。


コンポーネントの構造とイベントハンドリング

セクション画像

コンポーネントのコードを見てみましょう。 コンポーネントは画面側とロジック側のコードに分かれています。 画面側のコードはHTML、ロジック側のコードはC#でコードを書いていきます。


@page "/counter"

<!-- HTML部分 -->
<h1>Counter</h1>
<p>Current count: @currentCount</p>
<button @onclick="IncrementCount">Click me</button>

@code {
    // C#部分
    private int currentCount = 0;

    private void IncrementCount()
    {
        currentCount++;
    }
}

@onclickという属性を使用して、ボタンがクリックされたときに呼び出されるメソッドを指定することができます。 今回のコードの場合、クリックするとIncrementCountメソッドが呼び出されます。


変数とデータバインディング

セクション画像

Blazorでは、コード側にある変数の値を画面側のコードへ反映させることができます。 これをワンウェイバインディングと呼びます。 ワンウェイバインディングを行うには、画面側のコードに@記号を使用して、変数名を指定します。 コード例では、font-familyを指定しています。


@page "/counter"

<!-- HTML部分 -->
<h1 style="font-family:@fontFamily">Counter</h1>

@code {
    // C#部分
    private string fontFamily = "Verdana";
}

C#部分のfontFamilyの値を変更すると、UI側のスタイルも合わせて変更することができます。


まとめ

セクション画像

この記事では、Blazorとその基本的なコンポーネントについて簡単に説明しました。 データバインディングやコンポーネントなど聞きなれない言葉が出てきたと思いますが、 今後も詳しく記事にしていこうと思いますので、少しずつ覚えていきましょう。


ブログ内の記事で書かれているサンプルコードは、GitHubから確認する事ができます。 是非参考にしてみてください。

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

合わせて読みたい

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

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

更新日:2023/07/19

カード画像
NavigationManagerの使い方

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

更新日:2023/07/25

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