Hello World - どのように動作しますか?
重要
このプロジェクトは実験的なリリースです。 試験的なモバイル Blazor バインドを試して、 で https://github.com/xamarin/MobileBlazorBindingsフィードバックをお寄せください。
注意
このページは、 最初のアプリのビルド に関するチュートリアルの続きです。 続行する前に、このチュートリアルを完了することをお勧めします。
前のチュートリアルで作成した最初のプロジェクトを見て、Experimental Mobile Blazor Bindings の使用方法の詳細を理解しましょう。
確認するメイン プロジェクトは、ファイルを含む.razor
共有プロジェクトです。 Android および iOS プロジェクトには、Experimental Mobile Blazor Bindings に固有のコードは含まれません。
共有プロジェクト内のファイルは次のとおりです。
_Imports.razor
- このフォルダーとそのサブフォルダー内の他.razor
のすべてのファイルに適用される一般的なディレクティブが含まれています。 サブフォルダーには、追加のディレクティブを含む独自_Imports.razor
のファイルを含めることができます。 このファイルで最も一般的なディレクティブ型は@using
、 ディレクティブです。これは、C#using
ステートメントとまったく同じ、名前空間をファイルに.razor
インポートするために使用されます。App.cs
- 基底クラスから派生したクラスによって表される、アプリケーションのメイン UI エントリ ポイントがXamarin.Forms.Application
含まれます。 このクラスのコンストラクターは 、汎用ホストをインスタンス化し、ホストにサービスを追加し (既定のプロジェクトにはなし)、ホストを使用して という名前HelloWorld
の Blazor コンポーネントをアプリケーション要素 (this
) に追加します。Counter.razor
- という名前Counter
の Blazor コンポーネントが含まれています。HelloWorld.razor
- という名前HelloWorld
の Blazor コンポーネントが含まれています。
2 つの Blazor コンポーネントの動作を確認しましょう。
Counter Blazor コンポーネント
このコンポーネントには、次の 2 つのセクションがあります。
UI 要素とそれに関連付けられているプロパティとイベント ハンドラーを定義するマークアップ。
<Frame CornerRadius="10" BackgroundColor="Color.LightBlue"> <StackLayout Orientation="StackOrientation.Horizontal" HorizontalOptions="LayoutOptions.Center"> <Button Text="Increment" OnClick="IncrementCount" /> <Label Text="@("The button was clicked " + count + " times")" FontAttributes="FontAttributes.Bold" VerticalTextAlignment="TextAlignment.Center" /> </StackLayout> </Frame>
HTML に似たタグは、Xamarin.Forms コンポーネントとそのプロパティとイベントに一致する UI コンポーネントを表します。 一部のプロパティには、コンポーネントの
Text
プロパティなどのLabel
計算値があり、その値は C# コードによって計算された値に設定され、式ブロックによって@( ... )
示されます。コンポーネント
OnClick
のイベントなどのButton
イベント ハンドラーが実行されると、コンポーネントが自動的に再レンダリングされます。これにより、追加のロジックなしで UI を更新できます。 より高度なシナリオでは、再レンダリングするコンポーネントとタイミングを制御できます。ブロックにラップされたイベント ハンドラーまたはその他のコンポーネント機能を実装する
@code { ... }
コード。int count; void IncrementCount() { count++; }
このコードは、コンポーネント
Text
の プロパティのcount
計算値としても使用されるフィールドをLabel
インクリメントします。 イベント ハンドラーがIncrementCount()
実行されると、UI が再レンダリングされるときに のcount
新しい値が使用されます。
HelloWorld Blazor コンポーネント
HelloWorld コンポーネントには、マークアップのみが含まれています。
<ContentView>
<StackLayout Margin="new Thickness(20)">
<Label Text="Hello, World!"
FontSize="40" />
<Counter />
</StackLayout>
</ContentView>
コンポーネントは Counter
、タグ として参照することで、このコンポーネントで参照されることに注意してください <Counter />
。
すべての Blazor コンポーネントは、ファイルと同じ名前のクラスにコンパイルされます。 名前空間は、プロジェクトのルート名前空間に加え、フォルダー名 (存在する場合) はドット (.
) で区切られます。 型は、その型名 (一般的ではない) を介して他の C# コードによって参照することも、 .razor
タグとして使用してファイル内で参照することもできます。