Blazor oktatóanyag
Razor osztálykönyvtár-komponensek paraméterekkel, ChildContent
renderelési töredékek, attribútumszórás és komponensenként egy bUnit-teszt.
Mit fogsz építeni
Egy kis kapcsolatfelvételi űrlap — címkézett mező, küldés gomb,
@bind-Value kötés, valódi billentyűzet- és képernyőolvasó-viselkedés — először csupaszon, aztán stílusosan, nagyjából 10 perc alatt.
Mielőtt elkezdenéd
Szükséged van gitre és a .NET SDK 8-ra vagy újabbra. Bármelyik Blazor projekt megfelel — Blazor Web App, Server vagy WebAssembly.
1. lépés — Szerezd meg a kódot
git clone https://github.com/LilyDesignSystem/lily-design-system
cd lily-design-system/lily-design-system-blazor-headless
dotnet build
dotnet test # bUnit — 1,400+ cases across the catalog
A komponensek itt vannak: src/LilyBlazorHeadless/Components/ —
Button.razor, TextInput.razor — mindegyik egy Razor-fájl. Hivatkozz a projektre (vagy másold a fájlokat) a Blazor-alkalmazásodból, és add hozzá a @using LilyBlazorHeadless.Components fájlhoz:
_Imports.razor.
2. lépés — Az első komponensed
<Button OnClick="Save">Save</Button>
Ezt rendereli: <button class="button">. A közös paraméterkonvenciók: Label (egy aria-label felülíráshoz),
CssClass (hozzáfűződik az alapkampóhoz),
ChildContentés
[Parameter(CaptureUnmatchedValues = true)] attribútumszórás, hogy bármely további HTML-attribútum átjusson.
3. lépés — Állíts össze egy kis űrlapot
<Form OnSubmit="HandleSubmit">
<Field Label="Full name" Required="true">
<TextInput Id="name" Label="Full name" @bind-Value="name" Required="true" />
</Field>
<Button Type="submit">Save</Button>
</Form>
@code {
private string name = "";
}
Field a látható Label értéket a saját paramétereként veszi át beágyazott címkekomponens helyett — add át egyszer, a
Fieldés TextInputa
Label biztosítja a hozzáférhető nevet.
Ellenőrizve 2026-08-29: egy korábbi vázlat külön Label komponenst ágyazott be a Fieldelembe, ami két címkét renderelt (az egyik üres), mert a Field
már magától rendereli a sajátját a Label paraméter — a komponens forráskódjának ellenőrzésével derült ki; Form maga nem rendelkezik Label paraméterrel, ezért a korábbi vázlat
<Form> használatát úgy javítottuk, hogy kihagyjuk, ahelyett hogy nemlétező attribútumot találnánk ki.
Az összeállított kapcsolatfelvételi űrlap útvonala
ugyanez a minta, valódi e2e- és axe-tesztekkel kipróbálva.
Ellenőrizd a munkádat: indítsd el az alkalmazást, és az űrlap csupasznak látszik — pontosan úgy, ahogy szántuk: a stílus még hátravan. Nyomd meg a Tabbillentyűt: a fókusz végigmegy minden vezérlőn, a címkét bemondja, és a küldés működik. A viselkedés kész; a megjelenés a tiéd, és a következő lépés.
4. lépés — Stílus hozzá
Stílusozd az osztálykampókat — .button, .text-input,
.label, .field — itt: app.css, vagy hivatkozz egy kész témára itt: App.razor /
index.html:
<link rel="stylesheet" href="themes/wireframe.css" />
5. lépés — Nézd meg, ahogy az egész működik
A Blazor Web példaalkalmazás a teljes katalógust stílusosan és bemutatva mutatja, Playwright e2e tesztekkel:
git clone https://github.com/LilyDesignSystem/lily-design-system
cd lily-design-system/lily-design-system-blazor-web-examples
dotnet run --project src/LilyBlazorWebExamples
További lépések
- Témák — váltás futásidőben a Blazor theme-picker segédjével (Razor osztálykönyvtár a NuGeten).
- Beállítási segédek — nyelv és szövegméret.
- Komponenskatalógus — tulajdonságok, ARIA és billentyűzet komponensenként.
Kérdésed akad útközben? A súgóoldal tele van válaszokkal — és ha egy lépés érthetőbb lehetne, szólj nekünk és szívesen javítjuk az oktatóanyagot.