Blazor-opas

Razor-luokkakirjaston komponentit parametreilla, ChildContent renderöintilohkot, attribuuttien levitys ja yksi bUnit-testi komponenttia kohden.

Mitä rakennat

Pieni yhteydenottolomake — nimiöity kenttä, lähetyspainike, @bind-Value -sidonta, aito näppäimistö- ja ruudunlukijakäyttäytyminen — ensin paljaana, sitten tyylitellen, noin 10 minuutissa.

Ennen kuin aloitat

Tarvitset gitin ja .NET SDK 8:n tai uudemman. Mikä tahansa Blazor-projekti kelpaa — Blazor Web App, Server tai WebAssembly.

Vaihe 1 — Hae koodi

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

Komponentit sijaitsevat hakemistossa src/LilyBlazorHeadless/Components/ — Button.razor, TextInput.razor — yksi Razor-tiedosto kutakin. Viittaa projektiin (tai kopioi tiedostot) Blazor-sovelluksestasi ja lisää @using LilyBlazorHeadless.Components tiedostoon _Imports.razor.

Vaihe 2 — Ensimmäinen komponenttisi

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

Renderöi <button class="button">. Yhteiset parametrisopimukset: Label ( aria-label ohittamiseen), CssClass (lisätään peruskoukkuun), ChildContentja [Parameter(CaptureUnmatchedValues = true)] attribuuttien levitys, jotta mikä tahansa ylimääräinen HTML-attribuutti välittyy läpi.

Vaihe 3 — Kokoa pieni lomake

<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 ottaa näkyvän Label omana parametrinaan sisäkkäisen nimiökomponentin sijaan — välitä se kerran elementille Fieldja TextInputelementistä Label antaa saavutettavan nimen.

Varmistettu 2026-08-29: aiempi luonnos sijoitti erillisen Label -komponentin elementin Fieldsisään, mikä renderöi kaksi nimiötä (toinen tyhjä), koska Field renderöi jo oman nimiönsä Label -parametri — havaittu tarkistamalla komponentin lähdekoodi; Form ei itse sisällä Label -parametria, joten aiemman luonnoksen <Form> -käyttö korjattiin jättämään se pois sen sijaan, että olisi keksitty olematon attribuutti. Koottu yhteydenottolomakkeen reitti on sama malli, jota on koeteltu oikeilla e2e- ja axe-testeillä.

Tarkista työsi: käynnistä sovellus, ja lomake näyttää paljaalta — juuri niin kuin on tarkoitus: tyylittely on vielä edessä. Paina Tab: kohdistus liikkuu jokaisen ohjaimen läpi, nimiö ilmoitetaan ja lähettäminen toimii. Toiminta on valmis; ulkoasu on sinun ja seuraava vaihe.

Vaihe 4 — Tyylittele se

Tyylittele luokkakoukut — .button, .text-input, .label, .field — tiedostossa app.css, tai linkitä valmis teema tiedostossa App.razor / index.html:

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

Vaihe 5 — Katso kaiken toimivan

Blazor Web -esimerkkisovellus näyttää koko luettelon tyyliteltynä ja esiteltynä, Playwright e2e -testeineen:

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

Seuraavat askeleet

  • Teemat — vaihto ajon aikana Blazorin theme-picker-apuvälineellä (Razor-luokkakirjasto NuGetissä).
  • Asetusapuvälineet — kieli ja tekstikoko.
  • Komponenttiluettelo — ominaisuudet, ARIA ja näppäimistö komponenteittain.

Kysymyksiä matkan varrella? Ohjesivu on täynnä vastauksia — ja jos jokin vaihe voisi olla selkeämpi, kerro meille ja parannamme opasta mielellämme.