C#/Blazor
[Blazor] OnInitialized
kjun.kr
2022. 10. 4. 23:29
728x90
생성자 같은 초기화 처리는 Blazor 에서 OnInitialized 함수를 이용해 처리합니다.
@code 에서 override OnInitialized 메서드를 이용해 처리합니다.
protected override void OnInitialized()
{
todos.AddRange(new List<TodoItem>
{
new TodoItem { Content = "Homework", IsDone = true},
new TodoItem { Content = "Health", IsDone = false },
});
}
초기에 2개의 값을 넣었습니다
전체 코드 - Todo.razor
@page "/todo"
@using Blazor.AppTest.Data
<h3>Todo</h3>
<input placeholder="new todo" @bind="newTodo" />
<button @onclick="AddTodo">Add todo</button>
<br />
<br />
<h3>Todo List (@todos.Count(todo => !todo.IsDone))</h3>
<ul>
@foreach (var todo in todos)
{
<li>
<input type="checkbox" @bind="todo.IsDone" />
<input @bind="todo.Content" />
</li>
}
</ul>
@code {
private List<TodoItem> todos = new();
private string? newTodo;
protected override void OnInitialized()
{
todos.AddRange(new List<TodoItem>
{
new TodoItem { Content = "Homework", IsDone = true},
new TodoItem { Content = "Health", IsDone = false },
});
}
private void AddTodo()
{
if (!string.IsNullOrWhiteSpace(newTodo))
{
this.todos.Add(new TodoItem { Content = newTodo });
this.newTodo = string.Empty;
}
}
}
실행결과
728x90