„Blazor“ vadovas

„Razor“ klasių bibliotekos komponentai su parametrais, ChildContent atvaizdavimo fragmentai, atributų paskleidimas ir vienas bUnit testas kiekvienam komponentui.

Ką sukursite

Nedidelė kontaktų forma — laukas su žyma, siuntimo mygtukas, @bind-Value susiejimas, tikras klaviatūros ir ekrano skaitytuvo elgesys — pirma plika, paskui apipavidalinta, per maždaug 10 minučių.

Prieš pradedant

Reikia git ir .NET SDK 8 ar naujesnio. Tinka bet kuris „Blazor“ projektas — „Blazor Web App“, „Server“ arba „WebAssembly“.

1 žingsnis — Gaukite kodą

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

Komponentai yra aplanke src/LilyBlazorHeadless/Components/ — Button.razor, TextInput.razor — po vieną „Razor“ bylą. Nurodykite projektą (arba nukopijuokite bylas) iš savo „Blazor“ programos ir pridėkite @using LilyBlazorHeadless.Components į _Imports.razor.

2 žingsnis — Jūsų pirmasis komponentas

<Button OnClick="Save">Save</Button>

Atvaizduoja <button class="button">. Bendros parametrų konvencijos: Label ( aria-label norint pakeisti), CssClass (pridedamas prie bazinio kablio), ChildContentir [Parameter(CaptureUnmatchedValues = true)] atributų paskleidimas, kad bet koks papildomas HTML atributas praeitų.

3 žingsnis — Sudėkite nedidelę formą

<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 priima matomą Label kaip savo parametrą vietoj įdėto žymos komponento — perduokite ją vieną kartą, prie Fieldir TextInputiš Label suteikia prieinamą pavadinimą.

Patikrinta 2026-08-29: ankstesnis juodraštis įdėjo atskirą Label komponentą į Field, todėl buvo atvaizduotos dvi žymos (viena tuščia), nes Field jau pats atvaizduoja savo iš Label parametras — pastebėta patikrinus komponento šaltinio kodą; Form pats neturi Label parametro, todėl ankstesnio juodraščio <Form> naudojimas buvo pataisytas jį praleidžiant, užuot sugalvojus neegzistuojantį atributą. Sudėtinis kontaktų formos maršrutas yra tas pats šablonas, išbandytas tikrais e2e ir axe testais.

Patikrinkite savo darbą: paleiskite programą ir forma atrodo plika — kaip ir numatyta: stilius dar laukia. Paspauskite Tab: fokusas pereina per kiekvieną valdiklį, žyma paskelbiama, o siuntimas veikia. Elgesys baigtas; išvaizda jūsų ir yra kitas žingsnis.

4 žingsnis — Apipavidalinkite

Apipavidalinkite klasių kablius — .button, .text-input, .label, .field — faile app.cssarba susiekite paruoštą temą faile App.razor / index.html:

<link rel="stylesheet" href="themes/wireframe.css" />

5 žingsnis — Pažiūrėkite, kaip viskas veikia

„Blazor Web“ pavyzdinė programa rodo visą katalogą apipavidalintą ir pademonstruotą, su „Playwright“ e2e testais:

git clone https://github.com/LilyDesignSystem/lily-design-system
cd lily-design-system/lily-design-system-blazor-web-examples
dotnet run --project src/LilyBlazorWebExamples

Tolesni žingsniai

  • Temos — perjungimas vykdymo metu su „Blazor“ pagalbininku theme-picker („Razor“ klasių biblioteka NuGet).
  • Nuostatų pagalbininkai — kalba ir teksto dydis.
  • Komponentų katalogas — savybės, ARIA ir klaviatūra kiekvienam komponentui.

Klausimų pakeliui? Pagalbos puslapis pilnas atsakymų — o jei kuris nors žingsnis galėtų būti aiškesnis, pasakykite mums ir mielai patobulinsime vadovą.