@page "/weather"
@attribute [StreamRendering]
Weather
Weather
This component demonstrates showing data.
@if(forecasts == null)
{
Loading...
}
else
{
| Date |
Temp. (C) |
Temp. (F) |
Summary |
@foreach(WeatherForecast forecast in forecasts)
{
| @forecast.Date.ToShortDateString() |
@forecast.TemperatureC |
@forecast.TemperatureF |
@forecast.Summary |
}
}
@code {
private WeatherForecast[]? forecasts;
protected override async Task OnInitializedAsync()
{
// Simulate asynchronous loading to demonstrate streaming rendering
await Task.Delay(500);
var startDate = DateOnly.FromDateTime(DateTime.Now);
string[] summaries = new[]
{
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};
forecasts = Enumerable.Range(1, 5)
.Select(index => new WeatherForecast
{
Date = startDate.AddDays(index),
TemperatureC = Random.Shared.Next(-20, 55),
Summary = summaries[Random.Shared.Next(summaries.Length)]
})
.ToArray();
}
private class WeatherForecast
{
public DateOnly Date { get; set; }
public int TemperatureC { get; set; }
public string? Summary { get; set; }
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
}
}