Harjoitus – Luo to-do -luettelo
Tässä harjoituksessa lisäät Blazor-sovellukseesi kaiken tähän mennessä oppimasi to-do perussivun.
to-do luettelosivun luominen
Luo uusi Blazor-verkkosovellusprojekti.
Lisää Todo.razor -tiedosto Components/Pages -kansioon.
Voit lisätä Razor-tiedoston Visual Studiossa ja Visual Studio Codessa napsauttamalla hiiren kakkospainikkeella Components/Pages-kansiota Solution Explorer - ja valitsemalla sopivan vaihtoehdon uuden tiedoston lisäämiseksi.
Voit myös luoda Razor-tiedoston .NET CLI:n avulla tällä komennolla:
dotnet new razorcomponent -n Todo -o Components/PagesEdellisessä komennossa oleva
-n|--namemäärittää uuden Razor-komponentin nimen. Uusi komponentti luodaan projektinComponents/Pages-kansioon-o|--output-vaihtoehdolla.Tärkeä
Partaveitsen komponentin tiedostonimissä tulee olla iso alkukirjain, jotta ne voidaan erottaa helposti muista HTML-elementeistä.
Avaa
Todo-osa ja lisää tiedoston yläreunaan@pageRazor -direktiivi, jonka suhteellinen URL-osoite on/todo, ja määritä hahmontamistilaksiInteractiveServer, jotta komponentti pystyy käsittelemään käyttöliittymätapahtumia.@page "/todo" @rendermode InteractiveServer <h3>Todo</h3> @code { }Ota muutokset käyttöön sovelluksessa ja yritä selata sivulle /todo, jotta näet uuden sivusi.
Lisää to-do-sivu siirtymisvalikkoon
Uusi to-do -luettelosivu ei vielä näy siirtymisvalikossa muiden aiemmin luotujen sivujen kanssa. Siirtymisvalikko määritetään sovelluksen asettelun NavMenu osassa. Päivitämme NavMenu osan ja lisäämme linkin to-do luettelosivulle.
Avaa Osat/Asettelu/NavMenu.razor.
Etsi
nav-osanNavMenu-elementti ja lisää seuraavadiv-elementti sääsivun olemassa olevan siirtymiskohteen alapuolelle.<div class="nav-item px-3"> <NavLink class="nav-link" href="todo"> <span class="bi bi-list-nested-nav-menu" aria-hidden="true"></span> Todo </NavLink> </div>NavLink-komponentti on sisäinen Blazor-komponentti, joka hahmontaa ankkuritunnisteen. Jos nykyinen selaimen osoite vastaahrefNavLink, se hahmontaa myös CSSactiveluokan, jota voit käyttää linkin muotoiluun.Kun tämä muutos on otettu käyttöön, tehtäväsivun pitäisi nyt näkyä siirtymisvalikossa.
Luo kohteiden to-do luettelo
Luo uusi
TodoItem.cs-tiedosto projektin pääkansioon (sama taso kuinProgram.cs) ja lisää siihen seuraava C#-luokka.public class TodoItem { public string? Title { get; set; } public bool IsDone { get; set; } = false; }Lisää Todo.razor kenttä
@codelohkon kohteiden to-do luettelolle.@code { private List<TodoItem> todos = new(); }Hahmonna järjestämätön tehtäväluettelo
foreachsilmukan avulla.<ul> @foreach (var todo in todos) { <li>@todo.Title</li> } </ul>Et näe vielä mitään hahmonnettua to-do, koska luettelo on tyhjä. Tarvitset tavan lisätä joitakin to-do kohteita.
to-do kohteiden lisääminen
Lisätään seuraavaksi käyttöliittymäelementtejä to-do kohteiden lisäämiseksi luetteloomme.
Lisää Todo.razor järjestämättömän luettelon alapuolelle
input-tunniste jabutton.<input /> <button>Add todo</button>Luo
newTodomerkkijonokenttä ja sido seinput@bind-direktiivin määritteellä.<input @bind="newTodo" /> <button>Add todo</button> @code { private List<TodoItem> todos = new(); string newTodo = ""; }Lisää
@onclickbuttonkäsittelijä, joka lisää uudenTodoItemtodos-luetteloonnewTodoarvon perusteella, ja palauttaa sittennewTodoarvon tyhjäksi merkkijonoksi.<input @bind="newTodo" /> <button @onclick="AddTodo">Add todo</button> @code { private List<TodoItem> todos = new(); string newTodo = ""; void AddTodo() { if (!string.IsNullOrWhiteSpace(newTodo)) { todos.Add(new TodoItem { Title = newTodo }); newTodo = string.Empty; } } }Tarkista, että voit nyt lisätä to-do kohteita, jotka näkyvät luettelossa.
input-arvo tulee nollata myös jokaisen to-do kohteen lisäämisen jälkeen.
Lisää valintaruutuja ja laske keskeneräiset to-do kohteet
Tarvitset tavan, jolla to-do kohteet merkitään valmiitksi, muokata aiemmin luotuja to-do kohteita ja laskea, kuinka monta to-do kohdetta ei ole vielä tehty.
Päivitä
li-elementin sisältö siten, että hahmonnetaaninputsidottucheckboxtodo.IsDonetodo.IsDonejatodo.Titlesidottu teksti .<ul> @foreach (var todo in todos) { <li> <input type="checkbox" @bind="todo.IsDone" /> <input @bind="todo.Title" /> </li> } </ul>Päivitä
<h3>-otsikko näyttämään niiden todo-kohteiden määrä, jotka eivät ole valmiit (IsDoneonfalse).<h3>Todo (@todos.Count(todo => !todo.IsDone))</h3>Kun olet lisännyt koodin, Todo.razor-tiedoston pitäisi näyttää samalta kuin seuraavassa:
@page "/todo" @rendermode InteractiveServer <h3>Todo (@todos.Count(todo => !todo.IsDone))</h3> <ul> @foreach (var todo in todos) { <li> <input type="checkbox" @bind="todo.IsDone" /> <input @bind="todo.Title" /> </li> } </ul> <input @bind="newTodo" /> <button @onclick="AddTodo">Add todo</button> @code { private List<TodoItem> todos = new(); string newTodo = ""; void AddTodo() { if (!string.IsNullOrWhiteSpace(newTodo)) { todos.Add(new TodoItem { Title = newTodo }); newTodo = string.Empty; } } }Kun olet lisännyt muutokset sovellukseen, kokeile lisätä kohteita, muokata kohteita ja merkitä todo-kohteita, jotka on tehty komponentin testaamiseksi.
Blazorto-do luettelosi on nyt valmis ✅.