Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9312

[Microsoft] 1. ヒーローエディタ - Angularチュートリアル Tour of Heroes を Blazor で再実装する

$
0
0

ヒーローエディタ

雛形が出来上がりましたので、ヒーロー情報を表示するコンポーネントを作成し、アプリケーション内に配置してみます。


Heroesコンポーネントを作成する

dotnet cliを使ってrazorコンポーネントを作成します。

dotnet new razorcomponent --output BlazorTourOfHeroes/Shared --name Heroes

既存の BlazorTourOfHeroes/Sharedディレクトリの中に Heroes.razorファイルが出来上がります。

Shared/Heroes.razor
<h3>Heroes</h3>

@code {

}

@Qiitaさんrazorシンタックスハイライト待ってます)

hero変数を追加する

コンポーネントにhero変数を追加します。

privatestringhero="Windstorm";

heroを表示する

既存のHTMLタグを消去して、hero変数に置き換えます。

@hero

Heroesコンポーネントを表示する

Heroesコンポーネントをトップページに表示するため、index.razorを変更します。

Pages/Index.razor
<Heroes></Heroes>

こんなんできました

image.png

Heroクラスを作成する

名前以外の属性を格納するためHeroクラスを作成します。

Model/Hero.cs
namespaceBlazorTourOfHeroes.Model{publicclassHero{publicintId{get;set;}publicstringName{get;set;}}}

Heroesコンポーネントに戻り、作成したHeroクラスを使うようにリファクタリングします。

Shared/Heroes.razor
@using BlazorTourOfHeroes.Model

@hero

@code {
    private Hero hero = new Hero
    {
        Id = 1,
        Name = "Windstorm",
    };
}

heroオブジェクトを表示する

テンプレートを変更してheroオブジェクトを表示するようにします。

Shared/Heroes.razor
<h2>@hero.Name</h2>
<div><span>id: </span>@hero.Id</div>
<div><span>name: </span>@hero.Name</div>

hero名を大文字にする

大文字にするのは、String.ToUpper()を呼ぶだけです。

Shared/Heroes.razor
<h2>@hero.Name.ToUpper()</h2>

こんなんできました。

image.png

heroを編集できるようにする

<input>テキストボックスを用意してheroを編集できるようにします。

バインディング

Heroesコンポーネントをリファクタリングして次のようにします。

Shared/Heroes.razor
<div><label>name: <input @bind="hero.Name" placeholder="name" /></label></div>

こんなんできました

image.png


Viewing all articles
Browse latest Browse all 9312

Latest Images

Trending Articles



Latest Images