Alıştırma - Yapılacaklar listesi oluşturma
Bu alıştırmada, Blazor uygulamanıza temel bir yapılacaklar listesi sayfası eklemek için şimdiye kadar öğrendiğiniz her şeyi kullanacaksınız.
Yapılacaklar listesi sayfasını oluşturma
Yeni bir Blazor Web App projesi oluşturun.
Components/Pages klasörüne Todo.razor dosyası ekleme
Visual Studio ve Visual Studio Code'da, Çözüm Gezgini'ndeBileşenler/Sayfalar klasörüne sağ tıklayıp yeni dosya eklemek için uygun seçeneği belirleyerek Razor dosyasını ekleyebilirsiniz.
Razor dosyasını şu komutla .NET CLI kullanarak da oluşturabilirsiniz:
dotnet new razorcomponent -n Todo -o Components/Pages-n|--nameYukarıdaki komuttaki seçenek, yeni Razor bileşeninin adını belirtir. Yeni bileşen, projeninComponents/Pagesklasöründe seçeneğiyle-o|--outputoluşturulur.Önemli
Razor bileşeni dosya adları, diğer HTML öğelerinden kolayca ayırt edilebilmeleri için büyük harfli bir ilk harf içermelidir.
Todobileşeni açın ve göreli URL'si ile dosyanın en üstüne bir@pageRazor yönergesi ekleyin ve bileşenin/todoUI olaylarını işleyebilmesi içinInteractiveServerişleme modunu olarak ayarlayın.@page "/todo" @rendermode InteractiveServer <h3>Todo</h3> @code { }Uygulamaya değişiklikleri uygulayın ve yeni sayfanızı görmek için "/todo" öğesine göz atmayı deneyin.
Gezinti menüsüne yapılacaklar sayfasını ekleme
Yeni yapılacaklar listesi sayfası, gezinti menüsünde diğer varolan sayfalarla birlikte henüz görünmüyor. Gezinti menüsü, uygulamanın düzeninin NavMenu bir parçası olan bileşende tanımlanır. Yapılacaklar NavMenu listesi sayfasına bağlantı eklemek için bileşeni güncelleştirelim.
Components/Layout/NavMenu.razor dosyasını açın.
navbileşenindekiNavMenuöğesini bulun ve hava durumu sayfasının mevcut gezinti öğesinin altına aşağıdakidivöğeyi ekleyin.<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>Bileşen
NavLink, bir tutturucu etiketi işleyen yerleşik bir Blazor bileşenidir. Geçerli tarayıcı adresi içinhrefileNavLinkeşleşiyorsa, bağlantıyı şekillendirmek için kullanabileceğiniz biractiveCSS sınıfı da işler.Bu değişikliği uyguladıktan sonra gezinti menüsünde Yapılacaklar sayfasının görüntüleniyor olduğunu görmeniz gerekir.
Yapılacaklar öğelerinin listesini oluşturma
Projenin kökünde (ile aynı düzeyde
TodoItem.cs) yeniProgram.csbir dosya oluşturun ve aşağıdaki C# sınıfını ekleyin.public class TodoItem { public string? Title { get; set; } public bool IsDone { get; set; } = false; }Todo.razor dosyasında, bloktaki to-do öğeleri
@codelistesi için bir alan ekleyin.@code { private List<TodoItem> todos = new(); }Döngü kullanarak tüm yapılacaklar öğelerinin sıralanmamış bir
foreachlistesini işleyin.<ul> @foreach (var todo in todos) { <li>@todo.Title</li> } </ul>Yapılacaklar listesi boş olduğundan, henüz yapılacaklar listesi için işlenen bir şey görmüyorsunuz. Yapılacaklar öğelerini eklemek için bir yönteme ihtiyacınız vardır.
Yapılacaklar öğeleri ekleme
Şimdi listemize yapılacaklar öğeleri eklemek için bazı kullanıcı arabirimi öğeleri ekleyelim.
Todo.razor'da bir
inputetiket ve sıralanmamış listenin altına birbuttonetiket ekleyin.<input /> <button>Add todo</button>Bir
newTododize alanı oluşturun ve yönerge özniteliğiniinputkullanarak bunu öğesine@bindbağlayın.<input @bind="newTodo" /> <button>Add todo</button> @code { private List<TodoItem> todos = new(); string newTodo = ""; }@onclickdeğerinebuttongöre listeye yeniTodoItemtodosbir ekleyen ve değerini boş bir dizeye sıfırlayannewTodobir işleyicinewTodoekleyin.<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; } } }Artık yapılacaklar öğelerini ekleyip ekleyebildiğinizi ve bunların listede gösterilip gösterilmediğini denetleyin. Her
inputyapılacaklar öğesi eklendikten sonra değer de sıfırlanmalıdır.
Onay kutuları ekleme ve tamamlanmamış yapılacaklar öğelerini sayma
Yapılacaklar öğelerini tamamlandı olarak işaretlemek, var olan yapılacaklar öğelerini düzenlemek ve henüz yapılacak öğe sayısını saymak için bir yönteme ihtiyacınız vardır.
öğesine bağlı bir türü
live ile ilişkili birinputmetnicheckboxişlemek içintodo.IsDoneinputöğesinin içeriğinitodo.Titlegüncelleştirin.<ul> @foreach (var todo in todos) { <li> <input type="checkbox" @bind="todo.IsDone" /> <input @bind="todo.Title" /> </li> } </ul><h3>Tamamlanmamış todo öğelerinin sayısını göstermek için üst bilgiyi güncelleştirin (IsDoneisfalse).<h3>Todo (@todos.Count(todo => !todo.IsDone))</h3>Kod eklemeyi bitirdiğinizde Todo.razor dosyanız aşağıdakine benzer olmalıdır:
@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; } } }Değişiklikleri uygulamaya uyguladıktan sonra, bileşeni test etmek için yapılan öğeleri eklemeyi, öğeleri düzenlemeyi ve yapılacakları işaretlemeyi deneyin.
Blazor yapılacaklar listeniz tamamlandı ✅.