Förstå mallkomponenter
- 4 minuter
Mallkomponenter som du kan återanvända i flera appar utgör grunden för testad layout och logik för anpassning av användargränssnittselement. Mallkomponenter använder en standardiserad design i en webbapp genom att definiera vanliga element och tillämpa dem på alla sidor. Mallar kan effektivisera uppdateringar, till exempel omprofilering, eftersom du endast gör ändringar på den centrala mallplatsen.
I den här lektionen får du lära dig mer om mallkomponenter och hur du kan införliva dem i ett Blazor-program.
RenderFragment-typen
En mallkomponent tillhandahåller layout och logik för ett eller flera fragment av HTML-kod. HTML-koden renderas med hjälp av kontexten som mallkomponenten tillhandahåller. Mallkomponenten använder ett RenderFragment objekt som platshållare där markeringen infogas vid körning.
En mall är bara en vanlig Razor-komponent. Om du vill använda en mall refererar en förbrukande komponent till den som vilken komponent som helst. Namnet ChildContent är standardvärdet för en RenderFragment parameter. Du kan ge parametern ett annat namn, men du måste ange det här namnet när testsidan använder mallen.
Allmänna RenderFragment<T-parametrar>
Som standard RenderFragment fungerar klassen som platshållare för ett block med HTML-kod. Du kan dock använda den allmänna typen RenderFragment<TValue> för att återge andra typer av innehåll med hjälp av en typparameter och tillhandahålla logiken för att hantera den angivna typen i mallkomponenten.
Anta till exempel att du vill skapa en mall som visar objekten i en samling. Du kan använda en C#- foreach loop för att iterera genom samlingen och visa de objekt som hittades. Samlingen kan dock innehålla data av alla typer, så du behöver ett allmänt sätt att återge varje objekt.
Om du vill skriva en mallkomponent av allmän typ måste du ange typparametern i själva mallkomponenten och i mallens förbrukande komponent. Följande lista representerar vanliga egenskaper för mallkomponenter av allmän typ.
- Typparametern i en mallkomponent introduceras med hjälp av
@typeparamdirektivet. En mallkomponent kan ha flera typparametrar om det behövs. - Mallen definierar förmodligen en parameter som innehåller en uppräkningsbar samling objekt av den typ som anges av typparametern.
- Mallen definierar också en
ChildContentparameter baserat på den generiskaRenderFragmenttypen som tar samma typparameter.
Mer information finns i ASP.NET Core Blazor-mallade komponenter.