Felhasználói eszközök

Eszközök a webhelyen


oktatas:web:blazor

Ez a dokumentum egy előző változata!


< Web

Blazor

A Blazor

A Blazor egy szabad és nyílt forráskódú webes keretrendszer, ami 2018-ban jelent meg. A Blazor lehetővé teszik webalkalmazás fejlesztését C# nyelven.

A Blazort az ASP.NET Core biztosítja. A kliensoldali része WebAssembly-ben fut.

A Blazor segítségével SPA alkalmazás készíthető .NET alapokon. A Blazor a Razor Templating Engine-t használja.

A Blazor projekt típusok:

  • Server
  • WASM

Server

  • Szerveroldali renderelés (SSR, Server-Side Rendering)
  • Régebbi böngészőkben is működik.
  • API/Server kód privát
  • Sok memóriát igényel
  • Nincs offline támogatása

WASM

  • natív sebesség
  • osztott kód
  • nincs szerveroldali függőség
  • modern böngészőre van szükség
  • hiányzik az élő újrtöltés

Összetevők

Direktívák:

@page "/"
@inject HttpClient Http

Markup és Razor:

<h1>@cim</h1>
@if (valami = null) 
{
   <p>Töltés</p>
}

Kód és logika:

@code {
    private string cim = "Valami";
    Valami valami;
}

Fejlesztéshez

.Net SDK ellenőrzése

dotent --version

VSCode bővítmény

  • Blazor Snippet Pack

Alkalmazás készítése

dotnet new blazorserver -o App01 --no-https
cd app01

A következő állományokat találjuk:

  • Program.cs - A program belépésipontja
  • App.razor - Az alkalmazás fő komponense
  • Pages/ - Néhány példa weblapokra
  • App01.csproj - a projekt leírása, függőségekkel
  • Properties/launchSettings.json - helyi beállítások

A port száma 5000-5300 között lehet. A Blazor alkalmazások komponenseit lapoknak hívjuk. Minden lapot a „Pages” könyvtárba helyezünk.

Minden Blazor komponens egy fájl. A tartalma könnyedén létrehozható a „Blazor Snippet Pack” VScode bővítménnyel, csak kezdjük el gépelni:

blcomp

Futtatás

dotnet watch

A futtatás a Ctrl+C billentyűkombinációval szakítható meg.

Böngészőbe:

http://localhost:<port száma>

Például:

http://localhost:5000

Adatkötés

<label>Név:</label>
<input @bind-value="nev">
 
<p>
Név újra: @nev
</p>
 
 
@code {
   string nev = "Barbara";
}

Ha szeretnénk, hogy a bevitellel egy időben változzon a minden kötés:

<input type="text" class="form-control" 
@bind-value="nev" 
@bind-value:event="oninput"><br>

Egyszerűsíthető:

<input type="text" class="form-control" 
@bind="nev" 
@bind:event="oninput"><br>

Jelölőnégyzet

<label>
<input type="checkbox" @bind-value="haveCar">
&nbsp; Van kocsija
</label>

<br>

Van kocsija: @haveCar

Rádiógomb

@page "/radiogomb"

<h1>Rádiógomb</h1>


<label>
    <input type="radio" 
        value="1" 
        name="diploma"
        checked="@(piece == 1)"
        @onclick="@(()=>piece=1)"
        >1
</label>
<label>
    <input type="radio" 
        value="2" 
        name="diploma"
        checked="@(piece == 2)"
        @onclick="@(()=>piece=2)"
        >2
</label>
<br>
Diploma: @piece

@code {
    int piece = 1;
}

Objektum

Data/Employee.cs
namespace app03.Data;
 
public class Employee
{
    public string? name { get; set; }
    public string? city { get; set; }
    public double salary { get; set; }
 
}
@page "/valami"

<h1>Valami</h1>

<p>
    Név: @employee.name
</p>
<p>
    Település: @employee.city
</p>


@using Data

@code {

    Employee employee = new Employee()
    {
        name = "Némó Károly",
        city = "Szeged",
        salary = 2875000
    };
}

Forrás

oktatas/web/blazor.1647350324.txt.gz · Utolsó módosítás: 2022/03/15 14:18 szerkesztette: admin