本文へスキップ
BecomeCoder

Blazorコース · 第2章 画面とデータを連動させる · レッスン6

イベント処理 ― @onclick とカウンター

ブラウザで完結

導入

ボタンクリックなどのユーザー操作に反応するのがイベント処理です。Blazorの定番「カウンター」を題材に、@onclickでC#のメソッドを呼び、状態を変えると画面が自動で描き直される流れを体験します。eventの知識がそのままUIに活きます。

説明

@onclick="メソッド名"で、クリックにC#メソッドを結びつけます。

<h3>カウンター</h3>
<p>現在のカウント: <strong>@count</strong></p>
<button @onclick="Increment">+1</button>
<button @onclick="Decrement">-1</button>
<button @onclick="Reset">リセット</button>

@code {
    private int count = 0;

    private void Increment() { count++; }
    private void Decrement() { count--; }
    private void Reset()     { count = 0; }
}
flowchart LR
    BTN["ボタン @onclick"] --> M["C♯メソッド Increment()"]
    M --> STATE["count を更新"]
    STATE --> RE["画面を自動で再描画"]
  • @onclick="メソッド"でクリックにメソッドを結ぶ(@onchangeなど他イベントも同様)
  • メソッドの中で状態(count)を変えると、Blazorが自動で再描画する
  • 短い処理なら@onclick="() => count++"のようにラムダを直接書いてもよい

やってみよう

「+1」「-1」「リセット」を押して、カウントが変わることを確かめましょう。@onclick="() => count += 10"のような「+10」ボタンを足してみると、ラムダの書き方も試せます。

演習

「+10」ボタンを足してください。ラムダでもメソッドでも構いません。

ヒント1を見る

ラムダなら<button @onclick="() => count += 10">+10</button>

ヒント2を見る

メソッドならprivate void Add10() { count += 10; }を作って@onclick="Add10"で呼びます。

次回: 入力とボタンとループを組み合わせて、一覧を編集します。

実際に動かしてみよう

下のエディタに .razor を書くと、右側のプレビューにその場で Blazor 風のUIが描画されます。`@名前` の埋め込み、`@bind` の双方向バインディング、`@onclick` のカウンターやトグル、`@if`/`@foreach` の分岐・繰り返しはそのまま動きます。本文の .razor を打ち込んだり、`@code` のフィールドやハンドラを書き換えたりして、状態と画面の連動を確かめながら進めましょう(本物のBlazorではなく描画と簡単な対話を再現した学習用プレビューです。DI・HttpClient・JS相互運用や @code の本格的なC#ロジックは実行されないので、それらは dotnet で実際のプロジェクトを作って試します)。

Blazor (.razor) プレビュー

書いた .razor をその場で Blazor 風の画面に描画する学習用プレビューを読み込みます(本物のBlazorではなく、Razor構文の描画・@bindの双方向バインディング・@onclick/@if/@foreach の簡単な対話を再現したものです。@code の本格的なC#ロジックやDI・HTTP・JS相互運用は実行されません)。
スクロールして表示された時点でも自動で読み込まれます。