Alıştırma - Kodunuzda yinelemeyi azaltmak için Blazor düzeni ekleme
Blazing Pizza uygulamasına sayfa eklediğinizde gezinti HTML'sini kopyaladığımız fark edebilirsiniz. Blazor, bu tür bir sayfa iskelesini tek bir yerde oluşturmak için yerleşik desteğe sahiptir. Bunlara Blazor düzenleri denir.
Artık birkaç sayfada çok sayıda yinelenen HTML'miz var. Ardından, gezinti ve şirket bilgilerini tek bir yerde ekleyebilmeniz için uygulamanın tamamı için bir düzen oluşturacaksınız.
Bu alıştırmada bir MainLayout bileşeni oluşturacaksınız. Bu düzeni belirli sayfalar için nasıl kullanabileceğinizi ve ardından uygulamanın tamamı için varsayılan düzen haline nasıl getirebileceğinizi görürsünüz.
MainLayout bileşeni ekleme
Visual Studio Code'daki menüdeDosya Yeni Dosya'yı>.
Dosyayı MainLayout.razor olarak adlandırın. Dosyayı Paylaşılan dizinine kaydettiğinizden emin olun.
Yeni dosyada bir düzen bileşeni oluşturun ve gezinti HTML'sini herhangi bir sayfadan kopyalayın.
@inherits LayoutComponentBase <div id="app"> <header class="top-bar"> <a class="logo" href=""> <img src="img/logo.svg" /> </a> <NavLink href="" class="nav-tab" Match="NavLinkMatch.All"> <img src="img/pizza-slice.svg" /> <div>Get Pizza</div> </NavLink> <NavLink href="myorders" class="nav-tab"> <img src="img/bike.svg" /> <div>My Orders</div> </NavLink> </header> <div class="content"> @Body </div> <footer> © Blazing Pizza @DateTime.UtcNow.Year </footer> </div>Bu düzen _Host.cshtml dosyasındaki bazı işaretlemeleri kullanır, bu nedenle bunları buradan kaldırmamız gerekir.
Ctrl+S'yi seçerek değişikliklerinizi kaydedin.
Dosya gezgininde Sayfalar'ı genişletin. Ardından _Host.cshtml dosyasını seçin.
Blazor uygulama bileşenini çevreleyen öğeleri şu koddan değiştirin:
<div id="app"> <div class="content"> <component type="typeof(App)" render-mode="ServerPrerendered" /> </div> </div>Bu koda:
<component type="typeof(App)" render-mode="ServerPrerendered" />
Sayfa bileşeninde Blazor düzeni kullanma
Dosya gezgininde Sayfalar'ı genişletin. Ardından Index.razor'ı seçin.
top-bardiv öğesini silin ve yönergesinin@pagealtında yeni düzene bir başvuru ekleyin.@layout MainLayoutŞimdi eski
<h1>Blazing Pizzas</h1>öğeyi de silelim. Düzende bir üst çubuk olduğundan artık gerekli değildir.Visual Studio Code'da F5'i seçin. Veya Çalıştır menüsünde Hata Ayıklamayı Başlat'ı seçin.
Yeni giriş sayfasında bu yıl için otomatik olarak güncelleştirilen bir telif hakkı alt bilgisi bulunur. Bu düzeni kullanmayan bir sayfanın nasıl göründüğünü görmek için Siparişlerim'i seçin. Veya gibi
(http://localhost:5000/help)geçersiz bir sayfaya gidin. Şu anda 404 Sayfa Bulunamadı sayfamızı markalamadık.
Uygulamayı durdurmak için Shift + F5'i seçin.
Tüm sayfaları yeni düzene güncelleştir
Artık yönergesini @layout MainLayout uygulamanızdaki tüm sayfalara ekleyebilirsiniz, ancak Blazor'ın daha iyi bir çözümü vardır. İlk olarak, Index.razor'a yeni eklenen düzen yönergesini silin.
- Index.razor bileşeninde
- Dosya gezgininde Sayfalar'ı genişletin. Ardından MyOrders.razor öğesini seçin.
-
top-bardiv öğesini silin. - Dosya gezgininde Sayfalar'ı genişletin. Ardından OrderDetail.razor öğesini seçin.
-
top-bardiv öğesini silin. - Dosya gezgininde Sayfalar'ı genişletin. Ardından Checkout.razor'ı seçin.
-
top-bardiv öğesini silin.
App.razor bileşeni, sayfaların yönlendirme şeklini değiştirebileceğimiz, aynı zamanda Blazor'a varsayılan düzeni kullanmasını da söyleyebileceğimiz yerdir.
Dosya gezgininde App.razor'ı seçin.
DefaultLayout="typeof(MainLayout)"bildirimini RouteView öğesine ekleyin.LayoutView'a
Layout="typeof(MainLayout)"ekleyin.App.razor artık şu örnek gibi görünmelidir:
<Router AppAssembly="typeof(Program).Assembly" Context="routeData"> <Found> <RouteView RouteData="routeData" DefaultLayout="typeof(MainLayout)" /> </Found> <NotFound> <LayoutView Layout="typeof(MainLayout)"> <div class="main">Sorry, there's nothing at this address.</div> </LayoutView> </NotFound> </Router>
Yeni düzeni test edin
Visual Studio Code'da F5'i seçin. Veya Çalıştır menüsünde Hata Ayıklamayı Başlat'ı seçin.
Varsayılan düzeni kullanmanın avantajı, bunu tüm sayfalara uygulayabilmeniz ve bulunmayan sayfalar için düzen görünümü için kullanabilmenizdir.
Uygulamayı durdurmak için Shift + F5'i seçin.
Uygulama için yapmanız gereken çalışmalar bu modülde tamamlanmıştır. Formları ve doğrulamayı nasıl işleyeceklerini görmek istiyorsanız, bu öğrenme yolundaki bir sonraki modülü tamamlayın.