【Blazor】 コンポーネントについて
- コンポーネントとは?
- コンポーネントの命名規則
- コンポーネントの構造とイベントハンドリング
- 変数とデータバインディング
- まとめ
目次
コンポーネントとは?

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とその基本的なコンポーネントについて簡単に説明しました。 データバインディングやコンポーネントなど聞きなれない言葉が出てきたと思いますが、 今後も詳しく記事にしていこうと思いますので、少しずつ覚えていきましょう。
この本では、Blazorの基本から高度なテクニックまで、実際のプロジェクトに役立つ知識を網羅しています。 初心者から経験者まで、Blazorを扱うすべての開発者にとっての必読書です。 この記事の執筆者も参考にした「Blazor入門」で、あなたのBlazorスキルを飛躍的に向上させませんか?
合わせて読みたい

@keyを使い方
Blazorの@keyディレクティブは、コレクション内の項目を一意に識別し、BlazorがDOMの変更を効率的に行うのを支援します。特にリストや配列の更新時、このディレクティブが不必要なDOM操作を減少させ、アプリのパフォーマンス向上に寄与します。正確な動作のために、指定する要素が一意であることや適切な場所に設定することが重要です。
更新日:2023/09/07

DOMイベント一覧
この記事では、Blazorで使用可能なDOMイベントに関する包括的なガイドを提供しています。DOM(Document Object Model)はウェブページの内容や構造を表現するための仕組みであり、Blazorを用いることで、さまざまなDOMイベントを効果的に扱うことが可能です。記事は、onabortからonwheelまで、様々なイベントの名前と発生条件を詳細な表形式で紹介しています。これにより、Blazor開発者は適切なイベントを状況に応じて選択し、ウェブページのインタラクティビティを高めることができます。
更新日:2023/09/03