Principy komponent šablony
Součásti šablon, které můžete opakovaně používat v různých aplikacích, poskytují základ vyzkoušeného a otestovaného rozložení a logiky pro přizpůsobení prvků uživatelského rozhraní. Součásti šablony používají standardizovaný návrh ve webové aplikaci definováním společných prvků a jejich použitím na všechny stránky. Šablony můžou zjednodušit aktualizace, například rebranding, protože provedete úpravy pouze v centrálním umístění šablony.
V této lekci se dozvíte o komponentách šablon a o tom, jak je můžete začlenit do aplikace Blazor.
Typ RenderFragment
Komponenta šablony poskytuje rozložení a logiku pro jeden nebo více fragmentů kódu HTML. Kód HTML se vykresluje pomocí kontextu, který komponenta šablony poskytuje. Komponenta šablony používá RenderFragment objekt jako zástupný symbol, do kterého se kód vloží za běhu.
Šablona je jen běžná komponenta Razor. Pokud chcete použít šablonu, odkazuje na ni spotřeba komponent stejně jako na jakoukoli jinou komponentu. Název ChildContent
je výchozím nastavením parametru RenderFragment
. Parametr můžete pojmenovat jinak, ale při použití šablony musíte zadat tento název.
Obecné parametry RenderFragment<T>
Ve výchozím nastavení RenderFragment
třída funguje jako zástupný symbol pro blok kódu HTML. Obecný typ RenderFragment<TValue> však můžete použít k vykreslení jiných typů obsahu pomocí parametru typu a poskytnutí logiky pro zpracování zadaného typu v komponentě šablony.
Předpokládejme například, že chcete vytvořit šablonu, která zobrazuje položky v kolekci. Můžete použít smyčku jazyka C# foreach
k iteraci v kolekci a zobrazení nalezených položek. Kolekce však může obsahovat data libovolného typu, takže potřebujete obecný způsob vykreslení každé položky.
Pokud chcete napsat komponentu šablony obecného typu, musíte zadat parametr typu v samotné komponentě šablony a v spotřebě součásti šablony. Následující seznam představuje běžné charakteristiky součástí šablony obecného typu.
- Parametr typu v komponentě šablony se zavádí pomocí direktivy
@typeparam
. Komponenta šablony může mít v případě potřeby více parametrů typu. - Šablona pravděpodobně definuje parametr obsahující výčtovou kolekci objektů typu určeného parametrem typu.
- Šablona také definuje
ChildContent
parametr založený na obecnémRenderFragment
typu, který přebírá stejný parametr typu.
Další informace najdete v tématu ASP.NET komponentách šablony Core Blazor.