Cvičení – vytvoření uživatelského rozhraní s komponentami Blazor

Dokončeno

V tomto cvičení začnete vytvářet novou aplikaci Blazing Pizza pro společnost pro doručování pizzy. Společnost poskytla aktuální šablony stylů CSS, obrázky a HTML ze svého starého webu, se kterými můžete pracovat.

Poznámka:

Tento modul používá rozhraní příkazového řádku .NET a Visual Studio Code pro místní vývoj. Po dokončení tohoto modulu můžete tyto koncepty použít pomocí sady Visual Studio pro Windows a Visual Studio pro Mac pro macOS. Pro pokračování vývoje můžete použít Visual Studio Code pro Windows, Linux a macOS.

Pokud jste ještě nevytvořili aplikaci Blazor, nainstalujte správnou verzi rozhraní .NET podle pokynů k nastavení blazoru a zkontrolujte, jestli je váš počítač správně nastavený. Zastavte krok Vytvoření aplikace.

Vytvoření nové aplikace Blazor

Tento modul používá sadu .NET 6.0 SDK. Spuštěním následujícího příkazu v upřednostňovaném terminálu se ujistěte, že máte nainstalovaný .NET 6.0:

dotnet --list-sdks

Zobrazí se výstup podobný následujícímu:

3.1.100 [C:\program files\dotnet\sdk]
5.0.100 [C:\program files\dotnet\sdk]
6.0.100 [C:\program files\dotnet\sdk]

Ujistěte se, že je uvedená verze, na 6 které začíná. Pokud žádný není uvedený nebo příkaz nebyl nalezen, nainstalujte nejnovější sadu .NET 6.0 SDK.

.NET umožňuje vytvářet nové projekty s libovolnou verzí sady Visual Studio nebo příkazy terminálu. Následující cvičení ukazují postup pomocí terminálu a editoru Visual Studio Code.

  1. Otevřete Visual Studio Code.

  2. Výběrem možnosti Zobrazit otevřete integrovaný terminál v editoru Visual Studio Code. Pak v hlavní nabídce vyberte Terminál.

  3. V terminálu přejděte na místo, kam chcete projekt vytvořit.

  4. Spusťte příkaz terminálu dotnet:

    dotnet new blazorserver -o BlazingPizza --no-https true -f net6.0
    

    Tento příkaz vytvoří nový projekt serveru Blazor ve složce s názvem BlazingPizza. Říká také projektu, aby zakázal PROTOKOL HTTPS.

  5. Vyberte složku Otevřít soubor>.

  6. V dialogovém okně Otevřít přejděte do složky BlazingPizza a zvolte Vybrat složku.

  7. Visual Studio Code vás vyzve k přidání požadovaných prostředků pro sestavení a ladění projektu. Vyberte Ano.

    Snímek obrazovky s dialogovým oknem chybějících prostředků

  8. Visual Studio Code přidá launch.json a tasks.json do složky .vscode projektu.

Tyto soubory umožňují spouštět a ladit aplikaci Blazor pomocí nástrojů pro ladění editoru Visual Studio Code.

Otestování nastavení

Ke spuštění aplikace můžete použít terminál nebo Visual Studio Code.

  1. V okně terminálu spusťte aplikaci Blazor pomocí:

    dotnet watch
    

    Tento příkaz se sestaví a spustí aplikaci. Příkaz kukátku říká dotnetu, aby sledoval všechny soubory projektu. Všechny změny, které provedete v souborech projektu, automaticky aktivují opětovné sestavení a pak restartujte aplikaci.

    Výchozí prohlížeč vašeho počítače by měl otevřít novou stránku na http://localhost:5000adrese .

  2. Aplikaci zastavíte tak, že v okně terminálu vyberete Ctrl + C.

Projekt můžete také spustit a ladit pomocí editoru Visual Studio Code.

  1. V editoru Visual Studio Code vyberte F5. Nebo v nabídce Spustit vyberte Spustit ladění.

    Aplikace by měla sestavit a otevřít novou stránku prohlížeče.

  2. Visual Studio Code také přepne do okna Spustit a ladit , které umožňuje restartovat nebo zastavit aplikaci.

    Snímek obrazovky s oknem ladění v editoru Visual Studio Code

  3. Stisknutím klávesy Shift + F5 aplikaci zastavte.

Stažení úvodních souborů a assetů Blazing Pizza

Teď naklonujete existující soubory projektu aplikace Blazor pro týmy z úložiště GitHub.

  1. Odstraňte složku BlazingPizza pomocí průzkumníka souborů nebo v editoru Visual Studio Code.

  2. V terminálu naklonujte aktuální pracovní soubory do nové složky BlazingPizza .

    git clone https://github.com/MicrosoftDocs/mslearn-interact-with-data-blazor-web-apps.git BlazingPizza
    
  3. Spusťte aktuální verzi aplikace. Vyberte F5.

    Snímek obrazovky s úvodní aplikací Blazing Pizza

Udělejte si pizzu

Komponenta Pages/Index.razor umožňuje zákazníkům vybrat a nakonfigurovat pizzy, které chtějí objednat. Komponenta reaguje na kořenovou adresu URL aplikace.

Tým také vytvořil třídy, které představují modely v aplikaci. Zkontrolujte aktuální PizzaSpecial model.

  1. V editoru Visual Studio Code v Průzkumníku souborů rozbalte složku Model . Pak vyberte PizzaSpecial.

    namespace BlazingPizza;
    
    /// <summary>
    /// Represents a pre-configured template for a pizza a user can order
    /// </summary>
    public class PizzaSpecial
    {
        public int Id { get; set; }
    
        public string Name { get; set; }
    
        public decimal BasePrice { get; set; }
    
        public string Description { get; set; }
    
        public string ImageUrl { get; set; }
    
        public string GetFormattedBasePrice() => BasePrice.ToString("0.00");
    }    
    

    Všimněte si, že objednávka pizzy má Name, BasePriceDescription, a ImageUrl.

  2. V Průzkumníku souborů rozbalte stránky a pak vyberte Index.razor.

    @page "/"
    
    <h1>Blazing Pizzas</h1>
    
    

    V tuto chvíli existuje pouze jedna značka H1 pro název. Přidáte kód pro vytváření specialit pizzy.

  3. <h1> Pod značku přidejte tento kód jazyka C#:

    @code {
        List<PizzaSpecial> specials = new();
    
        protected override void OnInitialized()
        {
            specials.AddRange(new List<PizzaSpecial>
            {
                new PizzaSpecial { Name = "The Baconatorizor", BasePrice =  11.99M, Description = "It has EVERY kind of bacon", ImageUrl="img/pizzas/bacon.jpg"},
                new PizzaSpecial { Name = "Buffalo chicken", BasePrice =  12.75M, Description = "Spicy chicken, hot sauce, and blue cheese, guaranteed to warm you up", ImageUrl="img/pizzas/meaty.jpg"},
                new PizzaSpecial { Name = "Veggie Delight", BasePrice =  11.5M, Description = "It's like salad, but on a pizza", ImageUrl="img/pizzas/salad.jpg"},
                new PizzaSpecial { Name = "Margherita", BasePrice =  9.99M, Description = "Traditional Italian pizza with tomatoes and basil", ImageUrl="img/pizzas/margherita.jpg"},
                new PizzaSpecial { Name = "Basic Cheese Pizza", BasePrice =  11.99M, Description = "It's cheesy and delicious. Why wouldn't you want one?", ImageUrl="img/pizzas/cheese.jpg"},
                new PizzaSpecial { Name = "Classic pepperoni", BasePrice =  10.5M, Description = "It's the pizza you grew up with, but Blazing hot!", ImageUrl="img/pizzas/pepperoni.jpg" }               
            });
        }
    }
    

    Blok @code vytvoří pole, které bude obsahovat speciality pizzy. Když se stránka inicializuje, přidá do pole šest pizz.

  4. Vyberte F5 nebo vyberte Spustit. Pak vyberte Spustit ladění.

    Aplikace by se měla zkompilovat a spustit a uvidíte, že se nic nezměnilo. Kód se v HTML na straně klienta nepoužívá. Pojďme to opravit.

  5. Vyberte Shift + F5 nebo vyberte Zastavit ladění.

  6. V souboru Index.razor nahraďte <h1>Blazing Pizzas</h1> tímto kódem:

    <div class="main">
      <h1>Blazing Pizzas</h1>
      <ul class="pizza-cards">
        @if (specials != null)
        {
          @foreach (var special in specials)
          {
            <li style="background-image: url('@special.ImageUrl')">
              <div class="pizza-info">
                  <span class="title">@special.Name</span>
                      @special.Description
                    <span class="price">@special.GetFormattedBasePrice()</span>
              </div>
            </li>
          }
        }
      </ul>
    </div>
    

    Tento kód kombinuje prostý kód HTML společně s direktivami pro smyčky a přístup členů. Smyčka @foreach vytvoří <li> značku pro každou pizzu specials v poli.

    Ve smyčce se u každé speciální pizzy zobrazí název, popis, cena a obrázek s direktivami člena.

  7. Vyberte F5 nebo vyberte Spustit. Pak vyberte Spustit ladění.

    Snímek obrazovky se seznamem blýskajících pizz

Teď máte základní součást pizzy, která zákazníkům umožní objednat si pizzu. Tuto komponentu vylepšíte v následujících cvičeních.